您的当前位置:首页正文

中文分词切词超详细分析

2022-02-21 来源:星星旅游
前面我们讲个搜索引擎如何搜集网页,今天说下第二个过程网页预处理,其中中文分词就显得尤其重要,下面就详细讲解一下搜索引擎是怎么进行网页预处理的:

网页预处理的第一步就是为原始网页建立索引,有了索引就可以为搜索引擎提供网页快照功能;接下来针对索引网页库进行网页切分,将每一篇网页转化为一组词的集合;最后将网页到索引词的映射转化为索引词到网页的映射,形成倒排文件(包括倒排表和索引词表),同时将网页中包含的不重复的索引词汇聚成索引词表。如下图所示:

一个原始网页库由若干个记录组成,每个记录包括记录头部信息(HEAD)和数据(DATA),每个数据由网页头信息(header),网页内容信息(content)组成。索引网页库的任务就是完成给定一个URL,在原始网页库中定位到该URL所指向的记录。

如下图所示:

对索引网页库信息进行预处理包括网页分析和建立倒排文件索引两个部分。中文自动分词是网页分析的前提。文档由被称作特征项的索引词(词或者字)组成,网页分析是将一个文档表示为特征项的过程。在对中文文本进行自动分析前,先将整句切割成小的词汇单元,即中文分词(或中文切词)。切词软件中使用的基本词典包括词条及其对应词频。

自动分词的基本方法有两种:基于字符串匹配的分词方法和基于统计的分词方法。

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

这种方法又称为机械分词方法,它是按照一定的策略将待分析的汉字串与一个充分大

的词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。

按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大或最长匹配,和最小或最短匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:

正向最大匹配;

逆向最大匹配;

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

还可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。

对于机械分词方法,可模型化表示为ASM(d,a,m),即 Automatic Segmentation Model。其中,

d:匹配方向,+表示正向,-表示逆向;

a:每次匹配失败后增加或减少字串长度(字符数),+为增字,-为减字;

m:最大或最小匹配标志,+为最大匹配,-为最小匹配。

例如,ASM(+, -, +)就是正向减字最大匹配法(Maximum Match based approach,MM),ASM(-, -, +)就是逆向减字最大匹配法(简记为RMM方法)。

2)基于统计的分词方法

从形式上看,词是稳定的字的组合,因此上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。

可以对语料中相邻共现的各个字的组合的频度进行统计,计算它们的互现信息。

互现信息体现类汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时,便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计,不需要切分词典,因而又叫做无词典分词法或统计取词方法。

实际应用的统计分词系统都要使用一部基本的分词词典(常用词词典)进行串匹配分词,同时使用统计方法识别一些新的词,即将串频统计和串匹配结合起来,既发挥匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。

正向减字最大匹配法

这是主要的中文切词方法,正向减字最大匹配法切分的过程是从自然语言的中文语句中提取出设定的长度字串,与词典比较,如果在词典中,就算一个有意义的词串,并用分隔符分隔输出,否则缩短字串,在词典中重新查找(词典是预先定义好的)。

算法要求为:

输入:中文词典,待切分的文本d,d中有若干被标点符号分割(我们可以利用标点符号协助搜索引擎准确分词)的句子s1,设定的最大词长MaxLen。

输出:每个句子s1被切为若干长度不超过MaxLen的字符串,并用分隔符分开,记为s2,所有s2的连接构成d切分之后的文本。

该中文分词的算法思想是:事先将网页预处理成每行是一个句子的纯文本格式。从d中逐句提取,对于每个句子s1从左向右以MaxLen为界选出候选字串w,如果w在词典中,处理下一个长为MaxLen的候选字段;否则,将w最右边一个字去掉,继续与词典比

较;s1切分完之后,构成词的字符串或者此时w已经为单字,用分隔符隔开输出给s2。从s1中减去w,继续处理后续的字串。s1处理结束,取T中的下一个句子赋给s1,重复前述步骤,直到整篇文本d都切分完毕。其中MaxLen是一个经验值,通常设为8个字节(即4个汉字),MaxLen过小,长词会被切断;过长,又会导致切分效率低。

除了上述从左到右切分一遍句子,还从右到左切分一遍,对于两遍切分结果不同的字符串,用回溯法重新处理。例如“学历史知识”顺向扫描的结果是:“学历/ 史/ 知识/”,通过查词典知道“史”不在词典中,于是进行回溯,将“学历”的尾字“历”取出与后面的“史”组成“历史”,再查词典,看“学”,“历史”是否在词典中,如果在,就将分词结果调整为:“学/ 历史/ 知识/”。

为网页建立全文索引是网页预处理的核心部分,包括分析网页和建立倒排文件。二者是顺序进行,先分析网页,后建立倒排文件(也称为反向索引)。如下图所示:

分析网页过程包括提取正文信息(指过滤网页标签,scripts,css,java,embeddedobjects,comments等信息)和把正文信息切分为索引词两个阶段。形成的结果是文档号到索引词的对应关系表。每条记录中包括文档编号,索引词编号,索引词在文档中的位置信息,“索引词载体信息”(这些信息标识类文档中索引词的字体和大小等信息,或称载体信息)。

得到网页正文信息,调用切词模块,获得正向索引。每一个网页由两行信息组成,第

一行是文档编号,第二行是使用切分模块将文档正文信息划分成索引词后的集合。

如上图所示,创建倒排索引包括建立正向索引和反向索引。分析完网页后,得到以网页编号为主键的正向索引表。然后将相同索引词对应的数据合并到一起,就得到了以索引词为主键的最终的倒排文件索引,即反向索引.

最后就可以为最后一个阶段信息查询服务提供服务了, 传递到信息查询服务阶段的数据包括索引网页库和倒排文件,倒排文件中包括倒排表和索引词表。查询代理接受用户输入的查询短语,切分后,从索引词表和倒排文件中检索获得包含查询短语的文档并返回给用户。这样搜索引擎的三个阶段就算完成了.

因篇幅问题不能全部显示,请点此查看更多更全内容