jieba 增加了自定义词典后,一个完整的单词被强行分开了

8zzbczxx  于 5个月前  发布在  其他
关注(0)|答案(5)|浏览(52)

在我的自定义词典中有这样一个专有名词"ens",在分词时却将“license”强行分成了“lic/ens/e”。这个要怎么处理这种情况?

rmbxnbpk

rmbxnbpk1#

在词典里加上“license”,再给个比“ens”较高的数

smtd7mpg

smtd7mpg2#

我觉得jieba应该尊重英文词的边界,当自定义词典里起始或结束是英文字母,例如:
jieba.add_word('w底')
jieba.lcut("太好了w底出现了") # 这里"w底"的w不是英文词的连续,可以切分
['太好了', 'w底', '出现', '了']
jieba.lcut("wow底出现了") # 这里"w底"的w是英文词的连续,不应该切分
['wo', 'w底', '出现', '了']

l5tcr1uw

l5tcr1uw3#

@chunsheng-chen 那是不是得有个字典存英文单词,感觉会很大哦

zyfwsgd6

zyfwsgd64#

不知道具体细节,但我猜测jieba对英文词的分解是基于类似"[a-zA-Z0-9]*"的模式,所以不需要英文字典,例如:
jieba.lcut("this is a 1test1-abc2! call 911")
['this', ' ', 'is', ' ', 'a', ' ', '1test1', '-', 'abc2', '!', ' ', 'call', ' ', '911']

如果能尊重英文词的自然分割方式,就不会出现上面的情况了: license是一个完整的词,wow是一个完整的词。

qoefvg9y

qoefvg9y5#

自定义词典中部分词含有日文的假名,但是分词出来好像全部无视了。

相关问题