由于语料缺乏,前期若使用到情感分析,建议暂时使用SnowNLP(此模块主要使用淘宝评论语料)做情感挖掘,但不仅仅为单纯调用,需要优化,下面是一些实践思考:
可在此基础上优化,比如文本需要特别处理,除了平常的去停用词外,还可以需要对输入的文本结合词性等进行处理。
下面是一些常识:
一)无情感的词语(如去停用词,去掉语气词,无词性标签的词语)
二)对于文本过长,则可以考虑提取关键词或抽取文本摘要后再提取关键词
对于后者实践结果差异明显:
以"发布了头条文章: 《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显 "为例子, 显然该文本为“积极****”文本。
1)s = SnowNLP("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")
得分为0.5,明显不符合
2)s = SnowNLP(“ ”.join(jieba.analyse.textrank("发布了头条文章:《5分钟11亿!京东双11场景化产品消费增长明显》 5分钟11亿!京东双11场景化产品消费增长明显")))
而对于文本特别长的,则可以先抽取摘要,再对摘要提取关键词。
这主要由于此SnowNLP主要用贝叶斯机器学习方法进行训练文本,机器学习在语料覆盖上不够,特征上工程处理不当会减分,也没考虑语义等。
为何要考虑语义层面:
以“ 苏宁易购,是谁给你们下架OV的勇气****” 中的“ 下架”其实才是中心词(为表达愤怒的文本),但“ 勇气 ”为下架的宾语(其为积极的文本),此句应该结果小于0.5,但实际为0.88,去掉“苏宁易购”则为0.6>
笔者由于最近做一个监控应用评论内容的项目,为满足需求,需要对抓取下来的应用评论做中文语义识别,结果搜出来的大部分都是仅限英文语义识别的库,搜好久才找到这个国人开发的中文文本处理库(包含语义识别功能),特此介绍给大家。
跟其他python类库一样,使用pip安装就行了
用的时候,有时候可能会觉得有些语句分析出来的结果会不太准确,这时候你就需要更新语料库,再进行训练,这样下次分析出来的结果就更加准确了。下面介绍一下如何进行训练
首先准备两份语料文本,neg.txt(负面语料文本) pos.txt(积极语料文本)
再次把生成好的sentiment.marshal放入类库的/sentiment 就可以了
试用效果如下,分析各渠道应用市场评论内容的情感:
目前笔者也仅仅试用了情感分析的功能而已,其他功能欢迎读者自行试用,总之就是相当强大
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)