- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Lucene自定义中文分词器设计与实现
基于Lucene自定义中文分词器设计与实现
摘要:该文设计了一个基于复杂形式最大匹配算法(MMSeg_Complex)的自定义中文分词器,该分词器采用四种歧义消除规则,并实现了用户自定义词库、自定义同义词和停用词的功能,可方便地集成到Lucene中,从而有效地提高了Lucene的中文处理能力。通过实验测试表明,该分词器的分词性能跟Lucene自带的中文分词器相比有了极大的提高,并最终构建出了一个高效的中文全文检索系统。
关键词:中文分词;复杂最大匹配;Lucene;分词器
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)02-0430-04
虽然Lucene功能强大,配置灵活且应用广泛,然而其自带分词器的中文分词效果却不是太好。中文分词是自然语言处理领域中的一项重要的基础性工作,其结果将直接影响到检索系统的查准率和查全率。因此,研究一种能与Lucene相结合的高效的中文分词器,一直以来都是一个重要的课题[1]。将中文的汉字序列切分成一系列有意义的词,就是中文分词技术所要探讨内容,中文分词的准确与否,对搜索引擎检索结果的相关性和准确性有着很大的影响[2]。综合考虑上述要求,该文决定采用基于字符串匹配的分词算法来设计分词器,因为它原理简单且易于实现,简洁而高效,完全可以满足一般情况下开发设计自己个性化搜索引擎的需要。
1 Lucene简介及其分词原理
Lucene中不同的Analyzer其实质上就是组合不同的Tokenizer和TokenFilter而得到最后的TokenStream。当文本在索引过程中经过分析后,最后生成的每个语汇单元都将作为一个项被传递给索引[3]。我们以对文本“How are you”的分析为例,该文本中每个语汇单元都表示一个独立的单词,图2展示了用Lucene 中的StandardAnalyzer类分析该短语所产生的语汇单元。
由图1可知,当文本被语汇单元化了之后,相对于前一个语汇单元的位置信息将以位置增量值保存,一般来说,位置增量默认为1。如果位置增量大于1,则允许语汇单元之间有空隙,可以利用这个空隙来表示被删除的单词,由于“are”这个单词是个停用词,分词时被过滤掉了,所以“How”和“you”之间的位置增量变成了2。位置增量为0的语汇单元则表示将该??汇单元放置在前一个语汇单元的位置上。同义词分词器可以通过0位置增量来表示插入的同义词,这个做法使得Lucene在进行短语查询时,输入任何一个同义词,都能匹配到相同的结果。该文设计的自定义同义词分词器就应用到了0位置增量的原理。
2 基于复杂形式最大匹配算法的自定义分词器的设计
根据Lucene的分词原理,该文设计了一个基于复杂形式最大匹配算法的自定义分词器,在有效提高Lucene对中文信息处理能力的同时,用户还可以根据开发需要添加用户自定义词库、根据分词结果自定义同义词和停用词集来扩展该分词器的性能,从而能够更加方便地检索出自己想要搜索的内容。
其中最大长度的词组是第三个,因此,第三个词组的第一个单词_C1C2_被我们认为是正确的,我们接受这个词,然后从汉字C3开始,重复上述步骤,直到字符串的最后一个词被识别。该文提出的复杂最大匹配算法的“消除歧义规则”有四项,依次使用这四项规则对分词结果进行过滤,直到只有一种结果或者这四项规则使用完毕为止。这四项规则分别是:1) 最大匹配,2) 最大平均单词长度,3) 单词长度最小方差,4) 单字单词语素自由度的最大和。
规则1:最大匹配最大匹配规则选择具有最大长度的三词词组的第一个词作为正确的分词结果,如果经过规则1过滤后,有多于一个的词组具有最大长度,则采用下一个规则。
规则2:最大平均单词长度,在每一个字符串的结尾,很可能得到只有一个或两个单词的词组,例如:下面的词组拥有相等的长度且单词长度的方差也相等。1) _C1_ _C2_ 2) _C1C2_。
规则2以最大平均单词长度(平均词长=词组总字数/词语数量)从词组中取得第一个单词,因此在上面的例子中,我们选择第二个词组中的_C1C2_作为正确的分词结果。规则2是基于相对于单字的单词我们更容易遇到多字的单词这个事实来进行假设的,而且这个规则是只有在三词词组中的一个或两个单词位置为空时才适用,因为当词组是一个真正的三词词组时,相同长度的三词词组当然具有相同的平均词长,这个规则就不适用了,于是要采用规则3。
规则3:单词长度最小方差,规则3是取拥有单词长度最小方差的词组的第一个单词作为正确分词结果的。这个规则是建立在“我们通常认为,单词的长度是均匀分布的”这个假设之上的。
规则4:单字单词语素自由度的最大和,规则4将计算词组中所包含的所有单字单词
文档评论(0)