你是否想过为什么图书馆的管理员能够将几千本几万本的书籍进行快速的管理?你是否好奇习近平总书记的政府工作报告,随着时间的推移,他传达的信息有什么变化?如何从海量的科研文献中提取导致某疾病的关键蛋白/基因?如何针对用户的网络行为,分析情感特征,根据用户的检索要求或者购买需求,提供相关的信息资料或意向产品?如何根据预先设定的主题类别,对大量的文档进行分类,方便阅读和查找?还在苦恼于毕业典礼照集的几千位校友照中寻找自己的学位授予照片?
理查德·费曼说:“我觉得,不知道答案的生活要比得到一个错误答案有趣得多。” 其实,以上问题的答案均离不开一个词:“文本挖掘”。现在这个世界,文本数据已经泛滥成灾。大概80-90%的数据都是文本形式的。想从海量的文本数据中获得有价值的信息,必须具备分析文本数据的能力。
01
文本挖掘简介
文本挖掘可以说是NLP自然语言处理所研究问题的一个分支,是多学科的融合,涉及计算机、数据挖掘、机器学习、统计学等。文本挖掘和数据挖掘不同之处:文档是属于非结构化数据,不能直接将数据挖掘的技术直接用于文档挖掘,需要转换为结构化数据才能用于数据分析,并帮助领导决策产生一定的价值。文本的挖掘的应用广泛,比如运用于信息检索、产品推荐、网页浏览、文本分类、文本聚类、音频/图像/视频识别等领域。
02
文本挖掘流程
文本挖掘的流程可以分为六个环节,即(文本源)文本数据获取、预处理、 特征提取、(学习与知识模式的提取)建模、模式评价、可视化。
03
R语言与文本挖掘
R 语言文本数据这类非结构化数据,需要用到很多工具包,使得R能够处理文本数据。
数据获取:RCurl、XML,用于实现爬虫与网页解析。
数据清洗:base、stringr、reshape2、tidyr等。tidyr用于数据的整理。
数据处理:tm、JiebaR、Rwordseg、tidytext等。tm包能够创建语料库并对文本数据进行结构化转换。JiebaR 包对中英文分词 unnest_tokens()用于英文分词,segment()用于中文分词。
分析挖掘:base、arules、fpc、LDA 等。
可视化:wordcloud2、ggplot2。