您好,欢迎来到知库网。
搜索
您的当前位置:首页全文检索服务中文分词技术

全文检索服务中文分词技术

来源:知库网
全文检索服务中文分词技术

【引言】

全文检索服务采用Solr作为搜索引擎,Solr是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于Lucene 实现。然而对于中文搜索所,lucene却没有很好的分词支持。所以选择一个分词技术是势在必行。

【中文分词介绍】

目前支持Lucense3.0的分词系统有14个,其中比较成熟的开源的中文分词有一下几种:

IKAnalyzer:

IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始,IKAnalyzer已经推出 了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为面向Java的公用分词组件,于Lucene项目,同时提供了对Lucene的默认优化实现。

主要特性:

 采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的高速处理能力。  采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日

期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。

 优化的词典存储,更小的内存占用。支持用户词典扩展定义

 针对Lucene全文检索优化的查询分析器IKQueryParser;采用歧义分析算法优化

查询关键字的搜索排列组合,能极大的提高Lucene检索的命中率。

Paoding:

庖丁中文分词库是一个使用Java开发的,可结合到Lucene 应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的 中文分词开源组件。 Paoding中文分词追求分词的高效率和用户良好体验。 主要特性:

 Paoding's Knives中文分词具有极高效率和高扩展性 。引入隐喻,采用完全的面

向对象设计,构思先进。

 高效率:在PIII 1G内存个人机器上,1秒可准确分词100万汉字。

 采用基于不个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。  能够对未知的词汇进行合理解析

imdict-chinese-analyzer:

imdict-chinese-analyzer是imdict智能词典的智能中文分词模块,算法基于隐马尔科夫模型(Hidden Markov Model, HMM),是中国科学院计算技术研究所的ictclas中 文分词程序的重新实现(基于Java),可以直接为lucene搜索引擎提供简体中文分词支持。

主要特性:

 完全Unicode支持:分词核心模块完全采用Unicode编码,无须各种汉字编码的转

换,极大的提升了分词的效率。

 提升搜索效率:根据imdict智能词典的实践,在有智能中文分词的情况下,索引

文件比没有中文分词的索引文件小1/3

 提高搜索准确度:imdict-chinese-analyzer采用了HHMM分词模型,极大的提高

了分词的准确率,在此基础上的搜索,比对汉字逐个切分要准确得多!

 更高效的数据结构:为了提高效率,针对常用中文检索的应用场景,

imdict-chinese-analyzer对一些不必要的功能进行了删减,例如词性标注、人名识别、时 间识别等等。另外还修改了算法的数据结构,在内存占用量缩减到1/3的情况下把效率提升了数倍。

Mmseg4j:

Mmseg4j是用 Chih-Hao Tsai 的 MMSeg 算法实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%。mmseg4j 已经实现了这两种分词算法。

主要特性:

 1.5版的分词速度simple算法是 1100kb/s左右、complex算法是 700kb/s左右,

(测试机:AMD athlon 2800+ 1G内存 xp)。

 1.6版在complex基础上实现了最多分词(max-word)。“很好听” -> \"很好|好听

\"; “中华人民共和国” -> \"中华|华人|共和|国\"; “中国人民银行” -> \"中国|人民|银行\"。

 1.7-beta 版, 目前 complex 1200kb/s左右, simple 1900kb/s左右, 但内存开销

了50M左右. 上几个版都是在10M左右.

【分词效果】

分别对四种主流开源的分词效果进行总结,如下: 1永和服装饰品有限公司

Paoding: 永和|和服|服装|装饰|饰品|有限|公司

IKAnalyzer: 永和|和服|服装|装饰品|装饰|饰品|有限公司|有限|公司 Imdict: 永|和服|装饰品|有限公司

mmseg4j: 永 | 和服 | 装饰品 | 有限公司

2. 海尔波普慧星的位置就在那一朵云南边十公里处

Paoding: 海尔|波普|慧星|位置|就在|在那|那一|一朵|云南|南边|公里|十公里|处 IKAnalyzer: 海尔波普|海尔|波普|慧星|的|位置|就在|在那|那一|一朵|一|朵|云南|南边|十公里|十|公里处|公里

Imdict: 海尔波普|慧|星|的|位置|就|在|那|一|朵|云南|边|十|公里|处

mmseg4j: 海 | 尔 | 波 | 普 | 慧星 | 的 | 位置 | 就在 | 那一 | 朵 | 云南 | 边 | 十 | 公里 | 处

3. 他大力推广州长制

Paoding: 大|大力|力推|推广|广州|长|州长|制

IKAnalyzer: 他|大力推广|大力|力推|推广|广州|州长|制 Imdict: 他|大力|推广|州长|制

mmseg4j: 他 | 大力推广 | 州长 | 制

4. 那个单身汉口中念念有词,不晓得在想什么

Paoding: 那个|单身|单身汉|汉口|口中|念念|念念有词|不晓|晓得|在想

IKAnalyzer: 那个|单身汉|单身|汉口|口中|念念有词|念念|不晓得|不晓|晓得|在想|什么

Imdict: 那个|单身汉|口中|念念有词|不|晓得|在|想|什么

mmseg4j: 那个 | 单身汉 | 口中 | 念念有词 | 不 | 晓得 | 在想 | 什么

5. State of the art and difficulties in Chinese word segmentation technology Paoding:state|art|difficulties|chinese|word|segmentation|technology IKAnalyzer:state|art|difficulties|chinese|word|segmentation|technology Imdict:state|of|the|art|and|difficulti|in|chines|word|segment|technolog mmseg4j:state|of|the|art|and|difficulti|in|chines|word|segment|technolog

效果总结:Paoding和IKAnalyzer切分的粒度较小,可以产生足够多的分词提供检索,检索结果大于正确结果,如果用户不考虑语义可以采用此类分词库;Imdict或mmseg4j可以产生更符合语义标准的分词,但是由于具体语境对分词的效果可能产生很大的歧义,从而导致不能正确检索出结果,即检索结果可能少于正确的结果。考虑语义时可以选择此类分词库。

【全文检索分词配置】

全文检索服务复用了Solr可扩展的特性,可以根据用户需求灵活配置多种分词库。配置方法如下:

修改schema.xml文件(indexsearch\\WEB-INF\\conf\\solr\\conf\\schema.xml)

… …

… …

根据选择的分词包不同,修改“text”类型的index和query对应的分词实现类“org.wltea.analyzer.solr.IKTokenizerFactory”即可。

因篇幅问题不能全部显示,请点此查看更多更全内容

热门图文

Copyright © 2019-2025 zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务