>首页 -> 网站推广 -> 搜索排名
关于百度中文分词系统研究
 作者:奥德传媒 网络摘录| 浏览:1359次  评论:0条 ;责任编辑:admin | 
对于网站优化人员,必须理解什么是中文分词,分词技术是研究搜索引擎最基础的学科,所以当你理解分词原理对seo是很有帮助的,通过一篇百度中文分词研究论文总结如下: 所谓分词就是把字与字连在一起的汉语句子分成若干个相互独立、完整、正确的单词。词是最小..

 

  对于网站优化人员,必须理解什么是中文分词,分词技术是研究搜索引擎最基础的学科,所以当你理解分词原理对seo是很有帮助的,通过一篇百度中文分词研究论文总结如下:

  所谓分词就是把字与字连在一起的汉语句子分成若干个相互独立、完整、正确的单词。词是最小的、能独立活动的、有意义的语言成分。计算机的所有语言知 识都来自机器词典(给出词的各项信息) 、句法规则(以词类的各种组合方式来描述词的聚合现象) 以及有关词和句子的语义、语境、语用知识库。中文信息处理系统只要涉及句法、语义(如检索、翻译、文摘、校对等应用) ,就需要以词为基本单位。当汉字由句转化为词之后,才能使得句法分析、语句理解、自动文摘、自动分类和机器翻译等文本处理具有可行性。可以说,分词是机器 语言学的基础。

  分词准确性对搜索引擎来说十分重要,但如果分词速度太慢,即使准确性再高,对于搜索引擎来说也是不可用的,因为搜索引擎需要处理数以亿计的网页,如 果分词耗用的时间过长,会严重影响搜索引擎内容更新的速度。因此对于搜索引擎来说,分词的准确性和速度,二者都需要达到很高的要求。

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

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

1) 正向最大匹配法(由左到右的方向) 。
   通常简称为MM(Maximum Matching Method) 法。其基本思想为:设D 为词典,MAX 表示D 中的最大词长,STR 为待切分的字串。MM 法是每次从STR 中取长度为MAX 的子串与D 中的词进行匹配。若成功,则该子串为词,指针后移MAX 个汉字后继续匹配,否则子串逐次减一进行匹配。

2) 逆向最大匹配法(由右到左的方向) 。
   通常简称为RMM ( Reverse Maximum MatchingMethod) 法。RMM 法的基本原理与MM 法相同,不同的是分词的扫描方向,它是从右至左取子串进行匹配。

3) 最少切分法(使每一句中切出的词数最小) 。
   还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最 小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169 ,单纯使用逆向最大匹配的错误率为1/ 245 。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确 率。一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小 的串再来进行机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来 对分词结果进行检验、调整,从而极大地提高切分的准确率。

》基于理解的分词方法。
   这种分词方法是通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现 象。它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进 行判断,即它模拟了人对句子的理解过程。这种分词方法需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直 接读取的形式,因此目前基于理解的分词系统还处在试验阶段。

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

中文分词的一般过程
   中文分词包括以下部分:词典初始化、输入分词文本、文本的结构化处理、分词(粗分) 、消歧与识别未登录词、更新词典和保存结果,如图1所示。

分词中的难题
   经历了将近十年的发展,各种分词算法都已经比较成熟了,但是中文是一种十分复杂的语言,让计算机理解中文语言更难。在中文分词过程中,有两大难题一直没有完全突破。

1) 歧义识别。
   歧义是指同样的一句话,可能有两种或者更多的切分方法。例如,“安徽大学生”,因为“安徽”、“大学”、“学生”、“大学生”、“安徽大学”都是词,那么 这个短语就可以分成“安徽/ 大学生”和“安徽大学/ 生”。这种称为交叉歧义。像这种交叉歧义十分常见,相对组合歧义来说是还算比较容易处理的,组合歧义就需要根据整个句子来判断了。例如,在句子“这个门把 手坏了”中“, 把手”是个词,但在句子“请把手拿开”中“, 把手”就不是一个词。此外,在歧义中还有一个难题,是真歧义。真歧义意思是给出一句话,由人去判断也不知道哪个应该是词,哪个应该不是词。如“网球拍卖完 了”,如果没有上下文,即使是人也很难判断到底是“网球拍/卖/完了”还是“网球/拍卖/完了”。

2) 新词识别。
   新词,专业术语称为未登录词,也就是那些在字典中都没有收录过,但又确实能称为词的那些词。最典型的是人名,此外还有机构名、地名、产品名、商标名、简 称、省略语等都是很难处理的问题,而且这些又正好是人们经常使用的词,因此对于搜索引擎来说,分词系统中的新词识别十分重要。目前新词识别准确率已经成为 评价一个分词系统好坏的重要标志之一。

