zoukankan      html  css  js  c++  java
  • Lucene分词初探LetterTokenizer

    关于分词就不多介绍了,园子里很多这样的文章.birdshover就写了一些关于分词的文章.在这里我主要深入Lucene分词工具的内部算法,希望能与大家一起交流.

    Lucene与分词有关的类的结构图如下:


    (图片引自:http://www.cnblogs.com/birdshover/archive/2008/08/28/1279044.html)
    在本节主要讨论LetterTokenizer和CharTokenizer,实际上算法的实现是在CharTokenizer中的next()中实现的.

    首先为了有个感性的认识,来看一个LetterTokenizer的例子:


    Code

     输出结果如下:

    达梦数据库

    DM

    Database

    LetterTokenizer中的next()方法继承自CharTokenizer.

    下面将对CharTokenizer的next()方法进行详细解剖:

    Code

    根据程序中的注释很容易就会明白该算法的大体思想:

    遍历输入字符串,根据特殊符号将输入字符串分成一个个单词,然后封装成Token返回,时间复杂度为O(n).

  • 相关阅读:
    EIGRP-16-其他和高级的EIGRP特性-2-非等价负载分担
    EIGRP-15-其他和高级的EIGRP特性-1-路由器ID
    EIGRP-14-EIGRP的命名模式
    EIGRP-13-弥散更新算法-停滞在活动状态
    EIGRP-12-弥散更新算法-DUAL的FSM(*没写完)
    EIGRP-11-弥散更新算法-EIGRP中的本地计算和弥散计算
    EIGRP-10-弥散更新算法-计算距离,报告距离,可行距离和可行性条件
    EIGRP-9-弥散更新算法-拓扑表
    EIGRP-8-路由器的邻接关系
    EIGRP-7-可靠传输协议
  • 原文地址:https://www.cnblogs.com/hustcat/p/1318973.html
Copyright © 2011-2022 走看看