Lucene5学习之使用Ansj-seg分词器

简介:

    这回我们来玩玩ansj分词器,由于Lucene5.0在API上有点小变化,需要修改ansj分词器源码,重新打包jar包,然后mvn install到本地仓库才能引用到项目中。至于怎么修改以及怎么打包jar,我就不过多说明了,有点麻烦,我想偷个懒,哈哈。这里我就直接把打包后的jar分享给你们,jar包注意在底下的附件里下载。

    我就说说,怎么在项目中使用ansj分词器,首先pom.xml引入ansj分词器的依赖。

 

Xml代码   收藏代码
  1. <!-- ansj-seg -->  
  2. <dependency>  
  3.     <groupId>org.ansj</groupId>  
  4.     <artifactId>ansj_seg</artifactId>  
  5.     <version>2.0.8</version>  
  6. </dependency>  

 然后在你的classpath下导入library.properties自定义词典配置文件

Properties代码   收藏代码
  1. #redress dic file path  
  2. ambiguityLibrary=library/ambiguity.dic  
  3. #path of userLibrary this is default library  
  4. userLibrary=library  
  5. #set real name  
  6. isRealName=true  

请注意 library.properties文件的存放路径,如果你仅仅一个普通的web project,请把library.properties配置文件copy到src目录下,如果你是Maven Web Project,请把library.properties配置文件copy到src/main/resources目录下,如图:

ambiguityLibrary是用来配置歧义词的,比如动漫游戏,其实漫游也是一个词,但我们知道是动漫,游戏两个词语,具体可以打开ambiguity.dic字典文件查看,配置规则是:

 

动漫游戏动漫n游戏n

即短语\t词1\t词1的词性\t词2\t词2的词性.......\t词N\t词N的词性(关于词性说明请查看底下的附件)

注意中间是用\t制表符进行分割的,userLibrary是用户自定义词典,比如一些网络新词,你可以放在自定义词典中,如:童鞋,木有,么么哒之类的。

userLibrary可以配置为一个具体的dic词典文件的路径,也可以配置为一个文件夹,ansj分词器内部会自动加载这个文件夹下的所有后缀为.dic文件作为自定义词典,默认ansj分词器已经内置了一个default.dic,如果你觉得不够用,你可以在default.dic同级目录下新建一个dic文件,添加自己的新词,然后userLibrary配置为自定义词典文件所在文件夹即可,如图:



 剩下的就简单了,直接new AnsjAnalyzer()即可,随便在一个文本文件里添加一个新词比如么么哒,检查我们的分词器是否起作用了,如图:



 修改之前创建索引的demo,把分词器对象修改为AnsjAnalyzer分词器对象,删除原先的索引重新创建索引,同样的,修改查询示例里的分词器对象为AnsjAnalyzer,然后运行查询示例代码:



 OK,大功告成,打完收工!

 

如果你还有什么问题请加我Q-Q:7-3-6-0-3-1-3-0-5,

或者加裙
一起交流学习。

转载:http://iamyida.iteye.com/blog/2193949

目录
相关文章
|
自然语言处理
带你读《Elastic Stack 实战手册》之36:——3.4.2.17.5.中文分词器/ IK分词器/ pinyin分词器(上)
带你读《Elastic Stack 实战手册》之36:——3.4.2.17.5.中文分词器/ IK分词器/ pinyin分词器(上)
142 0
|
自然语言处理 索引
带你读《Elastic Stack 实战手册》之36:——3.4.2.17.5.中文分词器/ IK分词器/ pinyin分词器(中)
带你读《Elastic Stack 实战手册》之36:——3.4.2.17.5.中文分词器/ IK分词器/ pinyin分词器(中)
124 0
|
自然语言处理 项目管理 微服务
带你读《Elastic Stack 实战手册》之36:——3.4.2.17.5.中文分词器/ IK分词器/ pinyin分词器(下)
带你读《Elastic Stack 实战手册》之36:——3.4.2.17.5.中文分词器/ IK分词器/ pinyin分词器(下)
137 0
|
自然语言处理 Java 索引
Lucene&&Solr——分析器(Analyzer)
Lucene&&Solr——分析器(Analyzer)
78 0
Lucene&&Solr——分析器(Analyzer)
|
自然语言处理 算法 架构师
Lucene优化(分词器的选择) | 学习笔记
快速学习Lucene优化(分词器的选择)。
Lucene优化(分词器的选择) | 学习笔记
|
XML 自然语言处理 搜索推荐
使用Luke Lucene进行索引
目录 luke 简介 luke下载及安装 luke 使用 打开luke Overview选项卡 Documents选项卡 search选项卡 Commits选项卡 Plugins选项卡 导出索引为XML 检查索引正确性 总结 1. luke 简介 luke### 是一个用于Lucene/Solr/Elasticsearch 搜索引擎的,方便开发和诊断的 GUI(可视化)工具。
1469 0
|
人工智能 自然语言处理 算法
es实战-使用IK分词器进行词频统计
通过IK分词器分词并生成词云
1242 0
es实战-使用IK分词器进行词频统计
|
自然语言处理 应用服务中间件
|
自然语言处理 Java 数据格式
solr6.6初探之分词篇
关于solr6.6搭建与配置可以参考 solr6.6初探之配置篇 在这里我们探讨一下分词的配置   一.关于分词 1.分词是指将一个中文词语拆成若干个词,提供搜索引擎进行查找,比如说:北京大学 是一个词那么进行拆分可以得到:北京与大学,甚至北京大学整个词也是一个语义 2.
1241 0