solr6使用ansj做中文分词

ansj_seg:ansj分词.ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典 Ansj中文分词 使用帮助 开发文档:, 摘要 这是一个基于n-Gram+CRF+HMM的中文分词的java实现。 分词速度达到每秒钟大约200万字左右(mac air下测试),准确率能达到96%以上。 目前实现了中文分词、中文姓名识别、用户自定义词典、关键字提取、自动摘要、关键字标记等功能。 可以应用到自然语言处理等方面,适用于对分词效果要求高的各种项目。 maven org.ansj ansj_seg 5.1.1 调用demo 如果你第一次下载只想测试测试效果可以调用这个简易接口 立即下载

solr中有自带的中文分词,不过它将中文按一个一个字进行分词,这就导致搜索出的结果让人不满



这里以text_general字段为例,managed-schema中的配置是这样写的:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
    <analyzer type="index">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
  </fieldType>

生成索引和查询使用的都是solr.StandardTokenizerFactory

官方文档有详细介绍:https://cwiki.apache.org/confluence/display/solr/Tokenizers



您配置的文本字段中键入标记生成器中schema.xml有一个<tokenizer>元素,作为一个孩子<analyzer>:

<fieldType name="text" class="solr.TextField">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
  </analyzer>
</fieldType>

class属性命名一个工厂类,在需要时将实例化一个tokenizer对象。令牌工厂类实现org.apache.solr.analysis.TokenizerFactory。TokenizerFactory的create()方法接受Reader并返回一个TokenStream。当Solr创建标记器时,它传递一个提供文本字段内容的Reader对象。


所以这种默认的分词方式对中文来说并不友好,那么如何在solr中使用自己喜欢的分词方式?tokenizer指定的class工厂类就是切入口

常用的中文分词方式:ik ansj jieba

本人对ansj情有独钟,于是去写TokenizerFactory和Tokenizer,网上的教程大多是对solr4进行中文分词,solr4和solr6中的TokenizerFactory

已经发生了变化,factory创建tokenizer时已经不再需要在构造器中添加input参数,而是自动set进去


经过一番尝试还是没有成功,知道在github上搜到  https://github.com/blueshen/solr-ansj

1.对这个maven project进行小改之后就可以使用了



2.将这个project打包成jar,还有项目中使用到的ansj_seg-5.1.2.jar,放入solr WEB-INF lib下面

3.在managed-schema中添加自定义字段text_ansj



tokenkizer中的class属性指定我们所定义的工厂类


在solradmin界面中看到:solr中的分词结果为_text_保存,这里把text_ansj设置成text_ansj

<field name="_text_" type="text_ansj" multiValued="true" indexed="true" stored="false"/>



4.solrconfig.xml中设置新增字段的默认类型为text_ansj


<processor class="solr.AddSchemaFieldsUpdateProcessorFactory">
      <str name="defaultFieldType">text_ansj</str>

设置查询分析字段为text_ansj

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">


    <str name="queryAnalyzerFieldType">text_ansj</str>


5.重启solr,向solr中添加新字段和值,在solradmin中搜索,结果如下:



注意已导入的数据的字段类型设置改为text_ansj











动态知识图谱构建:从本体论到工程实践 知识图谱作为语义网和人工智能领域的核心技术,旨在通过结构化的方式表示和组织知识。其核心原理在于将实体、概念及其关系建模为图结构,从而支持复杂的语义推理和关联查询。这一技术为机器理解数据间的深层联系提供了基础,在智能推荐、企业知识管理和学术研究等领域具有重要价值。通过结合自然语言处理(NLP)和图数据库技术,系统能够从非结构化数据中自动抽取知识,并构建动态演化的认知网络。本文以“本体论章鱼”项目为例,探讨了如何实现从静态本体到动态知识网络的范式转变,并详细解析了其分布式感知、适应性学习的架构设计,为构建灵活可 阅读详情

相关推荐

深入解析CRC-16校验算法及其Verilog硬件实现

