分词上关于一些英文数字混合的字符串应该如何处理

你好,我是 Gitee.com 的同学,开源软件中经常有各种各样的软件名称,比如 log4j ,比如 j2cache ,比如 K8S 等等。

这种词汇用 HanLP 进行分词会被拆分成三部分。虽然通过加词库的方式可以正确的分词,但因为新软件层出不穷,经常会有新的出来。所以我想着能否在处理这种英文数字混编的字符串的时候,能出如下的效果,例如: log4j = [log4j,log,4,j]

不知道这个问题是否有现成的解决办法呢?非常感谢

建议升级2.x,直接就能分对:https://hanlp.hankcs.com/?sentence=Apache+Log4j2+被曝出一个高危漏洞,该漏洞被命名为Log4Shell,编号CVE-2021-44228。

1.x可以用LexicalAnalyzerPipeline添加正则表达式识别:

谢谢你的回复。

因为我是想做到 ES 插件里的。所以我希望一个词能被分成多个
例如 log4j → log4j, log 两个词都可检索到。
主要是各种开源软件的名称取名太混乱了,希望用户能跟方便的检索到
这种请问建议应该怎么处理比较合适呢?

每个nx词性的单词按字符类型拆一下,参考IndexTokenizer记录好offset。一点规则而已,自己封装。