yanyiwu / cppjieba

"结巴"中文分词的C++版本
MIT License
2.57k stars 690 forks source link

请问在使用MP模式分词的时候,如何能让不在词典中的英文单词不被分成单个字母? #124

Open fan-niu opened 5 years ago

fan-niu commented 5 years ago

您好,我在使用MP分词的时候,有英文单词不在词典中,通过分词之后英文单词被分成了单个字母,请问需要怎么修改才能保证不在词典中的英文单词不被切分成字母? 例如输入的句子: 你好,are you ok? MP模式分词结果为: 你好 , a r e y o u o k ?

先谢谢您的帮助:)

MingShyanWei commented 5 years ago

使用hmm唷!

fan-niu commented 5 years ago

使用hmm唷!

hmm会产生新词,这样不行唷

Shanboy5566 commented 4 years ago

我也遇到這個問題,除了hmm=true還有任何解決方案嗎

PierreZhangcw commented 4 years ago

@fanziwei @Shanboy5566 在当前的cppjieba中无法做到这一点,因为cppjieba中对于英文以及数字的处理是在HMM分词模块中进行的。但是python版本中对英文以及数字的处理是在HMM分词模块之前进行的。两者的区别请参考回答https://github.com/yanyiwu/cppjieba/issues/138#issuecomment-688265879

所以,不开启HMM模式的情况下想要正确切分数字和英文的话,只能修改cppjieba的源码。