`
billgmh
  • 浏览: 65475 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

引入局部统计识别高频词汇的Lucene中文分词程序

阅读更多

基于词典的最大匹配的Lucene中文分词程序基础上引入了局部统计识别新词的功能,目前实现的方法有两种:

1
、基于后缀数组的局部统计识别高频词汇               BasedSuffixArrayStringFetcher
2
、基于单字共现频率的局部统计高频词汇       HighFrequenceStringFetcher

问题1:什么是后缀数组
解答:

后缀数组是由作为一种文本索引结构提出的, 这种结构记录了一字符串中各后缀的字典序索引.通过对字符串的编码, 可以用后缀数组进行字符串集序列的处理. 近年来, 在基因匹配、文本处理等领域中, 后缀数组倍受关注. Manber Myers]给出了一个利用O( N) 的额外空间, O ( N lg N) 时间内同时构造出后缀数组及最长公共前缀信息数组LCP 的算法

S [1. . n ]为一有序字符集Σ上的字符串, | S| = n , | S| 表示S 的长度. S [ i ]表示S 中位置i 上的字符. S [ i . . n ]S 的第i 个后缀, 简记为Si . 对应字符串S 的后缀数组SA 为一整型数组, 其中按照S 的各个后缀的字典序存放其下标索引. : S = xabxac , 则其各后缀按字典序列排列为: S2 , S5 ,S3 , S6 , S1 , S4 . 其中S2 = abxac ; S5 = ac ; S3 = bxac ; S6 = c ; S1 = xabxac ; S4 = xac. 对应的后缀数组SA {2 ,5 ,3 ,6 ,4 ,1} , SA[ i ]为后缀数组SA 中第i 个索引所对应的S 的后缀, 简记为SAi , SA1 = S2 .S [1. . i ]S 的第i 个前缀. 两个字符串v w 存在最长公共前缀, LCP( v , w) 为字符串v w 最长前缀的长度. 则数组LCP [ 1. . n ] 存放后缀数组相邻两后缀的最长前缀长度, LCP [ i ] =LCP( SAi - 1 , SAi) .

问题2:单字共现频率的局部统计的原理
解答:

高频字串统计的理论基础是N - 元模型。
W1 W2 WN 是长度为N 的字串,则字串W 的似然度为
p ( W) = p ( w i | w1 w2
w i - 1) (1)
上面公式的意义反映连续个N 字之间的结合程度,如果若干种不同的历史组合W1 W2 WN的最后N - 1 个字相同,就把它们都看作一类。在这一假设下,每一个字出现的概率不再与前面的历史有关,只与最近的N - 1 个字相关,字串的先验概率为
p ( W) = p ( w i - ( n - 1) w i - ( n - 2)
w i - 1) (2)
p ( W) 超过一定的阈值时,说明这N 个字的结合能力较强,我们就可以认为该字串能被看成一个

正是根据以上所说原理,预先对待分词文本每个单字进行出现次数统计并记录它们在文中出现的位置(存储方式如附件图例所示),预处理后我们遍历单字频次统计 列表出现次数大于2的所有单字在文中出现的位置i,判断位置i+1的单字出现次数是否也大于2,若是则判断位置i+2的单字出现次数是否也大于2,如此类 推直至位置i+n+1的单字出现次数小于2,获得候选词组 w(i,i+1...i+n)并放入候选词汇集合,最后对候选词汇集合进行前缀后缀处理获得合适的高频词汇集合result

  • src.rar (31.7 KB)
  • 描述: 源代码
  • 下载次数: 329
  • 描述: 单字频次位置保存格式
  • 大小: 14.5 KB
分享到:
评论
2 楼 billgmh 2007-04-03  
simpleuu 写道
  人名识别都写埋出来啦,心急啊....
暂时还没有,只是识别文中出现频率高的词汇:例如小说里面的主人公、门派、动作行为等
1 楼 simpleuu 2007-04-03  
  人名识别都写埋出来啦,心急啊....

相关推荐

    引入局部统计识别高频词汇的Lucene中文分词程序STUSegmentConfig.rar

    标题中的“引入局部统计识别高频词汇的Lucene中文分词程序STUSegmentConfig.rar”表明这是一个基于Lucene的中文分词工具,它利用了局部统计信息来识别和处理中文文本中的高频词汇。Lucene是一个开源全文检索库,广泛...

    引入局部统计识别高频词汇的Lucene中文分词程序src.rar

    标题中的“引入局部统计识别高频词汇的Lucene中文分词程序src.rar”表明这是一个关于使用Lucene进行中文分词的源代码项目,其中融入了局部统计的方法来识别和处理高频词汇。Lucene是一个流行的全文检索库,广泛应用...

    Lucene中文分词器包

    来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器。 1. 正向全切分算法,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I 1.6G 1G内存 WinXP) 2. 对数量词、地名、路名的...

    Lucene中文分词器组件

    为了在Lucene中处理中文文本,我们需要引入专门的中文分词器组件。本文将深入探讨Lucene中文分词器组件的相关知识点。 首先,我们要明白中文分词的重要性。由于中文是以词为基本单位,不像英文那样有明显的空格分隔...

    lucene.NET 中文分词

    **Lucene.NET 中文分词技术详解** Lucene.NET 是一个高性能、全文检索库,它是Apache Lucene项目在.NET平台上的实现。作为一个开源的搜索引擎框架,Lucene.NET为开发者提供了强大的文本搜索功能。而在处理中文文档...

    基于词典的最大匹配的Lucene中文分词程序

    本文将深入探讨“基于词典的最大匹配”的Lucene中文分词程序,这是构建高效、准确的中文信息处理系统的重要组成部分。 首先,我们要理解什么是分词。中文分词是指将连续的汉字序列按照词语的边界进行划分,使得每个...

    lucene中文分词工具包

    Lucene是一个高性能、全文检索库,而“lucene中文分词工具包”则为Lucene提供了一个专门针对中文分词的解决方案。这个工具包的核心是IKAnalyzer,它是一个开源且基于Java语言开发的轻量级中文分词工具,旨在提升中文...

    lucene中文分词器(paoding解牛)

    Paoding分词器是一款专为Lucene设计的高性能、高精度的中文分词组件,它在2.0.4-alpha2这个版本中,不仅提供了基础的分词功能,还引入了多种优化策略,使得在复杂语境下的分词效果更为精准。Paoding这个名字来源于...

    lucene中文分词(庖丁解牛)庖丁分词

    2. 创建词典:庖丁分词依赖于词典来识别词汇,因此需要根据实际需求创建或定制词典。词典可以包含常用词汇、专有名词等,以确保分词的准确性。 3. 初始化分词器:在Lucene的索引过程中,需要实例化庖丁分词器,并...

    Lucene3.0分词系统.doc

    Lucene3.0分词系统的核心在于理解和应用其分词原理,无论是对于英文还是中文文本,这一过程都是构建高效搜索引擎的基础。以下是对Lucene3.0分词系统中涉及的关键知识点的深入解析。 ### 英文分词原理 英文分词相较...

    lucene中文分词

    总的来说,"lucene中文分词"是Lucene处理中文文本的关键环节,通过引入"je-analysis"这样的分词插件,我们可以构建出适用于各种场景的中文搜索引擎。在实际应用中,需要根据数据特性选择合适的分词策略,并进行适当...

    lucene 中文分词 庖丁解牛

    中文分词是中文信息处理的核心环节,因为中文词汇之间没有明显的分隔符,因此需要通过特定算法将连续的汉字序列切割成有意义的词语。正确的分词结果直接影响到搜索引擎的查准率和查全率,进而影响用户体验。 三、...

    lucene6.6+拼音分词+ik中文分词包

    然而,对于中文文本,Lucene默认的分词器并不理想,因此我们需要引入专门针对中文的分词工具。 IK Analyzer(IK中文分词器)是为了解决这个问题而诞生的。它是开源的Java实现的中文分词组件,特别适合用于Java开发...

    Lucene中文分词组件 JE-Analysis 1.5.1

    //采用正向最大匹配的中文分词算法,相当于分词粒度等于0 MMAnalyzer analyzer = new MMAnalyzer(); //参数为分词粒度:当字数等于或超过该参数,且能成词,该词就被切分出来 MMAnalyzer analyzer = new ...

    lucene分词测试代码

    用java写的图形分词测试的小东西,用的分词器是: 来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器,其使用“正向全切分算法”,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I...

    Lucene-Demo.rar Lucene分词的demo

    分词器的配置是灵活的,可以根据需求选择不同的分词策略,比如标准分词器(StandardAnalyzer)适用于大多数英文文本,而中文分词可能需要使用IKAnalyzer或SmartChineseAnalyzer等针对中文特性的分词器。 在运行这个...

    lucene中文分词jar包

    关于lucene中文分词的一个辅助jar包

    Lucene与中文分词技术的研究及应用

    为了增强Lucene在中文环境下的表现,需要对Lucene的默认分析器进行扩展,引入中文分词器。常见的中文分词器有: - **Jieba分词**:一款流行的开源中文分词工具,支持精确模式和搜索引擎模式。 - **IK分词**:针对...

    如何使用Lucene的中文分词搜索

    这些分词器能识别中文词汇并将其拆分为单个词元(Token)。 2. **配置分析器**:在LuceneUtils.java或LuceneDB.java中,需要配置合适的中文分词分析器。例如,使用IK Analyzer,代码可能如下: ```java Analyzer ...

    lucene3庖丁解牛中文分词器

    然而,对于中文文档的处理,Lucene原生的分词能力相对较弱,这就需要我们引入专门的中文分词器来提升搜索效率和准确性。其中,"庖丁解牛"中文分词器因其高效和精准,成为了许多开发者的选择,尤其在支持Lucene 3版本...

Global site tag (gtag.js) - Google Analytics