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

2023-11-02 01:48

本文主要是介绍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,

或者加裙
一起交流学习。
 

 

这篇关于Lucene5学习之使用Ansj-seg分词器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/327261

相关文章

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

Python验证码识别方式(使用pytesseract库)

《Python验证码识别方式(使用pytesseract库)》:本文主要介绍Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1、安装Tesseract-OCR2、在python中使用3、本地图片识别4、结合playwrigh

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

SpringCloud中的@FeignClient注解使用详解

《SpringCloud中的@FeignClient注解使用详解》在SpringCloud中使用Feign进行服务间的调用时,通常会使用@FeignClient注解来标记Feign客户端接口,这篇文章... 在Spring Cloud中使用Feign进行服务间的调用时,通常会使用@FeignClient注解

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列