《R数据科学实战:工具详解与案例分析 》 —2.5.4 文本挖掘浅析
2.5.4 文本挖掘浅析
文本(包括但不仅限于书刊)挖掘,或者更通俗地讲—自然语言处理(Nature Language Processing),是人工智能领域必不可少的一项技术。每一秒钟,世界范围内都有不计其数的新文本在以各种形式记录或保存起来。但这些以人类语言书写或录制下来的“数据”,并不像二进制的表格式数据那样容易被电脑接受并处理。如何分析人类历史中这些以文本形式保存的数据,就是文本挖掘需要解决的问题。看过《星际迷航》的读者应该会很熟悉舰长们经常说的一句台词“电脑,给我与某某事,某某东西相关的资料”。现实中,苹果的siri已经算是这方面很成功的商业应用模型。也有很多编程数据分析前辈,结合机器学习和自然语言处理来进行音乐创作、文献写作,等等。有关文本挖掘的详细内容已超出本书的讨论范围,所以在此仅简略地介绍文本挖掘的一般流程及可用R包,借此为感兴趣的读者提供一些继续学习的线索。在第3章中讨论完dplyr包中的一些实用函数之后,3.3节会向读者介绍一般的英文科技文献挖掘流程。
图2-4列出了文本挖掘的一般流程,大致可以总结为三个主要部分,具体如下。
图2-4 文本挖掘的一般流程
1)文本数据的获取。
2)文本数据的准备。
3)数据分析。
数据获取的方法多种多样,可以使用网络爬虫抓取网络文本,使用pdftools包读取PDF格式的电子文档,jsonlite包读取JSON格式的文本数据,或者是安装janeaustenr包来获取简奥斯汀的6本著名小说来进行文本挖掘的练习。
文本数据的准备包括清理标点符号、页码等多余信息,以及分词标记和简单的初步统计。通常需要使用正则表达式,其主要目的是将文章中的句子打散以获取单个的词语或词组,并去掉某些无语义贡献的词汇,例如,介词或是助词,再进行一定程度的词频统计等操作。建议有一定英语基础的读者按照《Text Mining with R》这本书开始练习,书的作者就是最易上手的文本挖掘R包tidytext的开发者。希望分析中文的读者可以从quanteda包开始,因为这个包配有中文词库和简单的中文示意。
文本数据的分析根据目的的不同在难度上会有天壤之别。对于初学者来说,预先设置一些已知的规则来对文本数据进行查询式的分析(比如,在简奥斯汀的书中,哪一个角色的名字出现次数最多)这样的词频统计分析可视化,可有助于提高对数据的理解程度和使用各个函数的信心。监督和无监督机器学习需要依靠tm、quanteda、topicmodels等不同的R包的交互使用才可能实现复杂的分析目标。详细内容请感兴趣的读者参阅各个包的主页,这里不再过多讨论。
- 点赞
- 收藏
- 关注作者
评论(0)