文本挖掘相关介绍
1、什么是文本挖掘
文本挖掘是抽取有效、新颖、有用、可理解的、散布在文本文件中的有价值知识,并且利用这些知识更好地组织信息的过程。
在文本挖掘领域中,文本自动分类,判同,情感分析是文本挖掘比较常见的应用 。文本分类技术主要应用在百度新闻,谷歌新闻等新闻网站,对新闻内容进行自动分类,并且实现根据用户专业倾向的文档推荐;搜索引擎去重,论文抄袭判别系统等。情感分析技术主要应用在电商评论分析系统,政府和媒体舆情监测系统等。语意理解技术应用在机器翻译、聊天机器人等。
2、NLP
文本挖掘可以视为NLP(Natural language processing,自然语言处理)的一个子领域,目标是在大量非结构化文本中整理析取出有价值的内容。由于人类语言具有很高的复杂性,例如不同语言间语法不同,组成方式不同,还有语言种类的多样性,使得NLP是目前机器学习领域最困难的技术之一,里面的难点大部分成为各个应用领域(搜索引擎,情感识别,机器写作等等)的核心障碍,是实现高度智能机器人的关键技术。NLP大部分方法适用于不同的语种,也有部分只适合特定语种。
NLP通常包含两方面内容:词法、语法。词法的经典问题为分词、拼写检查、语音识别等;语法的经典问题有词类识别、词义消歧、结构分析等;语音识别领域经典问题有语言识别、语音指令、电话监听、语音生成等。
3、 分词
在英语等语言中,词与词之间存在着空格,因此在进行处理过程中不需要对其进行分词处理,但由于汉语等语言中词与词之间没有存在分隔,因此需要对其进行分词处理。分词处理能够避免不分词所引发的全表扫描,全表扫描效率低且内存消耗大。
4、 OCR
OCR : optional character recognition 印刷体识别和手写体识别、字形析取
应用:车牌识别、名片识别等
5、 常用算法
(算法需要一定的数学和统计学基础)
贝叶斯分类器
隐马尔科夫过程
有限状态自动机(FSA):用于文本判同等
6、 文本挖掘处理流程
7、 相应R包简介
语音与语音处理: emu包
词库数据库: wordnet包(英文库)
关键字提取和通用字符串操作: RKEA包;gsubfn包,tau包
自然语言处理: openNLP包,RWeka包;snowball包(分词);Rstem包;KoNLP包
文本挖掘: tm包(相对完整和综合);lsa包;topicmodels包;RTextTools包;textact包;zipfR包;……
8、 文本处理
1.词干化stemming snowball包
2.记号化Tokenization RWeka包
3.中文分词 Rwordseg包
Rwordseg包需下载安装,网址:
https://r-forge.r-project.org/R/?group_id=1054
在上面网址中下载Rwordseg 如果是64位的话就要下载.zip文件
中文分词比较有名的包非Rwordseg和jieba莫属,他们采用的算法大同小异,但有一个地方有所差别:Rwordseg在分词之前会去掉文本中所有的符号,这样就会造成原本分开的句子前后相连,本来是分开的两个字也许连在一起就是一个词了。
而jieba分词包不会去掉任何符号,而且返回的结果里面也会有符号。
9、 tm包常用操作介绍
1.DirSource:处理目录
2.VectorSource:由文档构成向量
3.DataframeSource:数据框,就像CSV 文件
4.Map操作:对文档内容应用转换函数
5.Xml转化为纯文本
6.去除多余空白
7.去除停用词
8.填充
9.Reduce操作:将多个转换函数的输出合并成一个
tm包具体操作
tm包版本问题:代码基于tm包0.6版本
关于版本差异问题,详见:https://cran.r-project.org/web/packages/tm/news.html
1.建立语料库
建立动态语料库 Corpus(x,……)
Corpus(x, readerControl = list(reader=x$DefaultReader,language="en"),|…… )
建立静态语料库 Pcorpus(x,……)
PCorpus(x, readerControl = list(reader=x$DefaultReader,language="en"),dbControl = list(dbName="",dbType="DB1"),…… )
x参数有如下三种选择:
DirSource
VectorSource
DataframeSource
(可以在reade