本文深入解析了CRC-16校验算法的原理及其在Verilog中的硬件实现方法。从基础的模2除法到串行和并行实现方案,详细介绍了LFSR结构、状态转移分析以及工业应用中的优化技巧。通过实际案例和性能对比,帮助开发者理解如何选择适合的CRC实现方案,确保数据传输的可靠性。

yolo5detector的博客 322

【亲测免费】 推荐强大的分词工具:Ansj_Seg - 深入理解与应用

推荐强大的分词工具:Ansj_Seg - 深入理解与应用 项目简介 是一个由 ansjsun 开发的高性能、高精度的中文分词和命名实体识别库。此项目旨在解决中文信息处理中的基础问题——分词,为自然语言处理(NLP)任务提供坚实的基础。 技术分析 分词算法 Ansj_Seg 使用了基于统计和字典结合的方法进行分词。它包含以下关键技术: HMM( Hidden Markov Model):通过统计词...

gitblog_00024的博客 772

Unity游戏开发实战:用Flow Field实现RTS百人军团流畅寻路(附完整代码)

本文深入探讨了在Unity中利用流场寻路技术解决RTS游戏大规模单位移动性能瓶颈的实战方案。通过解析从Dijkstra算法生成成本场、积分场到最终向量场的核心原理,并结合分块、缓存及与DOTS/ECS架构集成的优化策略,实现了百人军团的流畅群体寻路。文章提供了完整的代码示例,助力开发者构建高性能的RTS寻路系统。

weixin_28363123的博客 587

ansj中文分词器详解

ansj中文分词器详解   最近在做一个人工智能的项目,其中用到了分词功能。从网上找了一些java用于分词的工具,最终选择了ansj中文分词器。个人认为效果和功能是比较优秀的。本文将对ansj的所有功能进行详解并提供收集到的文本,下面开始正文: 一、基本使用   引入如下maven依赖配置: <!-- ansj分词插件依赖 --> <dependency> <...

student_zz的博客 7117

MFC 修改CheckBox的文本颜色方法

设置主题 这一步是必须的,不可省略。 BOOL CMFCApplication1Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // TODO: 在此添加额外的初始化代码 // 设置主题 HWND

Kim的博客 2249

高数 | 【极限与等价无穷小】两个重要极限 & 经典错误 & 什么情况下求极限可以直接带入

一. 第一个重要极限 二. 第二个重要极限 三. 导数定义式 全文见【高等数学】两个重要的极限 - 知乎

"You are worthy! You can do it!" 6万+

ansj_seg中文分词实例

首先介绍一下这个开源分词软件 以下摘自原作者的话: Ansj中文分词是一款纯Java的、主要应用于自然语言处理的、高精度的中文分词工具,目标是“准确、高效、自由地进行中文分词”,可用于人名识别、地名识别、组织机构名识别、多级词性标注、关键词提取、指纹提取等领域,支持行业词典、用户自定义词典。 中文分词实例 (1)导入maven

小飞侠的博客 2652

手把手教你用QEMU模拟AST2600-EVB开发板:OpenBMC环境搭建全流程

本文提供了一份详尽的实战指南,手把手教你使用QEMU模拟器搭建AST2600-EVB开发板的OpenBMC环境。内容涵盖从工具链准备、系统镜像获取(官方与自编译),到QEMU启动命令解析、网络配置(用户与桥接模式),以及通过SSH、WebUI和Redfish API访问服务的全流程,帮助开发者在个人电脑上快速构建安全、可复现的嵌入式开发与测试沙盒。

play7的博客 1132

推荐开源项目:AnsJ Seg - 高效中文分词库

推荐开源项目:AnsJ Seg - 高效中文分词库 ansj_segansj分词.ict的真正java实现.分词效果速度都超过开源版的ict. 中文分词,人名识别,词性标注,用户自定义词典项目地址:https://gitcode.com/gh_mirrors/an/ansj_seg 项目简介 是一个由NLPChina开发并维护的高效中文分词库。它旨在提供快速、准确的中文文本分词服务,为自然语言处...

