我已经浏览了许多给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、自己给添加了训练词汇后不管用!求大神帮忙