Jcseg分词器中英文混合词保留完整分词

        Jcseg是基于mmseg算法的一个轻量级中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了一个基于Jetty的web服务器,方便各大语言直接http调用,同时提供了最新版本的lucene, solr, elasticsearch的分词接口Jcseg自带了一个 jcseg.properties文件用于快速配置而得到适合不同场合的分词应用,例如:最大匹配词长,是否开启中文人名识别,是否追加拼音,是否追加同义词等

        最近项目中在优化Solr搜索,使用Jcseg分词器进行分词时遇到一个问题,中英文混合分词如“O型”,被分成了“型”,直接把“O“去掉了,这并不是想要的效果,也没有找到相关的博客,特此记录一下

        查阅资料之后我找到了分词器词库的目录,即jcseg.properties中的lexicon.path配置项,该目录下存放各种各种类型的lex后缀的分词文件

Jcseg分词器中英文混合词保留完整分词_第1张图片

        lex-ecmixed.lex文件,顾名思义,为维护英中文混合词的词库文件,在文件中加入“O型”,重新加载分词器即可,但是这种方案太死板,能暂时解决“O型”的问题,但如果以后又来一个“L类”,“B型”呢?并不是长久之计,所以我们要找到“O”被移除的根本原因。

        这就要说到Jcseg的停止词过滤功能了,词库目录下的lex-stopword.lex维护着一些停止词,即分词的时候遇到这些停止词,会直接移除,不加入分词中去

        如何开启停止词过滤功能呢?在jcseg.properties中配置:

        #是否自动过滤停止词(0 关闭, 1 开启)

        jcseg.clearstopword=1

       所以我们只需要开启停止词过滤功能之后,删除lex-stopword.lex中配置的停止词“O”对应的那一列,再重新加载词库即可

Jcseg分词器中英文混合词保留完整分词_第2张图片

 

你可能感兴趣的:(Java)