gitblog_00039的博客 644

C#面试题及详细答案120道(61-75)-- 多线程与异步

本文摘要了前后端面试题中关于线程与并发的核心知识点,包括线程与进程的区别(61题)、Thread/ThreadPool/Task的对比(62题)、线程安全实现方法(63题)、lock关键字的原理(64题)、Monitor类的进阶用法(65题)以及死锁的成因与避免(66题)。通过C#代码示例和表格对比,清晰展示了多线程编程的关键概念、应用场景及常见问题解决方案,适合开发者快速掌握面试高频考点。完整内容可访问专栏目录获取更多技术面试题解析。

大剑师兰特的GIS世界 1430

基于 Qt 的轻量化工业组态软件设计与实现

本文设计并实现了一种基于Qt框架的轻量化工业组态软件,解决了传统组态软件体积庞大、部署复杂等问题。该软件采用模块化架构,集成可视化图形编辑、设备数据采集、脚本扩展等核心功能,具有跨平台运行、资源占用低、启动速度快等特点。通过关键技术优化,实现了高效稳定的数据采集、脚本控制和网络通信,可广泛应用于工业机器人HMI、小型PLC监控等轻量化场景。测试结果表明,该软件体积约30MB,运行内存占用60-80MB,启动时间1.2秒,满足工业轻量化监控需求。未来可扩展更多工业组件和协议支持,进一步提升应用价值。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 140

【亲测免费】 Ansj_Seg 中文分词工具使用教程

Ansj_Seg 中文分词工具使用教程 项目介绍 Ansj_Seg 是一个基于 Java 实现的中文分词工具,它不仅提供了基本的分词功能,还支持用户自定义分词逻辑,具有很高的灵活性和适应性。该工具可以广泛应用于各种中文文本处理场景,如搜索引擎、聊天机器人、情感分析等。Ansj_Seg 的分词效果和速度都超过了开源版的 ICT,支持人名识别、词性标注和用户自定义词典等功能。 项目快速启动 环境准备 ...

gitblog_00170的博客 758

【原创】关于西门子S120 的电气图纸设计

我们首先要了解一下模块的基本信息:SINAMICS 功率模块 PM240-2 三相交流380-480V+10/-10% 47-63Hz;至此,我们选择的驱动系统配置的资料都已经查找完毕,接下来就是根据每个部件的功能接口和我们需要实现的功能画出接线连接图,这样关于伺服电机控制,硬件部分设计就完成了。2)FSA - FSC 型功率模块 PM240-2 的屏蔽连接板外形尺寸图,所有数据以毫米(英寸)为单位。1)FSA 型功率模块 PM240-2 的外形尺寸图,所有数据以毫米(英寸)为单位。

Qinmingyue13的博客 2640

Solr 6.6.0 中文分词 (二)

Solr的源代码中并不支持中文分词,同时,网上官网下载的不知道为什么不能用,发现一个大牛分享的,可以按照配置来安装。 下载地址在我的资源列表里面。  解压后包里有这么几个文件:IKAnalyzer.cfg,ik-analyzer-solr5-5.x,mydict,stopword.dic。 把ik-analyzer-solr5-5.x.jar放到solr-6.6.0\server\solr-

Json_Nie的专栏 971

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Solr】第二步:配置ANSJ中文分词器

一、下载ANSJ的jar包 链接:https://pan.baidu.com/s/16uvyRWw5YqYzeWH43ndViw 密码:ik48 二、 ① 将下载下来的jar包放到tomcat下solr项目的lib包内 注:ANSJTokenizerFactory_web4.0.jar这个jar包是自己压缩的 ② 将stop.dic 放到..solr-home\configsets\...

ab102a的博客 587

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Solr4.10和ANSJ 中文分词集成

1. 具体代码 1.1ANSJTokenizerFactory 工厂类 packageorg.ansj.solr; importorg.apache.lucene.analysis.util.TokenizerFactory; importorg.apache.lucene.u...

