千家信息网

使用 Lucene怎么实现一个中文分词器

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这期内容当中小编将会给大家带来有关使用 Lucene怎么实现一个中文分词器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。什么是中文分词器学过英文的都知道,英文是以单
千家信息网最后更新 2024年11月24日使用 Lucene怎么实现一个中文分词器

这期内容当中小编将会给大家带来有关使用 Lucene怎么实现一个中文分词器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。


    1. 什么是中文分词器

学过英文的都知道,英文是以单词为单位的,单词与单词之间以空格或者逗号句号隔开

而中文的语义比较特殊,很难像英文那样,一个汉字一个汉字来划分。

所以需要一个能自动识别中文语义的分词器。


    1. StandardAnalyzer

    2. Lucene自带的中文分词器

单字分词:就是按照中文一个字一个字地进行分词。如:"我爱中国",
效果:"我"、"爱"、"中"、"国"。


    1. CJKAnalyzer


二分法分词:按两个字进行切分。如:"我是中国人",效果:"我是"、"是中"、"中国""国人"。

上边两个分词器无法满足需求。


    1. 使用中文分词器IKAnalyzer

IKAnalyzer继承Lucene的Analyzer抽象类,使用IKAnalyzer和Lucene自带的分析器方法一样,将Analyzer测试代码改为IKAnalyzer测试中文分词效果。

如果使用中文分词器ik-analyzer,就在索引和搜索程序中使用一致的分词器ik-analyzer。


    1. 使用luke测试IK中文分词


(1)打开Luke,不要指定Lucene目录。否则看不到效果

(2)在分词器栏,手动输入IkAnalyzer的全路径

org.wltea.analyzer.lucene.IKAnalyzer


    1. 改造代码,使用IkAnalyzer做分词器

    2. 添加jar包




    1. 修改分词器代码


// 创建中文分词器

Analyzer analyzer = new IKAnalyzer();



    1. 扩展中文词库


拓展词库的作用:在分词的过程中,保留定义的这些词

1在src或其他source目录下建立自己的拓展词库,mydict.dic文件,例如:

2在src或其他source目录下建立自己的停用词库,ext_stopword.dic文件

停用词的作用:在分词的过程中,分词器会忽略这些词。

3在src或其他source目录下建立IKAnalyzer.cfg.xml,内容如下(注意路径对应):

"1.0" encoding="UTF-8"?>

IK Analyzer 扩展配置

"ext_dict">mydict.dic

"ext_stopwords">ext_stopword.dic

上述就是小编为大家分享的使用 Lucene怎么实现一个中文分词器了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

0