【python 走进NLP】利用SnowNLP 训练自己的情感分析库

介绍
SnowNLP是一个python写的类库,可以方便的处理中文文本内容。可以做很多事情,如:

中文分词(Character-Based Generative Model)
词性标注(TnT 3-gram 隐马)
情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
文本分类(Naive Bayes)
转换成拼音(Trie树实现的最大匹配)
繁体转简体(Trie树实现的最大匹配)
提取文本关键词(TextRank算法)
提取文本摘要(TextRank算法)
tf,idf
Tokenization(分割成句子)
文本相似(BM25)

安装:

pip install snownlp

训练
现在提供训练的包括分词,词性标注,情感分析,而且都提供了用来训练的原始文件

# 中文分词训练库
from snownlp import seg
seg.train('data.txt')
seg.save('seg.marshal')
# 词性标注训练库
from snownlp import tag
tag.train('199801.txt')
tag.save('tag.marshal')
#情感分析训练库
from snownlp import sentiment
sentiment.train('neg.txt', 'pos.txt')
sentiment.save('sentiment.marshal')

这样训练好的文件就存储为sentiment.marshal了,之后修改snownlp/sentiment/init.py里的data_path指向刚训练好的文件即可
找到SnowNLP 安装目录,如下:
在这里插入图片描述

放进去积极的文本,和消极的文本,进行训练即可。

已标记关键词 清除标记
我已经浏览了许多给snownlp训练的文章,千篇一律,大致内容如下: ``` 现在提供训练的包括分词,词性标注,情感分析,而且都提供了我用来训练的原始文件 以分词为例 分词在`snownlp/seg`目录下 ~~~~{python} from snownlp import seg seg.train('data.txt') seg.save('seg.marshal') #from snownlp import tag #tag.train('199801.txt') #tag.save('tag.marshal') #from snownlp import sentiment #sentiment.train('neg.txt', 'pos.txt') #sentiment.save('sentiment.marshal') ~~~~ 这样训练好的文件就存储为`seg.marshal`了,之后修改`snownlp/seg/__init__.py`里的`data_path`指向刚训练好的文件即可 ``` 然而没有解决我的问题! 我的问题有两点: 1、我按照上面的写了这两行代码如下 ``` tag.train('199801.txt') tag.save('tag.marshal') ``` 然后 ``` snow = SnowNLP('嗨你好') print(snow.words) for tag in snow.tags: print(tag) ``` 结果就报错了 ``` File "/usr/local/lib/python3.6/dist-packages/snownlp/__init__.py", line 42, in tags tags = tag.tag(words) File "/usr/local/lib/python3.6/dist-packages/snownlp/tag/__init__.py", line 43, in tag return map(lambda x: x[1], tag_all(words)) File "/usr/local/lib/python3.6/dist-packages/snownlp/tag/__init__.py", line 39, in tag_all return tagger.tag(words) File "/usr/local/lib/python3.6/dist-packages/snownlp/utils/tnt.py", line 139, in tag wd = log(self.wd.get((s, w))[1])-log(self.uni.get(s)[1]) ValueError: math domain error ``` 2、自己给添加了训练词汇后不管用!求大神帮忙
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页