lucene分词(一)

作者: 愚公300代 | 来源:发表于2017-08-09 20:38 被阅读27次

词汇单元流

lucene的分词过程,是从Reader中获取原始字符流,产生语汇单元流TokenStream的过程。当分析器获取tokenStream对象以后,它就开始用一个tokenizer对象创建初始语汇单元序列,然后再链接任意数量的tokenFilter对象来修改原始语汇单元。整个分析过程称为分析器链(analyzer chain)。如下图具有2个tokenFilter的分析器链:


分析链

TokenStream

分词后产生语汇单元流,流中存储了分词的各种信息,可通过TokenStream有效获取分词单元。

Tokenizer

负责接收Reader对象的字符,创建原始语汇单元——分词。

TokenFilter

负责处理输入的语汇单元,通过新增、删除或修改属性的方式产生新的语汇单元。

词汇单元基本术语

语汇单元

分词过程中产生的基本单元,携带文本值(单词本身)和一些元数据:文本值偏移量、位置增量、词汇单元类型。语汇单元可以选择性包含一些由程序定义的标志位和任意字节数的有效负载,这样程序就能根据具体需要来处理这些词汇单元。

偏移量

偏移量包括起点偏移量和终点偏移量;起点偏移量指词汇单元文本起始字符在原始文本中的位置,终点偏移量指词汇单元文本终止字符的下一个位置。

位置增量

位置增量将当前词汇单元和前一个词汇单元在位置上关联起来。位置增量会影响短语查询和跨度查询,这些查询都需要用到位置信息。

  1. posIncr = 1, 表示当前词汇单元和前一词汇单元连续,如果所有词汇单元的posIncr都是1,则流中各个文本值存在于唯一确定且连续的位置上。
  2. posIncr > 1, 表示当前词汇单元和前一词汇单元之间有空隙,可能是移除停用词后产生
  3. posIncr = 0, 表示当前词汇单元和前一词汇单元处在相同的位置上。词汇单元在同一位置可用于表示某种关系,例如同义词关系。

词汇单元类型

用String对象表示词汇单元类型,默认值是“word”,如果需要可以在词汇单元过滤过程中控制和利用类型属性。

有效负载

每个词汇单元可以有多个选择标志;lucene内置分词器不会使用这些标志,但你自己设计的程序可以使用它们。此外,每个词汇单元都能以byte[]数组形式记录在索引中,用以指向有效负载。

下面是使用StandardAnalyzer分词的一个具体例子,原始文本内容为text:

text = "Bad times make a good man"

分词结果如下图:

分词实例

位置增量部分,make和good之间的位置增量是2,是因为原句子中的"a"被作为停用词删除掉了。

参考

Lucene实战(第2版)

相关文章

  • lucene分词(一)

    词汇单元流 lucene的分词过程,是从Reader中获取原始字符流,产生语汇单元流TokenStream的过程。...

  • Lucene分词

    1. 概念 所有传递给Lucene进行索引的文本都需要经历一个过程----分词,即:将文本分割为一个个的足够小的...

  • lucene分词

    比较不同分词器的分词结果: CJKAnalyzer二元覆盖的方式分词 结果: SmartChineseAnalyz...

  • Lucene中文分词

    中文分词算法现在一般分为三类:基于字符串匹配,基于理解,基于统计的分词。 基于字符串匹配分词:机械分词算法,这里我...

  • lucene中文分词

    IK中文分词 DoubleArrayTrie的AC自动机

  • Lucene总结

    1 Lucene基础2 Lucene建索引和搜索3 域选项4 各种Query5 Lucene分词器6 近实时索引7...

  • Linux下ElasticSearch及IK分词插件安装

    ElasticSearch及IK分词插件相关安装 一. 简介 ElasticSearch是一个基于Lucene的搜...

  • Lucene介绍、分词详解

    Lucene介绍 1、Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引...

  • IKAnalyzer集成

    IKAnalyzer 开源、轻量级的中文分词器,应用广 最想是作为lucene上使用而开发,后来发展为独立的分词组...

  • 03_Lucene学习笔记

    1. Lucene入门程序 2. Field 域 2.1 Field属性 是否分词(tokenized)是,将fi...

网友评论

    本文标题:lucene分词(一)

    本文链接:https://www.haomeiwen.com/subject/yhnqrxtx.html