您的位置: 首页 - seo培训 - 免费SEO培训:百度中文分词技术

免费SEO培训:百度中文分词技术

编辑:admin     时间:2010-6-10    0:03:56  来自:深圳seo_深圳网站建设_深圳SEO培训

当人们使用百度搜索引擎查找信息时,用户通过搜索引擎接口提交输入,搜索引擎提取相关信息反馈给用户,这一看似简单的过程,实际上包含了搜索引擎对用户提交的字符串进行中文分词的过程。

一、中文分词技术简介

英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子“I am student”,用中文则为:“我是一个学生”,计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词。中文分词又叫中文切词,中文划词等,是seo必须掌握的一个基础知识。

现有的中文分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。

1、基于字符串匹配的分词方法

这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个充分大的机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:

1)正向最大匹配法(由左到右的方向);

2)逆向最大匹配法(由右到左的方向);

3)最少切分(使每一句中切出的词数最小)。

还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。

一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词结果进行检验、调整,从而极大地提高切分的准确率。

2、基于统计的分词方法

从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。定义两个字的互现信息,计算两个汉字X、Y的相邻共现概率。互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。但这种方法也有一定的局限性,会经常抽出一些共现频度高、但并不是词的常用字组,例如“这一”、“之一”、“有的”、“我的”、“许多的”等,并且对常用词的识别精度差,时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。

3、基于理解的分词方法

这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。

到底哪种分词算法的准确度更高,目前并无定论。对于任何一个成熟的分词系统来说,不可能单独依靠某一种算法来实现,都需要综合不同的算法。

二、分词系统的判断标准

判断一个分词系统好不好,关键看两点:一个是消除歧义能力;一个是词典末登录词的识别。

(1)、歧义识别

歧义是指同样一句话。可能有两种或者更多的切分方法。例如“化妆和服装”可以分成“化妆/和/服装”或者“化妆/和服/装”,这种称之为交叉歧义。还有一种称之为组合歧义,组合歧义必需根据句子来判断。例如,在句子“这个门把手坏了”中“把手”是个词,但在句子“请把手拿开”中,“把手”就不是一个词。由于没有人的思维去理解,计算机很难知道到底哪个方案正确。

(2)新词识别

新词,专业术词称为末登录词,也就是那些在字典中都没有收录过,但又确实能称为词的那些词。最典型的是人名,人可以很容易理解句子“吴育良去广州了”中,“吴育良”是个词,因为它是一个人的名字,但要是计算机去识别就困难了。如果把“吴育良”作为一个词收录到字典中去,全世界有那么多名字,而且每时每刻都有新增人名,收录这些人名本身就是一项巨大的工程,新词中除了人名以外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,而且这些又正是人们经常使用的词。因此对于搜索引擎来说,对新词识别的准确率已经成为评价一个分词系统好坏的重要标志。

三、百度的分词系统

百度作为商业搜索引擎服务商不可能将其查询处理及分词技术公布于众.但我们可以将其看作一个黑盒,通过向黑盒提交输入,从黑盒返回的结果大致判断黑盒里面不为人知的技术细节。

1、百度的查询处理

(1)假设用户提交了不只一个查询串,如“信息检索理论工具”,从平常我们的查询可知,百度搜索引擎首先根据分隔符比如空格、标点符号,将查询串分割成若干子查询串,如上面的查询就会被解析为“信息检索”、“理论”、“工具”等字符串。

(2)假设用户提交的查询内容重复,如“理论工具理论”,我们通过向百度搜索引擎输入“工具理论”、“理论工具理论”、“工具理论工具理论”、“工具理论工具理论理论”4个查询串,从各个查询串返回的结果我们可以看到,4个查询串返回网页结果数量均相同,都为约7710000篇.详细查看返回结果我们可以知道结果是排序不一样的相同数据。因而我们可以得出结论,百度对用户提交的重复内容进行了归并处理。

(3)假设用户提交的中文中包含英文单词、数字,如“电影BT下载”、“电影13下载”,我们向百度提交上述两个查询串,从返回结果可知,百度将中文中的英文、数字当作一个整体保留,并以此为断点将中文切开。

百度查询处理归纳如下:首先根据分割符号将查询分开,然后看看是否有重复的字符串,如果有进行归并处理。接着判断是否有英文或数字,如有,把英文或数字当作一个整体保留并把前后的中文切开。

2、百度的分词条件

经过以上查询处理后,接着的问题就是分词了,首先提出的就是一个分词时机或者是条件问题,即当用户向百度搜索引擎提交查询字符串时,什么样的查询字符串才能符合百度的切割条件呢?我们首先向百度提交“天如得”,从返回的结果看,“天如得”并末被切分,所有返回结果均包含“天如得”这一查询字符串。我们再向百度提交“电影下载”,从返回结果看,百度将“电影下载”查询字符串解析成“电影”、“下载”、“电影下载”,返回结果要么包含“电影”,要么包含“下载”,要么就是包含“电影下载”。从中我们可以判断出百度的切割的条件。简单地说,如果字符串只包含小于等于3个中文字符的话,字符串保留不动,当字符串长度大于等于4个中文字符的时,百度的分词程序启动。

3、百度的分词算法

上文中我们论述了现有的分词算法已经比较成熟,比如正向最大匹配法、逆向最大匹配法、双向最大匹配法、语言模拟方法、最短路径法等。那么,百度用的是什么方法?首先我们向百度提交一个查询“周恩来北京华烟云”,看看百度分词是如何消除歧义以及是否有词典末登录词的识别功能。如果是正向最大匹配算法的话,那么查询字符串“周恩来北京华烟云”将被解析成:“周恩来/北京/华/烟云”;如果是逆向最大匹配算法的话,那么输出应该是:“周/恩/来/北/京华烟云”。百度的搜索结果为:“周恩来/北/京华烟云”,一个跟我们前面提到的正向最大匹配法和逆向最大匹配法均不同的结果,但却识别出了“周恩来”这一人名及“京华烟云”这一影视名。我们再次向百度提交查询“意大利益”、“百度日如年”两查询词,结果能识别出地名“意大利”及成语“度日如年”。这样我们基本能确定百度存在专用词典,这一词典包含一些人名、部分地名以及一些普通词典没有的新词。

我们继续向百度提交查询“工地方向导”,如果是正向最大匹配,切分结果为“工地/方向/导”;如果是逆向最大匹配,结果为“工/地方/向导”。百度实际结果为:“工地/方向/导”,返回的26,200篇结果要么包含“工地”,要么包含“方向”,但却怎么也找不到包含“地方”及“向导”两词中任意一词的网页。同理,输入“工人民主要”一词,所有结果网页中怎么也找不到包含“人民”一词的网页。从而我们可以判断百度使用的是正向最大匹配法。至此,我们可以大致得出百度的分词算法:百度首先将用专业词典进行切分,切分后留下部分采用正向最大匹配法进行匹配。

免费SEO培训:百度中文分词技术相关文章列表

联系我们

最新文章

热门TAG