当前位置:   article > 正文

jieba 自定义词典_python练习-snownlp情感分析优化和jieba库加载自定义词库无效果...

python jieba 自定义词库

6ede2c8918e07bba06779f6965dd4949.png

以下内容为anocada环境下遇到的情况

使用snowNLP库做微博评论的情感分析,snownlp中支持情感分析的模块在sentiment文件夹中,其核心代码为__init__.py文件,其中分词代码如下

# 分词以及去停用词的操作

def handle(self, doc):

words = seg.seg(doc) # 分词

words = normal.filter_stop(words) # 去停用词

return words # 返回分词后的结果

即snownlp库通过seg()函数进行分词,通过与jieba分词库对比,发现分词效果不如jieba库好

以 “难道我又拖后腿了”为例

['难道', '我', '又', '拖', '后腿', '了'] seg()分词效果

['难道', '我', '又', '拖后腿', '了'] jieba库分词效果

果断用jieba库去优化snownlp库的分词功能,将sentiment文件夹中,的__init__.py修改一下

首先需要导入jieba库,jieba库支持加载自定义词库,比如原文本中包含了 “没必要”,我想把“没必要”保留下来,可以通过自定义词库自己设定,很方便,然后修改def handle()里的分词方法

ee1042008bda06692df3cd23ae857ff2.png

用红色框圈起来的地方是我修改的部分。jieba.load_userdict('mydict.txt')是加载自定义词库,我在自定义词库里 加入了 没必要 3 n 这样的一行,测试一下,“没必要担心”但分词之后依然是【没 必要 担心】,显然“没必要”并没有被当成是一个词。

原来jieba自己的分词词典dict.txt中有两个词:没,必要 。所以我自己定义的 没必要 这个词就没有效果。如果还想按照自己自定义的词典分词,需要把dict.txt中相应的词删掉。这样自己定义的词典就可以起效果了。所以自定义词典还是定义一些不常见的词组,以免与jieba本身的词典发生冲突而不起效果。

第三方库一般最后安装到Anaconda安装目录文件下的libsite-packages文件夹,去里面找一下jieba文件夹,可以看看jieba的分词词典里都有什么。

同理优化snownlp时也需要去Anaconda安装目录文件下的libsite-packages文件夹中找到snownlp库,然后找sentiment文件夹,然后找__init__.py进行修改。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/243362
推荐阅读
相关标签
  

闽ICP备14008679号