lucene6+hanlp中文分词

初开之道 初开之道     2022-08-13     594

关键词:

1.前言

前一阵把博客换了个模版,模版提供了一个搜索按钮,这让我想起一直以来都想折腾的全文搜索技术,于是就用lucene6.2.1加上HanLP的分词插件做了这么一个模块CSearch。
效果看这里:https://chulung.com/search
源码:CSearch

2.关于分词

索引的一个核心功能便是分词,lucene自带的分词是基于英语的,所以中文分词用其他插件比较好。

网上很多都是推荐IK-Analyzer,不过这个插件很久没更新了,用lucene6的话重构才能用:IK-Analyzer-6,这个是我重构的版本。
但在查阅分词的方面的资料的时候无意中发现了HanLP(Han Language Processing),这个汉语言处理包比较新,提供了lucene的分词插件,资料什么的也更详细,所以我就更换过来了。

3.代码中的一些坑

在敲代码时还是遇到了一些比较坑的问题,由于网上基本没有lucene6的中文教程,老的lucene3,4那时的教程很多兼容不上了。

  • 实时查询的DirectoryReader获取
    使用IndexWriter新增索引后存在搜索不到的问题,这是因为在getReader时要使用openIfChanged方法,才能保证做到更新后实时查询。
private DirectoryReader getReader() throws Exception {
    if (reader==null){
        this.reader=DirectoryReader.open(fsDirectory);
    }
    //有更新则重新打开,读入新增加的增量索引内容,满足实时查询需求
    DirectoryReader newReader = DirectoryReader.openIfChanged((DirectoryReader)reader,  getIndexWriter(), false);
    if (newReader != null) {
        reader.close();
        reader = newReader;
    }
    return reader;
}
  • 高亮插件结果错位问题
    文档中的 字符会导致高亮结果错1位,比如高亮”插件”会变成高”亮插”件,因此需要replace空白字符。
String context = doc.get(CONTEXT).replaceAll("\s*", "");
String highContext = highlighter.getBestFragment(analyzer, CONTEXT, context);

作者:chulung

原文链接:https://chulung.com/article/53

本文由MetaCLBlog于2016-11-21 01:00:04自动同步至cnblogs

false

spark集群环境下使用hanlp进行中文分词

1、将下载的hanlp-portable-1.6.2.jar复制到集群spark/jar文件夹下面2、启动spark集群      spark/bin/spark-shell--executor-memory6g --driver-memory1g--executor-cores2--num-executors2--master 查看详情

elasticsearch中文分词器对比

...们的分词准确性从高到低依次是:结合准确性来看,选用中文分词器基于以下考虑:截止目前,IK分词器插件的优势是支持自定义热更新远程词典。IK分词器的github地址:hanlp中文分词器的官网为:hanlp中文分词器的github地址为: 查看详情

结巴分词和自然语言处理hanlp处理手记

...:1 结巴分词和自然语言处理HanLP处理手记2 Python中文语料批量预处理手记3 自然语言处理手记4 Python中调用自然语言处理工具HanLP手记5 Python中结巴分词使用手记代码封装类:#!/usr/bin/envpython#-*-coding:utf-8-*-importjie... 查看详情

nlp文本处理的基本方法(超详解)(代码片段)

...处理的基本方法1.分词1.1什么是分词1.2分词的作用1.3流行中文分词工具jieba1.3.1jieba的特性1.3.2jieba的安装1.3.3jieba的使用1.4流行中英文分词工具hanlp1.4.1hanlp的安装1.4.2hanlp的使用2.命名实体识别2.1简介2.2作用2.3使用3.词性标注3.1简介3.2... 查看详情

elasticsearch安装以及配置hanlp中文分词插件

参考技术Aelasticsearch默认开启两个端口:9200,用于ES节点和外部通讯;9300,用于ES节点之间通讯报错:org.elasticsearch.bootstrap.StartupException:java.lang.RuntimeException:cannotrunelasticsearchasroot,不能以root用户的身份运行elasticsearch解决方法:... 查看详情

hanlp只能分析中文吗

参考技术Ahanlp不是只能分析中文HanLP采用全世界量级最大,种类最多的语料库,达到史上最高准确率,旨在普及落地最前沿的NLP技术!通过自然语言处理技术,分析文本中的分词,准确理解文字含义及指令意图,并根据相关意图... 查看详情

hanlp自然语言处理使用总结(代码片段)