百度分词算法推导

  搜索引擎涉及到许多技术点,比如查询处理、排序算法、页面抓取算法、CACHE 机制、ANTI – SPAM 等等。这些技术细节,作为商业公司的搜索引擎服务提供商比如百度, Google 等是不会公之于众的。将现有的搜索引擎看作一个黑盒,通过向黑盒提交输入,判断黑盒返回的输出大致判断黑盒里面不为人知的技术细节。百度作为一个典型的中 文搜索引擎一直强调其“中文处理”方面具有其它搜索引擎所不具有的关键技术和优势。那么就来看看百度到底采用了哪些所谓的核心技术。

  首先,判断一下百度的分词条件。单字词不用分,从二字词开始,为了避免词对判断分词程序是否起作用的干扰,输入任意非词二字。分别向百度提交“校 学”、“学大”,从返回结果的标红关键字来看,百度并没有将“校学”、“学大”分成“校/ 学”、“学/ 大”,说明百度的分词程序没有启动;接着提交查询“或者与”,返回结果1 210 000 篇相关页面,翻到最后一页,发现标红的关键字都是“或者与”连续出现的情况,好像没有切分,但是还不确定,再提交人工分好的查询“或者与”,返回结果31 400 000 篇,要么是“或者,与”,要么是“或者与”,可以确定没有进行分词; 再向百度提交“论文下载”,从返回结果中标为红字的地方可以看到查询已经被切分成“论文/ 下载”两个词了,说明分词程序已经启动了。如果是比四个中文字符更长的字符串,分词程序当然也会被激发了。归纳一下,单从字符数上来看,百度的分词条件是 大于等于四个中文字符,三个及以下字符不进行切分,如表1所示。

 

  下面,判断一下百度采取的分词算法。现在分词算法已经算是比较成熟了,有简单的有复杂的,比如正向最大匹配、反向最大匹配、双向最大匹配、语言模型方法、最短路径算法等等。判断一个分词系统好不好,关键看两点,一个是消除歧义能力;一个是词典未登录词的识别能力。

  首先假设,百度没有采取比较复杂的算法,因为考虑到速度问题。提交一个查询“安徽大学网络实验室”,如果是正向最大匹配算法的话,那么输出应该是: “安徽大学/ 网络实验室”或者“安徽大学/ 网络/ 实验室”,百度的分词结果:“安徽大学/ 网络/ 实验室”,跟期望相一致,但是并不能据此就说明百度采用的是正向最大匹配算法。再输入“甲型H1N1 流感症状”,结果百度分为“甲型H1N1/ 流感/ 症状”。可以获得如下信息:百度能够识别“甲型H1N1”,说明百度有未登录词识别功能或者百度的专有词典中已经有了“甲型H1N1”这个词。认为分词过 程分为两个阶段:第一阶段,查找一个特殊词典,这个词典包含一些人名、地名以及一些普通词典没有的新词, 这样首先将“甲型H1N1”解析出来。第二阶段,将剩下的字符串“流感症状”交给普通词典,分成“流感/ 症状”。分词的结果也符合正向最大匹配算法。然而上面的两个例子如果是反向最大匹配算法结果也是说的通的,为了证明这一点,提交查询“安徽大学科建设”, 如果是反向最大匹配算法应该分成“安徽/ 大/ 学科/ 建设”,百度实际分成“安徽大学/ 科/ 建设”。再查询“东京城市民国”, 如果是反向最大匹配算法应该分成“东京/ 城市/ 民国”,但是百度分成“东京城/ 市民/ 国”,这就证明了不是反向最大匹配算法。同时又出现了新的问题,“东京”是个城市的名字,为什么没有识别出来,而是分成了“东京城”,我想应该是百度的专 有词典中有“东京城”这个词,虽然也有“东京”,但是按最大匹配来分应该是分成“东京城”。这样基本能确定百度分词采取了至少两个词典,一个是普通词典, 一个是专有词典( 地名、人名等) 。而且是专有词典先切分,然后将剩余的片断交由普通词典来切分。继续测验,提交查询“登上海东方明珠”,如果没有专有词典,那么结果应该是“登上/ 海/ 东方明珠”,事实上百度的分词结果是“登/ 上海/ 东方明珠”。至此,可以判断百度的分词算法是正向最大匹配算法。

结束语

归纳一下百度的分词算法系统:首先用专有词典采用正向最大匹配分词,切分出部分结果,剩余没有切分的部分交给普通词典,同样采取正向最大匹配分词, 最后输出结果。虽然正向最大匹配分词方法分词的效果可能不是最好的,却是最符合中国人的习惯的。另外百度的专有词典也是很强大的,不仅包含的专有词非常 多,而且收录新词的速度很快。

注:本文版权归原作者所有,由SEO顾问:http://www.zhangsuihua.cn整理发布!原文地址连接:http://www.zhangsuihua.cn/zhuanqianseo/598.html

(如果您觉得本站不错,请告诉身边的朋友,或转载到论坛、百度知道、贴吧等,记得带网址哟!)
更多
来源:网络| 浏览:1359次 |  [ ][编辑] [收藏] [评论] [返回顶部]
相关栏目
热门文章
推荐文章