`
lxwt909
  • 浏览: 566288 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

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

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

 

<!-- ansj-seg -->
<dependency>
    <groupId>org.ansj</groupId>
    <artifactId>ansj_seg</artifactId>
    <version>2.0.8</version>
</dependency>

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

#redress dic file path
ambiguityLibrary=library/ambiguity.dic
#path of userLibrary this is default library
userLibrary=library
#set real name
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,

或者加裙
一起交流学习。
 

 

  • 大小: 162.3 KB
  • 大小: 39.7 KB
  • 大小: 143.8 KB
  • 大小: 188 KB
  • 大小: 475.8 KB
  • 大小: 6 KB
分享到:
评论
2 楼 qbuer 2017-03-08  
没有修改代码的过程。。
1 楼 majiedota 2015-07-07  
  哦哦 这篇感觉太粗了 以后补补呗

相关推荐

Global site tag (gtag.js) - Google Analytics