weixin_44619173 2019-07-16 16:31 采纳率: 0%
浏览 896
已结题

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、自己给添加了训练词汇后不管用!求大神帮忙
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-07-16 18:41
    关注

    wd = log(self.wd.get((s, w))[1])-log(self.uni.get(s)[1])
    log里面的东西是不是负数了?调试下

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码