欢迎光临本站!

中文分词

来源:技术探讨    更新时间:2019-12-11 17:43:27    编辑:老王    浏览:414

  网页查重的工作完成后,分析系统在将分析的结果发往索引系统前还需要对正文进行分词,也称为“切词”( word segment)分词的方法繁多,本节介绍一些基本方法。

  什么是中文分词


  任何文档都可以看做是一些连续的词的集合,然而中文并没有明显的词间分隔,这一点和英文不同。当然英文也有难点,例如时态和词性的变化等。在中文语法中,词汇是由两个或两个以上汉字组成的,并且句子是连续书写的,句子间由标点分隔。这就要求在自动分析中文文本前首先将整句切割成小的词汇单元,即中文分词。

  举个简单的例子来说明分词的难度,对于“学历史学好”这个句子,作为人来说,能够很容易得到正确的切分方法,即"学/历史学/好”(本书用“/”表示一个分词切分符号)。然而计算机要具有这样的智慧还有很多工作要做,否则可能分为“学历/史学/好。

  目前的分词手段主要依靠了字典和统计学的方法。由于索引是按照关键词建索引的,所以分词的效果直接决定了索引词及检索的效果。因此例如将文档“学历史学好”错分成“学历/史学/好”,所以索引时,只会对“学历”、“史学”及“好”这3个索引词建立它们与该文档的关联关系。这样用户查询“历史学”这个关键词时,就无法检索出这个文档,可见分词质量在很大程度上影响了搜索的结果和效果。

  通过字典实现分词


  先人为我们沉淀了厚重的历史和灿烂的文化,而其中的代表就是我们日常使用的文字。也许正是因为没有断词,所以它才显得那么奇妙和多变。虽然这种多变在表达上提供了灵活性,但给搜索引擎带来了难题。在中文分词中主要体现了如下3种难分类型。

  1.交集型歧义

  在阿拉伯数字字串AJB中,若AJ∈D、JB∈D、A∈D且B∈D,则AJB为交集型歧义字段。此时,AJB有AJ/B和AJB两种切分形式,其中J为交集字段。例如,“从小学”,这个词可能有多种切分方法。

  对于“从小学电脑”,正确的切分为“从小学/电脑"。

  对于“从小学毕业”,正确的切分为“从小学毕业”。

  2.组合型歧义

  在字串AB中,若AB∈D、A∈D且B∈D,则AB为组合型歧义字段。此时,AB有AB和A/B两种切分形式

  “中将”这个词可能有多种切分方法。

  对于“美军中将竟公然说”,正确的切分为“美军/中将竟公然说"。

  对于“新建地铁中将禁止商业摊点”,正确的切分为“新建地铁/中/将禁止商业摊点”。

  3.混合型歧义

  同时包含交集型歧义和组合型歧义,则为混合型歧义。

  对于“人才能”,可能切分为“人才能"、“人/才能”和“人/才/能。

  目前解决这些问题的技术手段主要借助字典和统计学的方法共同完成。我们首先从字典开始讲起,梁南元教授[梁南元,1987]最早提出利用字典的方法分词。但如何让计算机读字典,如何让计算机在各种字典的词义中选择合理的分词却并不容易。

  日常使用的字典通常收录那些意义明确、使用频率高且生活中约定俗成的词汇,对于搜索引擎来说,字典中收录的词汇相当少。但即便是如此少的词,如何很快并有效地存储字典,以至于在需要知道一个字符串包含多少个字典中出现的词时能够快速地实现进行过程,成为首先需要解决的问题。

  字典通常采用前缀树或者后缀树的数据结构存储,什么是前缀树?我们来举个例子。

  将字典做成一个前缀树结构的数据结构,如图4-15所示。

中文分词

  选择若干词建立一个前缀树数据结构作为示例,整个字典将是一个由多个后缀树构成的森林。其中从树顶开始,每一个字及其全部祖先构成一个词汇的一部分。对于图中双线圈的词,认为是一次终结,表示它及其全部祖先可以构成字典中的一个词汇。这里“走进”是一个词汇,而“搜索引”不是一个词,因为“引”是单线圈。“搜索引擎“是一个词汇,因为“擎”这个字是双线圈。这种结构十分类似于日常生活中字典的组织方式,即均以一个字开头,其后为以该字开头的全部词汇。日常生活中查字典的习惯也是如此,在字典中查一个词。首先查出该词汇的首个汉字在字典中的页数(这里可以理解为在字典森林中找到以某个字开头的前缀树)继而在其中查找相应的词汇(可以理解为在该词的后缀树中查到指定的词汇)。

  分词的过程可以理解为一次查字典的过程,假定有一个句子“走进搜索引擎。”需要分词,那么计算机将会如何切分呢?

  首先计算机读入“走”,找到“走”这个字典分支。然后读到进”,查看“走”字打头的前缀树。发现“进”是双圈字,与“走”恰好构成一个词。继续读到“搜”时,发现“走”字开头的前缀树中没有继续的匹配,因此切分出“走进”这个词汇。

  接下来找到“搜″这个字典分支,继而读入“索”。发现“索是一个双圈字。系统确定了一个词"搜索”,然而还可能存在更长的匹配。此时系统继续读入“引”,由于这时“引“是单團字,因此继续向下读入“擎"。发现“擎”为一个双圈字,由于下面继续读出的是句号,因此抽取出“搜索引擎”这个词汇。这样整个句子切分完毕,结果为“走进搜索引擎“。

  实际的分词并不总是如此简单,这种前缀优先的最大长度匹配的方法对于“学历史学好”这样的句子会分成“学历史学好这样的错误结果,那么如何避免呢?

  使用后缀树方法可以有效地降低这种错误,不过在从一个字典转到一个后缀树多少有些不够自然。后缀树的结构如图4-16所示。

