聚类、文本分类、倾向性分析

最近项目和话题检测、倾向性分析相关,涉及到聚类、文本分类、文本倾向性分析技术,决定形成系统说明并将代码开放出来,作为记录。

数据的话,由于和实验室项目相关,不好开放出来,可以使用搜狗的语料库(http://www.sogou.com/labs/dl/cs.html)。


先大概介绍一下框架,涉及到具体的各个模块,在各个具体的文章中说明:

聚类流程:

1、文本预处理,包括分词、去停用词、统计词频等(如果是英文文本的话,还有词干还原,如porter算法)

2、特征选择(这一步根据数据做选择,可以有,可以没有,如果没有的话,就是用整篇文章内容作为特征),常见的如:信息增益、开方检验、TF-IDF、互信息

3、文本表示,一般可以使用矢量空间模型(VSM),具体的特征值,按需要计算,比如TF-IDF等

4、由于聚类是一个无监督的方法,就没有训练过程了,直接使用聚类算法进行聚类,比如KMeans

5、聚类结果评价,常见的如:purity,RI.F值


分类流程:

1、文本预处理,参见聚类流程

2、特征选择,参见聚类流程

3、文本表示,参见聚类流程

4、分类一般都使用有监督的方法,故基本都有训练过程,KNN算法没有训练过程,但还是需要标注样本 常用的几种方法:KNN,贝叶斯,SVM,决策树,神经网络。由于神经网络用的比较少,决策树不太适应大规模数据,就只对前三种算法做说明。

5、使用训练后的模型或标注样本(KNN)进行分类

6、分类结果评价,常见的如:precision、recall、F值


倾向性分析:

倾向性分析一般有两种类型的方法,一是基于情感词典,一是基于文本分类,或者是将情感词典和文本分类结合起来,以情感词作为特征,使用文本分类的方法。分类在上述已经有说明,这里主要对基于情感词典的方式进行说明。

1、构建词典,目前在实际使用中,可以将其归为四类:通用情感词(S)、程度副词(L)、否定词(N)、领域词(S)。通用情感词,就是一些比较常见的带情感的词如喜欢、讨厌;程度副词,就是一些表示程度的词如很、最、更,可对同程度的词赋权值;否定词,如不、不是,单独列出来是因为这些词和情感词连用时会表现出相反的情感;领域词,就是数据所涉及到的领域,比如新闻的话,要分析倾向性就比较难,基本不会有通用的情感词出现,这时候就需要提取一些领域相关的词,这些词可能是情感词也可能不是,比如酒店评价的话:向阳、潮湿等

2、构建倾向性计算模型。可以使用以句子为单位计算倾向性得分,进而计算篇章得分的方式来判断文章倾向性。

聚类、文本分类、倾向性分析_第1张图片

3、确定阈值来判断倾向性。一般情况下,我们认为得分为正的为正面倾向、得分为负的为负面倾向、得分为0是无倾向。但是并不是所有无观点的文章计算出来的得分都为0,有可能是接近0的值。故可以设定一个阈值,使得得分|score| - ε < 0的文章判定为无倾向。

4、结果评价,可以采用通用的precision、recall、F值的方式


各个模块:

特征选择之信息增益

你可能感兴趣的:(文本分类,文本聚类,倾向性分析)