SnowNLP和jieba库实现中文分词

SnowNLP情感分析用法:

SnowNLP是一个常用的Python文本分析库,是受到TextBlob启发而发明的。由于当前自然语言处理库基本都是针对英文的,而中文没有 空格分割特征词,Python做中文文本挖掘较难,后续开发了一些针对中文处理的库,例如SnowNLPJiebaBosonNLP等。注意 SnowNLP处理的是unicode编码,所以使用时请自行decode成unicode。

Snownlp主要功能包括

  • 中文分词(算法是Character-Based Generative Model)
  • 词性标注(原理是TnT,3-gram 隐马)
  • 情感分析
  • 文本分类(原理是朴素贝叶斯)
  • 转换拼音,繁体转简体
  • 提取文本关键字(原理是TextRank),分割句子
  • 文本提取(原理是BM25)

jieba库:

jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组;除此之外,jieba 库还提供了增加自定义中文单词的功能。

  • 精确模式:将句子最精确地切开,适合文本分析。
  • 全模式:将句子中所以可以成词的词语都扫描出来,速度非常快,但是不能消除歧义。
  • 搜索引擎模式:在精确模式的基础上,对长分词再次切分,提高召回率,适合搜索引擎分词。

比较SnowNLPjieba库的分词效果

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库实现中文分词_第1张图片
相对来说,SnowNLP分词速度比较慢,准确度不如jieba,但也不影响后续的情感分析。

你可能感兴趣的:(Python)