1文本去重
编辑距离去重是一种字符串之间的相似度计算方法。具体来说,给定两个字符串,将A转为B所需要的删除、插入、替换等步骤的数量叫做从A到B的编辑路径。而将最短的编辑路径称为编辑距离。
例如“还没正式使用,不知道怎样,但安装的材料费确实有点高,380”与“还没使用,不知道质量如何,但安装的材料费确实贵,380”的编辑距离是9。
首先,针对重复的评论进行去重操作,也就是删除重复的评论语句。
此外,一句话中出现的重复词语,将会影响评论中的关键词在整体中出现的频率太高而对分析结果产生影响,需要压缩。
对于自动好评的评论,需要识别并自动删除。
2压缩语句的规则(需要理解)
a.若读入与上列表相同,下为空,则放下
b.若读入与上列表相同,下有,判断重复,清空下表
c.若读入与上列表相同,下有,判断不重,清空上下
d.若读入与上列表不同,字符>=2,判断重复,清空上下
e.若读入与上列表不同,下为空,判断不重,继续放上
f.若读入与上列表不同,下有,判断不重,放下
g.读完后,判断上下,若重则压缩.
3分词
分词原理
分词是指将一段汉字切分成独立的词,分词结果的准确性对后续的完起到至关重要的影响。目前分词算法主要有以下4中:字符串匹配;基于理解的算法;基于统计的算法以及基于机器学习算法。
(1)字符串匹配算法:将待分的文本串和词典中的次进行精准匹配,如果词典中的字符串出现在当前待分的文本中,则匹配成功,常用的匹配算法有正向最大匹配、逆向最大匹配、双向最大匹配和最小切分。(优缺点补充)
(2)基于理解的算法:通过模拟现实中人都对句子的理解效果进行分词。该方法需要进行句法分析,同时需要大量语言知识和信息,比较复杂。
(3)基于统计的算法:单词偶单字构成,在文本中,相邻字共同出席的次数越多,他们构成次的概率就越大,因此利用字之间的共现概率反映词的概率,统计相邻字的共现次数,计算共现概率。当共现概率改与设定的阈值,则认为可能构成词语
(4)基于机器学习的算法:利用机器学习进修模型构建,构建大量已分词文本为训练数据,利用机器学习算法进行模型训练,利用模型对文职文本进行分析。(重点)
4分词后去除非关键词
分词之后,句子中的语气词等对于句子的特征没有贡献,需要删除。另外一些专有名词,例如在分析热水器案例中经常出现热水器等,属于无用信息,需要删除。通过自定义词库来删除一些词。
5分词之后
得到词语之后,绘制词频云图,了解关键词的分布情况。下一步开始建模分析,在模型的选择上有很多方法,总结下来主要是两类:向量空间模型和概率模型,下面分别讨论这两种模型:
模型一:TF-IDF模型
其中 表示第j个词在第i个文本中的权重, 表示第j个词在第i个文本中出现的频率,频率越大,说明该词对文本的贡献度越大。 表示词语在整个文本集中的分布情况,也就是包含该词语的文档个数越少, 越大,说明该词语具有较强的区分能力,其计算公式:
其中, 表示包含该词语的文本个数,N表示文本总个数
方法A:将每个词出现的频率加权之后,当做其所在维度的坐标,由此确定特征的空间位置。
“话筒”表示为[0 0 0 1 0 0 0 0 0 0 0 ……..]
“麦克”表示为[0 0 0 0 0 0 0 0 0 1 0……...]
方法B:将出现的所有词包含的属性作为维度,再将词与每个属性的关系作为坐标,然后定位一篇文档在向量空间的位置。
实际上,若一个词语在一类文档中频繁出现,则说明该词语能很好代表这个类的文本特征,对于这样的词语应该赋予较高的权重,并选择作为该类的特征词,以区别于其他类文档,这就是IDF不足的地方。
模型二:LDA模型
传统的判断两个文档的相似性的方法是通过查看两个文档共同出现的单词有多少,但是该方法没有该类文字背后的语义,可能两个文档共同出现的单词很少,甚至没有,但两个文档是相似的。
举个例子,有两个句子:
“乔布斯离我们而去了”
“苹果价格会不会降?”
可以看到上面这两个句子没有共同出现的单词,但是这两个句子是相似的,如果按照传统的方法判断,这两个句子应该是不相似的。所以,在判断文档相关性的时候需要考虑文档的语义,而语义挖掘的利器是主题模型,LDA就是较为常用的一种。
LDA是一种无监督的生成主题模型,其假设:文档集中的文档是按照一定的概率共享隐含主题集合,隐含主题集合则由相关词构成。这里共有三个集合:文档集、主题集和词集。文档集到主题集服从概率分布,词集到主题集也服从概率分布,现在已知文档集和词集,根据贝叶斯定理就能求出主题集。其算法非常复杂,可以参考:
http://www.52analysis.com/shujuwajue/2609.html
http://blog.youkuaiyun.com/huagong_adu/article/details/7937616
6总结
(a)数据的复杂性高,文本挖掘面对的是非结构性语言,其很复杂。
(b)流程不同,文本挖掘更注重预处理阶段工作
(c)流程图如下所示:
7应用领域
(a)舆情分析
(b)搜索引擎优化
(c)其他行业辅助
8 R语言中的实现
下一节阐述