中文分词

  与前缀树的构造方法不同,树根表示一个词的结尾字,双圈字表示某个词的词头。我们知道,“历史学”、“历史”和“学好是一个词,“学历史学好”被切分成“学/历史学好"。

  从句子的右边向左边读,首先找到“好”这个分支。然后读入“学”,恰好存在这样一个词,因此抽取出它。继续读入“史依次读入全部句子,直到切分结束,最后切分的结果为“学历史/学好"。

  虽然没有错分出“学历”,但是因为“好”这个字的特殊性,这样的逆向切分仍然不能达到理想的结果。

  第1种方法称为“最大正向匹配法”( Maximum MatchingMethod),通常简称为"MM法”;第2种方法称为“逆向最大匹配法"( Reverse Maximum Matching Method),通常简称为“RMM法"。RMM法的基本原理与MM法相同,不同的是分词的扫描方向。

  这类分词的方法可以称为“贪婪算法”,“贪婪”在于总是认为最大匹配的词汇最优。或者说最大匹配可以使得切分出的词汇数量最少,而较少的索引词可以降低索引系统的工作量和最终索引文件的大小。

  而事实上,贪婪并不总是最优。例如对于“学历史学好”,如果正向最大匹配,那么切分为“学历/史学好“;如果逆向最大匹配,将会切分为“学/历史/学好“。无论如何切分都不理想,因此贪婪”导致的局部最优很可能不是全局最优的问题被凸现出来。

  不论MM法,还是RMM法都有不足。一个称为“ N-Gram的方法可以满足由于分错词而带来的损失,简单的如2Gram方法,这种切分方法照顾了所有的可能。举个例子,"走进搜索引擎按照2Gram的切分方法,得到“走进”、“进搜"、“搜索“、“索引”和“引擎"。这有点类似于前面提到的 Shingle方法,区别是Shingle方法由于是子文档集合。因此会在内部对相同的 Shingle只保留一个 Shingle而去掉其他相同的从而保证集合的惟一性。

  “N-Gram”的分词方法虽然有效地避免字典分词的错误而导致索引不完整的情况。但是分词是为了在索引阶段尽量减少索引项,而“N-Gram”的方法,特别是“2-gram”的分词法却会带来大量的关键词索引项,因为例如“进搜”这样的词都做成了索引项,这是极不经济的。

  综上所述,没有一种分词方法能够解决全部的问题。虽然果用字典分词的方法作为主流的分词方法能够解决大部分的分词问题,但是字典总是滞后于语言的发展。很多新兴词汇需要每隔段时间才能成批地收录进词典。因此能够及时地、自动地、准确地发现新词才能把字典分词的威力发挥到最大。新词发现主要通过统计推断的方法来实现。


  通过统计学方法实现分词

虽然字典解决了分词的大部分问题,但是由于字典收录词数的限制,分词还需要具有新词发现的能力,即补充新发现的普遍被采用的流行的各种词汇到字典中,其中包括演艺明星姓名和网络流行语甚至股票代码和火车车次都可能成为新词发现的目标。

  事实上,发现新出现的词汇(学术上称为“新词发现”)相当复杂。需要很多基于概率及信息学方面的知识,在本书中不展开深入研究。基本的原理就是探索那些经常一同出现的字,总是相互出现的字很有可能构成一个词。为此需要分析和探索大量网页内容,这种分析和探索过程均离线完成,最后还会有一个人工确认的过程。

  即使到现在,中文分词技术还在不断地向前发展,还没有哪一个分词算法能够解决一切问题,语言学多样化的重重难关激励着更多的科学家展开更加深入的研究。中文分词的方法也被应用到英语处理,主要是手写体识别中。因为在识别手写体时,单词之间的空格变得比较模糊。中文分词方法可以帮助判别英语单词的边界,因此其研究工作越来越引起广泛的关注。

上一篇:网页查重

下一篇:Page Rank

评论区

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

相关内容

点击排行

随机新闻

评论排行榜