Open qjf42 opened 3 years ago
问题在calc函数。解决方法:将【logtotal = log(self.total)】修改为一个常量,logtotal赋值为40(估计值,可以更大),可以解决
有测试用例吗?
有测试用例吗?
机动战士高达 -> ['机动', '战士', '高', '达'] 地心历险记 -> ['地', '心', '历险记']
"高达"、"地心" 都在dict.txt中,在DAG中都是合并的节点
版本 67fa2e3
可以尝试一下cut_all=True
#-*- coding:utf8 -*-
import jieba
for sent in "机动战士高达 地心历险记".split():
for cut_all in [True,False]:
x = seg_list = jieba.cut(sent, cut_all=cut_all)
x = list(x)
print('cut_all=%s'%cut_all)
print(x)
cut_all=True
['机动', '战士', '高达']
cut_all=False
['机动', '战士', '高', '达']
cut_all=True
['地心', '历险', '历险记']
cut_all=False
['地', '心', '历险记']
https://github.com/fxsjy/jieba/blob/67fa2e36e72f69d9134b8a1037b83fbb070b9775/jieba/__init__.py#L267-L273 这部分的逻辑是不是有点问题,在词典中的词还是会被切开 参考了一下Java和C++(包括基于C++的go和R)实现,都没有这个问题