chouxiaoru3968的博客 212

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

solr安装ansj_seg分词

1.下载nlp_lang,下载地址:http://maven.ansj.org/org/nlpcn/nlp-lang/0.3/,得到jar包nlp-lang-0.3.jar 2.下载ansj-seg,http://maven.ansj.org/org/ansj/ansj_seg/ 也可以下载源码自己编译,源码下载地址:https://github.com/NLPchina/ansj_s

一切依旧的专栏 3846

配置Solr中文分词器IK以及ansj,支持动态修改用户词库。

经常看到不少人问solr的IK分词如何配置,如何实现中文动态词库添加这类问题,中文分词看来还是solr使用的一个容易卡住的地方。其实solr自带中文分词smartcn,它是个ictclas智能分词的java版。如果想体验一下smartcn的效果是比较简单的,配上对应的tokenizerFactory就可以了,但smartcn不支持动态增加词库。 我们都知道一般词库都是单例,想动态修改词库要么保证

lgnlgn的专栏 9101

编译Ansj之Solr插件

Ansj是一个比较优秀的中文分词组件,具体情况就不在本文介绍了。ansj作者在其官方代码中,提供了对lucene接口的支持。如果用在Solr下,还需要简单的扩展一下。 1、基于maven管理    ansj是基于maven进行开发管理的。我们首先修改一下其pom.xml,具体如下所示:<project xmlns="http://maven.apache.org/POM/4.0.0"

k21325的博客 740

Solr与开源中文分词(ansj)整合

1. ansj分词源码及jar包下载地址 源码: https://github.com/NLPchina/ansj_seg jar包: http://maven.nlpcn.org/org/ansj/ http://maven.nlpcn.org/org/nlpcn/nlp-lang 2. 在solr使用ansj分词 (1) ansj的solr扩展及编译 ansj支

lzx1104的专栏 1723

中文分词器性能比较

原文: http://www.cnblogs.com/wgp13x/p/3748764.html 摘要:本篇是本人在Solr的基础上,配置了中文分词器,并对其进行的性能测试总结,具体包括 使用mmseg4j、IKAnalyzer、Ansj,分别从创建索引效果、创建索引性能、数据搜索效率等方面进行衡量。   具体的Solr使用方法假设读者已有了基础,关于So

1万+

SolrCloud-5.5.1配置中文分词ansj-3.4.6

今天分享一下这两天倒持的给solr5.5.1配置中文分词的一些事项,本人刚刚开始研究SolrCloud,比照网上的教程与自己亲身试验的总结一下,通过这两天的折腾觉得找对匹配的版本是顶顶重要的一件事。 首先按照网上的教程来: 第一步,下载ansj的最新源码以及jar包,最新的是ansj-5.0.4-all-in-one.jar 第二步,plugin下重新编译ansj_lucen

owenbkq的专栏 789

Solr整合Ansj中文分词器

Solr整合Ansj中文分词器

张无忌_蜘蛛侠的博客 877

在Solr中配置和使用ansj分词

在Solr中配置和使用ansj分词

张无忌_蜘蛛侠的博客 884

为solr添加ansj分词器

从https://github.com/lgnlgn/ansj4solr下载ansj4solr源码包在asnj4solr-master目录下执行mvn compile编译源码,执行mvn package 生成target/ansj4solr-1.0.0-SNAPSHOT.jar在schema.xml中配置tokenizerfactory <fieldType name=...

weixin_34301307的博客 114

跟益达学Solr5之使用Ansj分词器

来源:http://www.tools138.com/create/article/20150620/020015483.html 在这要多谢益达哥给予大家的分享:         OK,直接开门见山,不绕弯子啦!基于上篇博客,我们知道了在Solr中配置分词器有两种方式,一种是直接配置分词器类,比如:  一种是配置Tokeniz

aosica321的专栏 1772
上一篇: springboot中使用swagger2管理测试api
下一篇: 使用G2做出丰富多彩的词云
programmeryu
博客等级 码龄11年 23粉丝 67原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值