SnowNLP情感分析用法:
SnowNLP是一个常用的Python文本分析库,是受到TextBlob启发而发明的。由于当前自然语言处理库基本都是针对英文的,而中文没有 空格分割特征词,Python做中文文本挖掘较难,后续开发了一些针对中文处理的库,例如SnowNLP、Jieba、BosonNLP等。注意 SnowNLP处理的是unicode编码,所以使用时请自行decode成unicode。
Snownlp主要功能包括:
- 中文分词(算法是Character-Based Generative Model)
- 词性标注(原理是TnT,3-gram 隐马)
- 情感分析
- 文本分类(原理是朴素贝叶斯)
- 转换拼音,繁体转简体
- 提取文本关键字(原理是TextRank),分割句子
- 文本提取(原理是BM25)
jieba库:
jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组;除此之外,jieba 库还提供了增加自定义中文单词的功能。
- 精确模式:将句子最精确地切开,适合文本分析。
- 全模式:将句子中所以可以成词的词语都扫描出来,速度非常快,但是不能消除歧义。
- 搜索引擎模式:在精确模式的基础上,对长分词再次切分,提高召回率,适合搜索引擎分词。
比较SnowNLP和jieba库的分词效果:
from snownlp import SnowNLP
import jieba
s1 = SnowNLP(u"这本书的质量真不太好!")
print("SnowNLP:")
print(" ".join(s1.words))
s2 = jieba.cut(u"这本书的质量真不太好!", cut_all=False)
print("jieba:")
print(" ".join(s2))
运行结果:
相对来说,SnowNLP分词速度比较慢,准确度不如jieba,但也不影响后续的情感分析。