cppjieba icon indicating copy to clipboard operation
cppjieba copied to clipboard

[bug] 数字+量词+名词组合处理不当

Open ruibin opened this issue 7 months ago • 6 comments

    std::string s = "购买了3部手机";
    std::vector<std::string> expected = {"购买", "了", "3", "部", "手机"};
    jieba.Cut(s, words, true);
    EXPECT_EQ(words, expected);

预期结果应该是: 购买 了 3 部 手机 你的代码切分结果: 购买 了 3 部手机

ruibin avatar Apr 26 '25 14:04 ruibin

我已经改用ltp了

obitodaitu avatar Apr 29 '25 11:04 obitodaitu

原因是原始词典文件里混入了 部手机 这样的脏词,https://raw.githubusercontent.com/yanyiwu/cppjieba/refs/heads/master/dict/jieba.dict.utf8 如果把词典文件里删除 部手机 这样的脏词后就ok了。 一般情况下是建议用自己维护的词典可以比较灵活。

yanyiwu avatar May 02 '25 01:05 yanyiwu

https://github.com/yanyiwu/cppjieba/pull/200

yanyiwu avatar May 02 '25 03:05 yanyiwu

你试一下最新版本的代码,应该就没这个问题了。

yanyiwu avatar May 02 '25 09:05 yanyiwu

是否可以考虑一下实现这个功能: 提供接口、或者约定一个路径、或者通过参数传入自定义字典, 然后优先级是自定义词典高于系统自带词典?

ruibin avatar May 05 '25 06:05 ruibin

自定义词典 这个功能是有的,readme里有:【自定义词典示例请看dict/user.dict.utf8】

yanyiwu avatar May 11 '25 01:05 yanyiwu

仓库里的自定义词典已经有十几年没更新了。当初的词典源是什么,现在还有更新吗?自己维护词典还是太麻烦了

xuxiaocheng0201 avatar Aug 09 '25 23:08 xuxiaocheng0201