没有合适的资源?快使用搜索试试~ 我知道了~
中文分词算法介绍、分类详解
需积分: 50 29 下载量 140 浏览量
2010-04-25
18:25:46
上传
评论
收藏 108KB DOC 举报
温馨提示
试读
14页
该文档详细介绍了中文分词的原理及相应的技术。文档讲解了最大匹配法(Forward Maximum Matching method, FMM法)、正向最大匹配法(由左到右的方向)、逆向最大匹配法(由右到左的方向)、最少切分(使每一句中切出的词数最小)。
资源推荐
资源详情
资源评论
1
最大匹配法(Forward Maximum Matching method, FMM 法):选取包含 6-8 个汉字的符号
串作为最大符号串,把最大符号串与词典中的单词条目相匹配,如果不能匹配,就削掉一
个汉字继续匹配,直到在词典中找到相应的单词为止。匹配的方向是从右向左。
逆向最大匹配法(Backward Maximum Matching method, BMM 法):匹配方向与 MM 法相
反,是从左向右。实验表明:对于汉语来说,逆向最大匹配法比最大匹配法更有效。
给定串:我是中国人
从左往右最长匹配优先:
读入‘我’,一个字当然是一个词
再读入‘是’,查表找‘我是’,不在表中,则‘我’是一个独立的词,‘是’还要下一步判断
读入‘中’‘是中’肯定不在表内,那‘是’也是一个独立的词,‘中’还要下一步判断
读入‘果’,‘中国’在表内
再读入‘人’,’中国人‘也在表内,
此时全部读完,’中国人‘是一个次
结果就是:我 是 中国人
从右往左也类似
最近折腾毕业论文,搞得人没心情写
blog
了。于是觉得不如把毕业论文里的东西贴出来
当
blog
算了。这里主要介绍了我自己的中文分词算法,我觉得它比现在开源代码比较多
的中文匹配法要好多了。这里的内容没有任何背景知识啥的,毕竟论文里的背景知道我也
是从网上粘贴的,呵呵!因此这篇文章的内容可能适合做搜索引擎的人。如果要了解中文
分词算法在搜索引擎中的重要性,或者最大匹配法的思想与过程,请去网上搜吧,资料还
是蛮多的。
1.1.1
最大匹配法分词的缺陷
尽管最大匹配法分词是常用的解决的方案,但是无疑它存在很多明显的缺陷,这些缺陷也
限制了最大匹配法在大型搜索系统中的使用频率。最大匹配法的问题有以下几点:
一、长度限制
由于最大匹配法必须首先设定一个匹配词长的初始值,这个长度限制是最大匹配法在效率
与词长之间的一种妥协。我们来看一下以下两种情况:
(
1
)词长过短,长词就会被切错。例如当词长被设成
5
时,也就意味着它只能分出长度
为
5
以下词,例如当这个词为“中华人民共和国”长度为
7
的词时,我们只能取出其中的
5
个字去词库里匹配,例如“中华人民共”,显然词库里是不可能有这样的词存在的。因此我
们无法下确的划分出“中华人民共和国”这样的词长大于
5
的词。
(
2
)词长过长,效率就比较低。也许有人会认为既然
5
个字无法满足我们的分词要求,
何不将词长加大,例如加到
10
或者
100
,毕竟这个世界超过
100
个字长的词还是很少见
的,我们的词长问题不就解决了?然而当词长过长时,我们却要付出另一方面的代价:效
率。效率是分词算法、甚至是整个算法理论体系的关键,毕竟算法书里所有的高深的查询
或排序算法都是从效率出发的,否则任何笨办法都可以解决分词效率低的问题。设想到我
们把字长设成
100
个词时,我们必须将词从
100
开始一直往下匹配直到找到要查的字为
止,而我们大多数词的字长却只有两三个字,这意味着前
97
次的匹配算法是徒劳的。
因此我们必须要在词长与效率之间进行妥协,既要求分词尽量准确,又要求我们的词长不
能太长。尽管我们可能找到这样一个比较优化的字长值使两者都达到比较满足的状态,但
是毕竟不管我们怎么设定,总会有些太长词分出来,或者带来效率问题。
二、效率低
效率低是最大匹配法分词必然会来的问题。即使我们可以将字长设成相当短,例如
5
(注
意,我们不能再缩短字长了,毕竟字长为
5
以上的词太多了,我们不能牺牲分词的准确),
然而当我们的大数词长为
2
时,至少有
3
次的匹配算法是浪费掉的。回想一下算法书里提
到的最简单的字符匹配与
KMP
算法之间天差地别的效率,我们知道通过某种方法,这些浪
费的掉的匹配时间是可以补回来的。
三、掩盖分词歧义
中文是如此复杂的语言,它的表达方式如此之多,语法文法如此精妙,机械的电脑是很难
理解这么复杂的语言,因此它必然会带来歧意性,以下是两个简单的例子:
A.“
有意见分歧” (正向最大匹配和逆向最大匹配结果不同)
有意
/
见
/
分歧
/
有
/
意见
/
分歧
/
B.“
结合成分子时” (正向最大匹配和逆向最大匹配结果相同)
结合
/
成分
/
子时
/
由于词的歧义性使我们在使用最大匹配法分词会产生错误的结果,而且
使用正向分词与逆向分词往往会产生截然不同的结果。尽管使用回溯法或计算计算词的使
用频率,可以使出现歧义的可能性减少,但是我们知道,这样的结果是不可避免的,因为
中文的变化实在太多了。
四、最大匹配的并不一定是想要的分词方式
最大匹配法基于的理念是找到最大的匹配词,但有的时候除了最大匹配词外,我们也可能
只需要这个词的一部分。例如“感冒解毒胶囊”是一个完整的词,按照最大匹配法我们无法
对它进行拆分了,这样我们输入“感冒”的时候就根本搜不到我们需要的词。这是我们需要
的吗?做为生产这种药的厂商,它肯定希望用户输入“感冒”甚至“解毒”,我们都能查到对应
的内容。
1.2
设计自己的中文分词算法
1.2.1
设计目标
基于对分词算法的理解和对最大匹配法分词的分析,我们知道我们必须提出不同的解决
方案,使分词算法的效率、分词的长度限制甚至歧义处理上得到提高。因此我们提出了如
下的设计目标:
一、 高效
中文分词算法必须要高效,毕竟效率对于搜索引擎的重要性是不言而喻的。而且我们面对
的是海量的数据,而不是一篇几百字或几千字的文章,效率的差别的影响可能会使最后运
行效率差几个小时甚至几天。因此我希望我们设计的算法一定要比最大匹配法高,毕竟我
们已经常看到最大匹配法的很多次匹配都是浪费在无用功上了,肯定有办法把这些浪费的
时间节省回来。
剩余13页未读,继续阅读
资源评论
zzhongcy
- 粉丝: 961
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功