snownlp对比jieba,如何处理分词和获得分词词性?
发布于 作者:苏南大叔 来源:程序如此灵动~

snownlp
在自然语言处理领域,是以情感分析特长而闻名的。它的很多功能和著名的jieba
分词相比,两者是有很多重复的功能的。那么,本文就来对比一下snownlp
和jieba
的分词和获得词性功能。

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述自然语言处理领域里面,snownlp
和jieba
的分词效果对比。测试环境:win10
,python@3.6.8
,snownlp@0.12.3
,jieba@0.42.1
。
jieba
分词
根据已有的文章内容,可以知道jieba
分词的分词函数有四个,其中两个可以切出词性。这些函数还都有个默认值是cut_all=False
,为精准切词方式。大多数情况下,都应该使用cut_all=False
。参考文章:
- https://newsn.net/say/jieba.html
- https://newsn.net/say/jieba-cut.html
- https://newsn.net/say/jieba-lcut.html
所以,这里采用的函数是:
这里输出为:
这个例子表明:jieba
支持自定义分词,比如专有名词“苏南大叔”,这个就是可以自定义的。同时,“毕业”这个词儿的词性结果,似乎有些问题。

snownlp
分词
snownlp
测试代码:
输出结果:

s.tags
这个词性标注结果,是个zip
数据类型。关于这个类型的输出问题,参考文章:
根据snownlp
的官方文档,这里的分词结果并没有自定义词典的功能,也就是说,无法分出“苏南大叔”这个词。另外,snownlp
的着力点是情感分析,所以,能拿来分词的语句,都应该是由一定的感情色彩的句子,否则体现不出snownlp
的优势。
相关链接
snownlp
官方文档链接:
- https://github.com/isnowfy/snownlp
- https://newsn.net/say/nlp-code.html
- https://newsn.net/say/python-zip.html
- https://newsn.net/say/jieba.html
- https://newsn.net/say/jieba-cut.html
- https://newsn.net/say/jieba-lcut.html
总结
对比结果表明,单就分词这个需求角度来说,jiba
显然更具有优势,可以调整分词条目。但是默认的分词效果也有不准确的地方。snownlp
所针对的句子,都应该具有一定的情感色彩。所以,理论上适用的范围更小,并且不能自定义分词效果。所以,单单就分词这个角度来说,jieba
效果更好。


