展会信息港展会大全

4.1 Lucene中的中文分词
来源:互联网   发布日期:2011-09-09 13:39:00   浏览:17649次  

导读:《解密搜索引擎技术实战:Lucene&Java精华版》第4章中文分词原理与实现,本章介绍了分词中的查找词典算法。查词典最早用首字母散列或者散列表实现,然后采用Trie...

第4章 中文分词原理与实现

有个经典笑话:护士看到病人在病房喝酒,就走过去小声叮嘱说:小心肝!病人微笑道:小宝贝。在这里,"小心肝!"这句话有歧义,从护士的角度理解是"小心/肝",在病人的角度理解是"小心肝"。如果使用中文分词切分成"小心/肝"则可以消除这种歧义。

因为中文文本中词和词之间不像英文一样存在边界,所以中文分词是一个专业处理中文信息的搜索引擎首先面对的问题。英语、法语和德语等西方语言通常采用空格或标点符号将词隔开,具有天然的分隔符,所以词的获取比较简单。但是中文、日文和韩文等东方语言,虽然句子之间有分隔符,但词与词之间没有分隔符,所以需要靠程序切分出词。另外,除了可以用于全文查找,中文分词的方法也被应用到英语手写体识别中。因为在识别手写体时,单词之间的空格就不很清楚了。

要解决中文分词准确度的问题,是否提供一个免费版本的分词程序供人下载使用就够了?而像分词这样的自然语言处理领域的问题,很难彻底解决。例如,通用版本的分词也许需要做很多修改后才能用到手机上。所以需要让人能看懂其中的代码与实现原理,并参与到改进的过程中才能更好地应用。

本章的中文分词和下章介绍的文档排重和关键词提取等技术都属于自然语言处理技术的范围。因为在中文信息处理领域,中文分词一直是一个值得专门研究的问题,所以单独作为一章。

4.1  Lucene中的中文分词

Lucene中处理中文的常用方法有三种。以"咬死猎人的狗"这句话的输出结果为例:

单字方式:[咬]  [死]  [猎]  [人]  [的]  [狗];

二元覆盖的方式:[咬死]  [死猎]  [猎人]  [人的]  [的狗];

分词的方式:[咬]  [死]  [猎人]  [的]  [狗]。

Lucene中的StandardTokenizer采用了单字分词的方式。CJKTokenizer采用了二元覆盖的实现方式。笔者开发的CnTokenizer采用了分词的方式,本章将介绍部分实现方法。


赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港