`

HanLP中文分词Lucene插件

阅读更多

 

 

基于HanLP,支持包括Solr(7.x)在内的任何基于Lucene(7.x)的系统。



 

Maven

    <dependency>

      <groupId>com.hankcs.nlp</groupId>

      <artifactId>hanlp-lucene-plugin</artifactId>

      <version>1.1.6</version>

    </dependency>

Solr快速上手

1.hanlp-portable.jar和hanlp-lucene-plugin.jar共两个jar放入${webapp}/WEB-INF/lib下。(或者使用mvn package对源码打包,拷贝target/hanlp-lucene-plugin-x.x.x.jar到${webapp}/WEB-INF/lib下)

2. 修改solr core的配置文件${core}/conf/schema.xml:

  <fieldType name="text_cn" class="solr.TextField">

      <analyzer type="index">

          <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="true"/>

      </analyzer>

      <analyzer type="query">

          <!-- 切记不要在query中开启index模式 -->

          <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="false"/>

      </analyzer>

  </fieldType>

  <!-- 业务系统中需要分词的字段都需要指定type为text_cn -->

  <field name="my_field1" type="text_cn" indexed="true" stored="true"/>

  <field name="my_field2" type="text_cn" indexed="true" stored="true"/>

· 如果你的业务系统中有其他字段,比如location,summary之类,也需要一一指定其type="text_cn"。切记,否则这些字段仍旧是solr默认分词器。

· 另外,切记不要在query中开启indexMode,否则会影响PhaseQuery。indexMode只需在index中开启一遍即可。

高级配置

目前本插件支持如下基于schema.xml的配置:



 

 

 

更高级的配置主要通过class path下的hanlp.properties进行配置,请阅读HanLP自然语言处理包文档以了解更多相关配置,如:

 

0.用户词典

1.词性标注

2.简繁转换

3.……

停用词与同义词

 

推荐利用Lucene或Solr自带的filter实现,本插件不会越俎代庖。 一个示例配置如下:



 

 

 

调用方法

Query改写的时候,可以利用HanLPAnalyzer分词结果中的词性等属性,如

 

String text = "zhong hua ren min gong he guo很辽阔";

for (int i = 0; i < text.length(); ++i)

{

    System.out.print(text.charAt(i) + "" + i + " ");

}

System.out.println();

Analyzer analyzer = new HanLPAnalyzer();

TokenStream tokenStream = analyzer.tokenStream("field", text);

tokenStream.reset();

while (tokenStream.incrementToken())

{

    CharTermAttribute attribute = tokenStream.getAttribute(CharTermAttribute.class);

    // 偏移量

    OffsetAttribute offsetAtt = tokenStream.getAttribute(OffsetAttribute.class);

    // 距离

    PositionIncrementAttribute positionAttr = tokenStream.getAttribute(PositionIncrementAttribute.class);

    // 词性

    TypeAttribute typeAttr = tokenStream.getAttribute(TypeAttribute.class);

    System.out.printf("[%d:%d %d] %s/%s\n", offsetAtt.startOffset(), offsetAtt.endOffset(), positionAttr.getPositionIncrement(), attribute, typeAttr.type());

}

在另一些场景,支持以自定义的分词器(比如开启了命名实体识别的分词器、繁体中文分词器、CRF分词器等)构造HanLPTokenizer,比如:

 

tokenizer = new HanLPTokenizer(HanLP.newSegment()

                                    .enableJapaneseNameRecognize(true)

                                    .enableIndexMode(true), null, false);

tokenizer.setReader(new StringReader("林志玲亮相网友:确定不是波多野结衣?"));

文章摘自:2019 github

 

 

 

  • 大小: 2.3 MB
  • 大小: 123.5 KB
  • 大小: 102.6 KB
分享到:
评论

相关推荐

    hanlp-lucene-plugin, HanLP中文分词Lucene插件,支持包括Solr在内的基于Lucene的系统.zip

    汉纳拼音Lucene插件(hanlp-lucene-plugin)是一个专为中文处理设计的扩展工具,它将著名的HanLP中文分词库与流行的全文检索框架Lucene进行了集成,旨在提升在Lucene及其衍生产品(如Solr)中的中文处理能力。...

    hanlp-lucene-plugin:HanLP中文分词Lucene插件,支持包括Solr内置的基于Lucene的系统

    hanlp-lucene-pluginHanLP中文分词Lucene插件基于HanLP,支持包括Solr(7.x)在内的任何基于Lucene(7.x)的系统。Maven &lt; dependency&gt; &lt; groupId&gt;...

    基于hanlp的elasticsearch分词插件

    总的来说,"基于hanlp的elasticsearch分词插件"是提升Elasticsearch处理中文文本能力的有效解决方案,它结合了HanLP的强大功能,使得在Java开发环境中,可以更方便地进行中文全文检索和分析。对于需要处理大量中文...

    elasticsearch的hanlp中文插件

    为了更好地支持中文处理,社区开发了各种中文分词插件,其中HanLP(全称:High-performance Natural Language Processing)是来自科大讯飞的一款高性能的自然语言处理工具包,它在中文分词、词性标注、命名实体识别...

    elasticsearch-analysis-hanlp-8.15.0

    elasticsearch-analysis-hanlp-8.15.0是一款专门针对Elasticsearch 8.15.0版本的中文分词插件,它是由作者精心打包并集成HanLP中文处理库的成果。HanLP是一个高效的自然语言处理工具库,它能够对中文文本进行深度...

    开发ElasticSearch的HanLP中文插件含截图

    ### 开发ElasticSearch的HanLP中文插件 #### 一、概述 ElasticSearch作为一款流行的搜索引擎,因其高效的数据处理能力,在大数据时代受到了广泛的关注与应用。然而,对于中文内容的支持,ElasticSearch默认提供的...

    elasticsearch-analysis-hanlp-8.17.0.zip

    该插件使得Elasticsearch能够直接使用HanLP分词器对中文文本进行处理,极大地丰富了Elasticsearch在中文文本分析和搜索方面的能力。 具体来说,通过安装elasticsearch-analysis-hanlp插件,Elasticsearch用户可以...

    je-analysis-1.5.3、lucene-core-2.4.1分词组件

    在2.4.1这个版本中,Lucene已经包含了对中文分词的支持,可以与各种分词器如jieba、IK、HanLP等配合使用,实现更精准的中文搜索。Je-Analysis可以作为Lucene的分词插件,提供对中文文本的预处理服务,使得Lucene能更...

    elasticsearch-analysis-hanlp-8.17.3.zip

    elasticsearch-analysis-hanlp-8.17.3.zip插件为Elasticsearch带来了强大的中文分词能力,为中文内容的索引和搜索提供了优化,扩展了Elasticsearch在多语言信息处理方面的能力,使得在中文文本处理方面的工作更加...

    elasticsearch-analysis-hanlp-8.16.2

    HanLP分词器插件是专门为Elasticsearch设计的,它利用HanLP进行中文分词、词性标注、命名实体识别等自然语言处理任务。安装了HanLP插件之后,Elasticsearch就能更好地理解和分析中文数据,使得中文搜索更为准确和...

    elasticsearch-analysis-hanlp-8.15.3

    HanLP分析器是一个基于HanLP的中文分词插件,它使得Elasticsearch能够更好地处理中文文本。HanLP是一款优秀的中文自然语言处理工具,它提供了丰富的功能,如分词、词性标注、命名实体识别、依存句法分析等。HanLP...

    elasticsearch-analysis-hanlp-8.17.2.zip

    这个插件是专门针对中文分词所开发的,它将HanLP分词算法集成到Elasticsearch中,提供中文文本的深度处理能力。HanLP是一种高效的自然语言处理工具包,对中文文本的分词、词性标注、命名实体识别等方面都表现出了极...

    solr中文分词器

    2. HanLP:由百度开源的自然语言处理工具包,提供了强大的中文分词、词性标注等功能,准确度较高,尤其适合复杂语境下的分词。 3. SmartChinese Analyzer:专为Solr和Lucene设计的中文分词器,支持停用词、自定义...

    Solr5.4中文分词

    这通常涉及到安装和配置一个支持中文的分词库,例如IK Analyzer、HanLP、jieba分词等。这些分词库能够将连续的中文字符序列切分成具有语义意义的词汇,以便进行索引和搜索。 描述中提到,我们需要将分词库解压并...

    各类分词器合集!!!!!

    5. **IK Analyzer**:IK Analyzer是一个开源的、基于Java的中文分词组件,最初设计用于Lucene/Solr的中文分词,后来发展为独立的分词系统,支持自定义词典和扩展插件。 6. **Thulac**:由清华大学自然语言处理实验...

    IK Analyzer中文分词器

    中文分词是将连续的汉字序列切分成具有实际语义的词语单元。IK Analyzer采用基于词典和正向最大匹配(Forward Maximum Matching, FMM)以及逆向最大匹配(Backward Maximum Matching, BMM)的混合策略。这种策略结合...

    elasticsearch-analysis-hanlp:用于Elasticsearch的HanLP分析器

    适配Elasticsearch 7.5.1~7.10.2版本,更新HanLP版本至1.7.8,更新日志这次就不在每个release上加了,直接看README(7.5.1重新打包订正)(陆续上传中)修改分词流程,完全采用hankcs提供的hanlp-lucene-plugin进行,...

    elasticsearch-analysis-hanlp-8.17.1.zip

    HanLP是一个专门用于中文自然语言处理的工具包,提供了分词、词性标注、命名实体识别、依存句法分析等多种功能。HanLP可以在多种环境中运行,包括但不限于Java、Python和C#。它的特点是轻量级、高性能,能够处理多样...

    Lucene.net

    7. **多语言支持**:除了英文,Lucene.NET 还支持其他多种语言,包括中文,有对应的分词器插件可供使用,如IK Analyzer、HanLP、jieba分词等。 8. **分布式搜索**:通过 Solr 或 Elasticsearch(它们都是基于 ...

    elasticsearch-analysis-stconvert-8.15.3

    针对不同语言的数据处理需求,社区开发了许多类似的插件,如elasticsearch-analysis-ik为Elasticsearch提供了中文分词支持,elasticsearch-analysis-hanlp则提供了基于HanLP分词算法的中文分词功能。这些插件的出现...

Global site tag (gtag.js) - Google Analytics