***章节:基本介绍定义:分词技术是搜索引擎对用户提交的关键词串进行查询处理,然后根据用户的关键词串采用各种匹配方式的一种技术。概述要了解分词技术,首先要了解一个概念。即查询处理。当用户向搜索引擎提交查询时,搜索引擎接收到用户的信息并进行一系列处理。步骤如下:1、首先对数据库中的相关信息进行索引,即查询处理。那么查询处理是如何工作的呢?很简单,如果用户提交的字符串不超过3个汉字,就直接对数据库中的词汇进行索引。对于4个以上的汉字,先用空格、标点符号等分隔符将查询串分成若干个子查询串。例如。“什么是百度分词技术”我们将这个词分为“什么是百度分词技术”。这种分词方法称为反向匹配法。2.然后检查用户提供的词是否有重复词。如果有,它将被丢弃。默认是一个字。接下来检查用户提交的字符串中的字母和数字。将字母和数字视为一个词(如果有的话)。这是搜索引擎的查询处理。分词原理百度是如何分词的?现在的分词技术已经很成熟了。分为3种技术。字符串匹配的分词法这是一种常用的分词法,百度就是采用这种分词法。字符串匹配的分词方法又分为三种分词方法。(1).正向***匹配的方法是从左到右划分一个单词。比如:“我不知道你在说什么”这句话是如何用正向***匹配的方法来划分的?“我不明白你在说什么”。(2).反向***匹配法“我不知道你在说什么”反向***匹配法来划分上面的段落。“不,我知道,你在这里,说,什么”,这个比较分,反向***匹配方式是从右到左。(3).是最短路径分词方法。也就是说,一个段落中需要删减的字数是最少的。“我不知道你在说什么。”最短路径分词法是指如果把上面的句子分成最少的词。“我不知道,你来了,在说什么?”这是最短路径的切分方法,只分开了3个词。(4).双向***匹配法。并且有一种特殊情况,即关键字前后的组合内容被认为粘性差异不大,如果搜索结果中也包含这两组词,百度会在正向和正向进行分词匹配反向方向。词义分词法是一种用于机器语音判断的分词方法。很简单,进行句法语义分析,利用句法信息和语义信息处理歧义来分词。这种分词方法还不成熟,处于测试阶段。统计分词法根据词组的统计,会发现相邻的两个词出现频率最高,那么这个词就很重要。可以作为用户提供的字符串中的分隔符,起到分割单词的作用。比如“my,yours,many,here,this,there”等等,这些词出现的次数比较多,所以就把这些词分开来。第二章:中文分词技术一、为什么要进行中文分词?单词是可以独立移动的最小有意义的语言组件。英文单词以空格作为自然分隔符分隔,而中文以字符为基本书写单位,单词之间没有明显的区分标记。因此,汉语词分析是汉语信息处理的基础和关键。Lucene中对中文的处理是基于对单个字符的自动切分,或者说二进制切分。此外,还有最大分割(包括前向、后向、前后结合)、最小分割、全分割等。2、中文分词技术的分类我们讨论的分词算法可以分为三类:基于词典和词库匹配的分词方法;基于词频统计的分词方法和基于知识理解的分词方法。***方法利用词典匹配、汉语词法或其他汉语语言知识进行分词,如:***匹配法、最小分词法等。这种方法简单,分词效率高,但汉语现象复杂丰富,词典的完备性和规则的一致性使其难以适应大规模开放文本的分词。第二种基于统计的分词方法是根据词与词的统计信息,如相邻词之间的信息、词频及对应的共现信息等,应用于分词。由于这些信息是通过调查真实的语料库获得的,因此,基于统计的分词方法具有更好的实用性。下面简单介绍几种常用的方法:1)逐词遍历法。逐词遍历法在文章中逐词逐词搜索词典中的所有单词,按照从长到短的顺序,直到文章结束。也就是说,不管文章多短,字典有多大,都要遍历字典。这种方法效率比较低,一般不会用在比较大的系统中。2)基于词典和词库匹配的分词方法(机械分词法)。该方法将待分析的汉字字符串与“足够大”的机器词典中的词条按照一定的策略进行匹配。字符串,则匹配成功。识别一个词,根据扫描方向的不同分为正向匹配和反向匹配。根据不同长度的优先级匹配,分为***(最长)匹配和最小(最短)匹配。根据是否结合词性标注过程,可分为单纯的分词方法和分词与标注相结合的综合方法。常用的方法如下:a.最大匹配法(MaximumMatchingMethod)通常简称为MM法。其基本思想是:假设分词词典中最长的单词有i个汉字,以处理后文档当前字符串中的前i个字符作为匹配字段进行查词典。如果词典中存在这样的第i个词,则匹配成功,将匹配的字段分词为一个词。如果字典中找不到这样的词i,则匹配失败,将匹配字段中的最后一个词去掉,重新匹配剩余的字符串……以此类推,直到匹配成功,即是Segment一个词或剩余字符串的长度为零。这样就完成了一轮匹配,然后取下一个i字串进行匹配处理,直到扫描完文档。其算法描述如下:(1)初始化当前位置计数器,置0;(2)从当前计数器开始,取前2i个字符作为匹配域,直到文档结束;(3)如果匹配字段的长度不为0,则在字典中查找等值的长度进行匹配。如果匹配成功,则a)将匹配的字段作为一个词进行分词,放入分词统计表中;b)将当前位置计数器的值添加到匹配字段的长度;c)跳转到步骤2);否则a)如果匹配字段的最后一个字符是汉字,则①去掉匹配字段的最后一个字符;②将匹配字段的长度减2;否则①去掉匹配字段的最后一个字节;②将匹配字段的长度减1;b)跳转到步骤3);否则a)如果匹配字段中的最后一个字符是汉字,则将当前位置计数器的值加2;否则,将当前位置计数器的值加1;b)跳转到步骤2)。b.反向最大匹配法(ReverseMaximumMatchingMethod)通常简称为RMM法。RMM法的基本原理与MM法相同,区别在于分词的方向与MM法相反,使用的分词词典也不同。反向***匹配方法从被处理文档的末尾开始匹配扫描,每次取最后2i个字符(i字串)作为匹配字段。如果匹配失败,则删除匹配字段中的第一个词,继续匹配。相应的,它使用的分词词典是一个倒序词典,里面的每一个词条都会倒序存储。实际处理时,先对单据进行倒序,生成倒序单据。然后,根据逆序字典,可以通过正向***匹配的方式对逆序文档进行处理。由于汉语有很多偏向结构,如果从后往前匹配,可以适当提高准确率。因此,反向***匹配法的误差要小于正向***匹配法。统计结果表明,单纯使用正向***匹配的错误率为1/169,单纯使用反向***匹配的错误率为1/245。例如对“硕士研究与生产”这个领域进行分词,正向***匹配的结果会是“硕士生/生产”,而反向***匹配的方法是通过反向扫描得到正确的分词结果“硕士/研究/生产”。当然,***匹配算法是一种基于分词词典的机械分词方法。它不能根据文档上下文的语义特征进行分词,对词典的依赖性很强。所以在实际使用中,难免会造成一些分词错误,为了提高分词系统的准确性,可以采用正向***匹配法和反向***匹配法相结合的分词方案(即双向匹配法,见(4).)C.最少切分法:使每个句子切出的词数最少。D、双向匹配法:结合正向***匹配法和反向***匹配法。首先根据标点符号对文档进行粗略的切分,将文档分解成几个句子,然后使用正向***匹配法和反向***匹配法对这些句子进行扫描切分。如果两种分词方法得到的匹配结果相同,则认为分词正确,否则按最小集处理。3).全分词和基于词频统计的分词方法基于词频统计的分词方法是一种全分词方法。在讨论这种方法之前,我们首先要了解一下全切分的相关内容。全分割全分割需要输入序列所有可接受的分割形式,而部分分割只得到一种或几种可接受的分割形式。由于部分分词忽略了其他可能的分词形式,因此无论采用何种歧义校正策略,基于部分分词的分词方法都可能漏掉正确的分词,导致分词错误或失败。基于全分词的分词方法,由于全分词得到了所有可能的分词形式,从而从根本上避免了可能的分词形式的遗漏,克服了部分分词方法的缺陷。全分词算法可以获得所有可能的分词形式,其句子覆盖率和分词覆盖率均为100%,但全分词词在文本处理中应用并不广泛,原因如下:1)全分词算法仅是获得正确分词的前提,由于全分词不具备歧义检测功能,最终分词结果的正确性和完整性取决于独立的歧义处理方法,如果评价错误,也会导致错误的结果.2)全切分的切分结果数量随着句子长度的增长呈指数增长。一方面,会造成巨大的无用数据淹没存储数据库;另一方面,当句子长度达到一定长度时,由于分词形式过多,导致分词效率严重下降。基于词频统计的分词方法:这是一种全分词方法。它不依赖字典,而是同时统计文章中任意两个单词出现的频率。频率越高,它越有可能是一个词。它首先切分所有可能匹配词汇表的词,并使用统计语言模型和决策算法来确定最佳切分结果。它的优点是可以找出所有的歧义,很容易抽取新词。4).基于知识理解的分词方法。该方法主要以句法语法分析为基础,结合语义分析,通过分析上下文提供的信息来划定词语。它通常包括三个部分:分词子系统、句法语义子系统和通用控制部分。分词子系统在总控制部分的协调下,获取词、句等的句法语义信息,判断分词的歧义。此类方法试图赋予机器理解人类的能力,需要使用大量的语言知识和信息。由于汉语语言知识的普遍性和复杂性,很难将各种语言信息组织成机器可以直接阅读的形式。因此,目前基于知识的分词系统还处于试验阶段。5).一种新的分词方法并行分词方法:这种分词方法是借助包含分词词典的流水线进行的。比较和匹配过程是逐步进行的。每一步都可以将进入管道的单词与词典中的相应单词进行比较。单词进行了比较。由于同时对多个词进行比较匹配,可以大大提高分词速度。这种方法涉及多级内部编码理论和流水线字典数据结构。
