cppjieba icon indicating copy to clipboard operation
cppjieba copied to clipboard

求助。会切出"*是"的词,有什么办法优化一下吗

Open hebutliu2010 opened this issue 6 years ago • 2 comments

"世界排名第一的围棋手是谁"切词结果为:"世界排名 第一 的 围棋 手是 谁" "世界排名第一的围棋手是谁"切词结果为:"世界排名 第一 的 为期 首是 谁" "宝贝的外文名是什么"切词结果为:"宝贝 的 外文 名是 什么" "宜昌市长是谁"切词结果为:"宜昌市 长是 谁" "大头儿子的外文名是什么"切词结果为:"大头儿子 的 外文 名是 什么" "毒药水是什么"切词结果为:"毒药 水是 什么"

hebutliu2010 avatar Feb 19 '19 03:02 hebutliu2010

同求解~

terrywh avatar May 22 '19 06:05 terrywh

这个应该暂时没办法解决。因为在cppjieba里对于人工干预的维护方法非常有限(几乎没有,只有一个添加词的功能)。python版本的jieba里倒是有多种维护工具(增加词,删除词,修改词频等)。 错误原因:“*是”这一类错误是由于HMM模型导致的,举个例子:“世界排名第一的围棋手是谁”,在关闭HMM模型时的切分结果为“世界排名/第一/的/围棋/手/是/谁”。开启HMM模型之后,HMM模型会进一步对分词结果中的连续单字进行未登录词识别处理,将连续单字部分“手/是/谁”重新切分为“手是/谁”。 考虑的解决方案

  • 添加ForceSplit功能(python版本中有初版,但是好像没起作用),将“*是”添加到ForceSplit词典中
  • 向词典中添加新词:将“围棋手”,“外文名”,“毒药水”等词添加到词典中,使得第一步切分结果为“世界排名/第一/的/围棋手/是/谁”,这样的话“手”字就不会被放在连续单字部分而交给HMM模型处理,就可以分对了。

PierreZhangcw avatar Sep 07 '20 11:09 PierreZhangcw