欢迎来到天天文库
浏览记录
ID:5245327
大小:30.50 KB
页数:8页
时间:2017-12-06
《基于lucene自定义中文分词器设计和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于Lucene自定义中文分词器设计和实现 摘要:该文设计了一个基于复杂形式最大匹配算法(MMSeg_Complex)的自定义中文分词器,该分词器采用四种歧义消除规则,并实现了用户自定义词库、自定义同义词和停用词的功能,可方便地集成到Lucene中,从而有效地提高了Lucene的中文处理能力。通过实验测试表明,该分词器的分词性能跟Lucene自带的中文分词器相比有了极大的提高,并最终构建出了一个高效的中文全文检索系统。关键词:中文分词;复杂最大匹配;Lucene;分词器中图分类号:TP393文献标识码:A文章编号:1009-3044(2014)02-0430-048虽然Lu
2、cene功能强大,配置灵活且应用广泛,然而其自带分词器的中文分词效果却不是太好。中文分词是自然语言处理领域中的一项重要的基础性工作,其结果将直接影响到检索系统的查准率和查全率。因此,研究一种能与Lucene相结合的高效的中文分词器,一直以来都是一个重要的课题[1]。将中文的汉字序列切分成一系列有意义的词,就是中文分词技术所要探讨内容,中文分词的准确与否,对搜索引擎检索结果的相关性和准确性有着很大的影响[2]。综合考虑上述要求,该文决定采用基于字符串匹配的分词算法来设计分词器,因为它原理简单且易于实现,简洁而高效,完全可以满足一般情况下开发设计自己个性化搜索引擎的需要。1Luc
3、ene简介及其分词原理Lucene中不同的Analyzer其实质上就是组合不同的Tokenizer和TokenFilter而得到最后的TokenStream。当文本在索引过程中经过分析后,最后生成的每个语汇单元都将作为一个项被传递给索引[3]。我们以对文本“Howareyou”的分析为例,该文本中每个语汇单元都表示一个独立的单词,图2展示了用Lucene中的StandardAnalyzer类分析该短语所产生的语汇单元。由图1可知,当文本被语汇单元化了之后,相对于前一个语汇单元的位置信息将以位置增量值保存,一般来说,位置增量默认为1。如果位置增量大于1,则允许语汇单元之间有空隙
4、,可以利用这个空隙来表示被删除的单词,由于“are”这个单词是个停用词,分词时被过滤掉了,所以“How”和“you”之间的位置增量变成了2。位置增量为0的语汇单元则表示将该语汇单元放置在前一个语汇单元的位置上。同义词分词器可以通过0位置增量来表示插入的同义词,这个做法使得Lucene在进行短语查询时,输入任何一个同义词,都能匹配到相同的结果。该文设计的自定义同义词分词器就应用到了0位置增量的原理。2基于复杂形式最大匹配算法的自定义分词器的设计8根据Lucene的分词原理,该文设计了一个基于复杂形式最大匹配算法的自定义分词器,在有效提高Lucene对中文信息处理能力的同时,用户
5、还可以根据开发需要添加用户自定义词库、根据分词结果自定义同义词和停用词集来扩展该分词器的性能,从而能够更加方便地检索出自己想要搜索的内容。其中最大长度的词组是第三个,因此,第三个词组的第一个单词_C1C2_被我们认为是正确的,我们接受这个词,然后从汉字C3开始,重复上述步骤,直到字符串的最后一个词被识别。该文提出的复杂最大匹配算法的“消除歧义规则”有四项,依次使用这四项规则对分词结果进行过滤,直到只有一种结果或者这四项规则使用完毕为止。这四项规则分别是:1)最大匹配,2)最大平均单词长度,3)单词长度最小方差,4)单字单词语素自由度的最大和。规则1:最大匹配最大匹配规则选择具
6、有最大长度的三词词组的第一个词作为正确的分词结果,如果经过规则1过滤后,有多于一个的词组具有最大长度,则采用下一个规则。规则2:最大平均单词长度,在每一个字符串的结尾,很可能得到只有一个或两个单词的词组,例如:下面的词组拥有相等的长度且单词长度的方差也相等。1)_C1__C2_2)_C1C2_。8规则2以最大平均单词长度(平均词长=词组总字数/词语数量)从词组中取得第一个单词,因此在上面的例子中,我们选择第二个词组中的_C1C2_作为正确的分词结果。规则2是基于相对于单字的单词我们更容易遇到多字的单词这个事实来进行假设的,而且这个规则是只有在三词词组中的一个或两个单词位置为空
7、时才适用,因为当词组是一个真正的三词词组时,相同长度的三词词组当然具有相同的平均词长,这个规则就不适用了,于是要采用规则3。规则3:单词长度最小方差,规则3是取拥有单词长度最小方差的词组的第一个单词作为正确分词结果的。这个规则是建立在“我们通常认为,单词的长度是均匀分布的”这个假设之上的。规则4:单字单词语素自由度的最大和,规则4将计算词组中所包含的所有单字单词的语素自由度,然后将得到的值相加,取总和最大的词组的第一个单词作为正确的分词结果。由于这两个词组拥有相同的词长、方差和平均单词长度,而它们分别有
此文档下载收益归作者所有