...://github.com/hankcs/HanLP/tree/1.x目前HanLP提供了下面功能:中文分词HMM-Bigram(速度与精度最佳平衡;一百兆内存)最短路分词、N-最短路分词由字构词(侧重精度,全世界最大语料库,可识别新词;适合N... 查看详情

elasticsearch启动时加载analyzer源码分析(代码片段)

...ory。另外还参考了一个具体的基于ElasticSearch采用HanLP进行中文分词的插件:elasticsearch-analysis-hanlp这篇文章的主要目的是搞懂:AnalysisModule、AnalysisPlugin、AnalyzerProvider、某个具体的Tokenizer,比如HanLPStandardAnalyzer、和TokenizerFactory之... 查看详情

nlp开发python实现中文英文分词(代码片段)

...方便后续的处理分析工作。<fontcolor=blue><b>(1)中文分词⼯具</b></font>Hanlp:https://github.com/hankcs/HanLPStanford分词:https://github.com/ 查看详情

hanlp中人名识别分析(代码片段)

...客:词性标注层叠HMM-Viterbi角色标注模型下的机构名识别分词在HMM与分词、词性标注、命名实体识别中说:分词:给定一个字的序列,找出最可能的标签序列(断句符号:[词尾]或[非词尾]构成的序列)。结巴分词 查看详情

hanlp用户自定义词典源码分析(代码片段)

...典问题Issue,首先参考:FAQ自定义词典其实是基于规则的分词,它的用法参考这个issue如果有些数量词、字母词需要分词,可参考:P2P和C2C这种词没有分出来,希望加到主词库关于词性标注:可参考词性标注?2.源码解析分析com.hankcs... 查看详情

elasticsearch安装hanlp插件

1.HanLP分词器插件下载地址https://github.com/pengcong90/elasticsearch-analysis-hanlp/releases下载analysis-hanlp.zip2.解压到ElasticSearch下plugins目录下3.配置修改analysis-hanlp目录下的hanlp.properties文件,修改root的属性,值为analysis-hanlp下的data目录的地... 查看详情

浅谈中文分词与自然语言处理

参考技术A最近出于兴趣和需要,重新回顾中文分词技术,期间有些心得,以及一些关于自然语言处理的浅薄之见,这里简单分享一下。首先,中文分词_百度百科里面简单介绍了其中主要的分词算法以及相应的优缺点,包括字符... 查看详情

目前常用的自然语言处理开源项目/开发包都有哪些?

中文主要有:NLTK,HanLP,Ansj,THULAC,结巴分词,FNLP,哈工大LTP,中科院ICTCLAS分词,GATE,SnowNLP,东北大学NiuTrans,NLPIR;英文主要有:NLTK,Genism,TextBlob,StanfordNLP,Spacy。英文的开源NLP工具主要参见StackoverFlow-javaorpythonfornlp。Han... 查看详情

数据挖掘:基于spark+hanlp实现影视评论关键词抽取(代码片段)

...大,因此采用Spark处理框架。关键词提取的处理主要包含分词+算法抽取两部分。目前分词工具包较为主流的,包括哈工大的LTP以及HanLP,而关键词的抽取算法较多,包括TF-IDF、TextRank、互信息等。本次任务主要基于LTP、HanLP、Ac双... 查看详情

大数据产业发展创新技术新书《数据之翼》收录自然语言处理工具hanlp

...大快搜索高级研究员)一定没想到,机缘巧合研发的一款中文分词器,在随后几年中几经迭代,并在商用市场大放异彩。而看似是“无心插柳柳成荫”的事情,却凝聚着何晗对Hanlp工匠式的锤炼。Hanlp是由一系列模型与算法组成... 查看详情

自然语言分析工具hanlp依存文法分析python使用总结(附带依存关系英文简写的中文解释)(代码片段)

最近在做一个应用依存文法分析来提取文本中各种关系的词语的任务。例如:text=‘新中国在马克思的思想和恩格斯的理论阔步向前’:ps:这里马克思和恩格斯原来我是用的毛zd和邓xp,但是系统说这两个名字违规了。。。。。... 查看详情

nlp实验计划

...P等NLP工具程序1:输出“Hello,World”程序2:做简单中文分词程序。输入任意语句,输出分词结果。 2.文本可视化:词云、关系图、热力图等制作词云,进一步了解分词和词频。https://blog.csdn.net/liujian197905187511/artic 查看详情