cppjieba icon indicating copy to clipboard operation
cppjieba copied to clipboard

cut_all与python版本对数字的分词结果不一致

Open WitLes opened this issue 6 years ago • 1 comments

例如“农夫山泉矿泉水5000毫升应用水纯净水”

python版本:['农夫', '农夫山泉', '山泉', '矿泉', '矿泉水', '泉水', '5000', '毫升', '应用', '用水', '纯净', '纯净水', '净水'] 该版本: ['农夫', '农夫山泉', '山泉', '矿泉', '矿泉水', '泉水', '5', '0', '0', '0', '毫升', '应用', '用水', '纯净', '纯净水', '净水']

WitLes avatar Dec 28 '19 11:12 WitLes

@WitLes 对于英文以及数字的处理,python版本的jieba和cppjieba的确是不一样的:

  • 顺序上:pyjieba是先进行英文以及数字的处理,然后再把余下的连续单字部分交给HMM模型进行处理;cppjieba里对英文以及数字的处理是在HMM分词模块里的。
  • 具体处理措施上:pyjieba是将英文和数字放在一起用正则表达式匹配处理的;cppjieba中将英文和数字分开进行处理,逐个字符判断。这点差异会导致分词结果的不一致。

但是,对于你提出的问题,我觉得是使用不当导致的,“5000”是一个非常简单的数字模块,开启HMM分词(hmm=true)以后肯定可以分对的,像你说的那种情况,大概率是因为没打开HMM模型分词(hmm=false)

PierreZhangcw avatar Sep 07 '20 11:09 PierreZhangcw