麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
1106
2023-04-26
浅谈数据处理中的分词技术
***章:基础介绍
定义:分词技术就是搜索引擎针对用户提交查询的关键词串进行的查询处理后根据用户的关键词串用各种匹配方法进行的一种技术。
概述
我们要理解分词技术先要理解一个概念。那就是查询处理,当用户向搜索引擎提交查询后,搜索引擎接收到用户的信息要做一系列的处理。步骤如下所示:
1.首先是到数据库里面索引相关的信息,这就是查询处理。
那么查询处理又是如何工作的呢?很简单,把用户提交的字符串没有超过3个的中文字,就会直接到数据库索引词汇。超过4个中文字的,首先用分隔符比如空格,标点符号,将查询串分割成若干子查询串。
举个例子。“什么是百度分词技术” 我们就会把这个词分割成“ 什么是,百度,分词技术。”这种分词方法叫做反向匹配法。
2.然后再看用户提供的这个词有没有重复词汇
如果有的话,会丢弃掉,默认为一个词汇。接下来检查用户提交的字符串,有没有字母和数字。如果有的话,就把字母和数字认为一个词。
这就是搜索引擎的查询处理。
分词的原理
百度是如何来分词的呢?分词技术现今非常成熟了。分为3种技术。
字符串匹配的分词方法
这是种常用的分词法,百度就是用此类分词。字符串匹配的分词方法,又分为3种分词方法。
(1).正向***匹配法就是把一个词从左至右来分词。举个例子:”不知道你在说什么”这句话采用正向***匹配法是如何分的呢?“不知道,你,在,说什么”。
(2).反向***匹配法“不知道你在说什么”反向***匹配法来分上面这段是如何分的。“不,知道,你在,说,什么”,这个就分的比较多了,反向***匹配法就是从右至左。
(3).就是最短路径分词法。就是说一段话里面要求切出的词数是最少的。“不知道你在说什么”最短路径分词法就是指,把上面那句话分成的词要是最少的。“不知道,你在,说什么”,这就是最短路径分词法,分出来就只有3个词了。
(4).双向***匹配法。而有一种特殊的情况,就是关键词前后组合内容被认为粘性相差不大,而搜索结果中也同时包含这两组词的话,百度会进行正反向同时进行分词匹配。
词义分词法
就是一种机器语音判断的分词方法。很简单,进行句法、语义分析,利用句法信息和语义信息来处理歧义现象来分词,这种分词方法,现在还不成熟,处在测试阶段。统计分词法
根据词组的统计,就会发现两个相邻的字出现的频率最多,那么这个词就很重要。就可以作为用户提供字符串中的分隔符,这样来分词。
比如,“我的,你的,许多的,这里,这一,那里”等等,这些词出现的比较多,就从这些词里面分开来。
第二章:中文分词技术
一、为什么要进行中文分词?
词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格作为自然分界符的,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的基础与关键。
Lucene中对中文的处理是基于自动切分的单字切分,或者二元切分。除此之外,还有***切分(包括向前、向后、以及前后相结合)、最少切分、全切分等等。
二、中文分词技术的分类
我们讨论的分词算法可分为三大类:基于字典、词库匹配的分词方法;基于词频度统计的分词方法和基于知识理解的分词方法。
***类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:***匹配法、最小分词方法等。这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的大规模文本的分词处理。第二类基于统计的分词方法则基于字和词的统计信息,如把相邻字间的信息、词频及相应的共现信息等应用于分词,由于这些信息是通过调查真实语料而取得的,因而基于统计的分词方法具有较好的实用性。
下面简要介绍几种常用方法:
1)逐词遍历法。
逐词遍历法将词典中的所有词按由长到短的顺序在文章中逐字搜索,直至文章结束。也就是说,不管文章有多短,词典有多大,都要将词典遍历一遍。这种方法效率比较低,大一点的系统一般都不使用。
2)基于字典、词库匹配的分词方法(机械分词法)
这种方法按照一定策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功。识别出一个词,根据扫描方向的不同分为正向匹配和逆向匹配。根据不同长度优先匹配的情况,分为***(最长)匹配和最小(最短)匹配。根据与词性标注过程是否相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的方法如下:
a、***正向匹配法 (MaximumMatchingMethod)通常简称为MM法。其基本思想为:假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字串中的前i个字作为匹配字段,查找字典。若字典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来。如果词典中找不到这样的一个i字词,则匹配失败,将匹配字段中的***一个字去掉,对剩下的字串重新进行匹配处理…… 如此进行下去,直到匹配成功,即切分出一个词或剩余字串的长度为零为止。这样就完成了一轮匹配,然后取下一个i字字串进行匹配处理,直到文档被扫描完为止。
其算法描述如下:(1)初始化当前位置计数器,置为0;(2)从当前计数器开始,取前2i个字符作为匹配字段,直到文档结束;(3)如果匹配字段长度不为0,则查找词典中与之等长的作匹配处理。如果匹配成功,则,a)把这个匹配字段作为一个词切分出来,放入分词统计表中;b)把当前位置计数器的值加上匹配字段的长度;c)跳转到步骤2);否则a) 如果匹配字段的***一个字符为汉字字符,则①把匹配字段的***一个字去掉;②匹配字段长度减2;否则①把匹配字段的***一个字节去掉;②匹配字段长度减1;b)跳转至步骤3);否则a)如果匹配字段的***一个字符为汉字字符,则 当前位置计数器的值加2;否则当前位置计数器的值加1;b)跳转到步骤2)。
b、逆向***匹配法 (ReverseMaximumMatcingMethod)通常简称为RMM法。RMM法的基本原理与MM法相同 ,不同的是分词切分的方向与MM法相反,而且使用的分词辞典也不同。逆向***匹配法从被处理文档的末端开始匹配扫描,每次取最末端的2i个字符(i字字串)作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。相应地,它使用的分词词典是逆序词典,其中的每个词条都将按逆序方式存放。在实际处理时,先将文档进行倒排处理,生成逆序文档。然后,根据逆序词典,对逆序文档用正向***匹配法处理即可。
由于汉语中偏正结构较多,若从后向前匹配,可以适当提高精确度。所以,逆向***匹配法比正向***匹配法的误差要小。统计结果表明 ,单纯使用正向***匹配的错误率为 1/16 9,单纯使用逆向***匹配的错误率为 1/245。例如切分字段“硕士研究生产”,正向***匹配法的结果会是“硕士研究生 / 产”,而逆向***匹配法利用逆向扫描,可得到正确的分词结果“硕士 / 研究 / 生产”。
当然,***匹配算法是一种基于分词词典的机械分词法,不能根据文档上下文的语义特征来切分词语,对词典的依赖性较大,所以在实际使用时,难免会造成一些分词错误,为了提高系统分词的准确度,可以采用正向***匹配法和逆向***匹配法相结合的分词方案(即双向匹配法,见(四)。)
C、最少切分法:使每一句中切出的词数最小。
D、双向匹配法:将正向***匹配法与逆向***匹配法组合。先根据标点对文档进行粗切分,把文档分解成若干个句子,然后再对这些句子用正向***匹配法和逆向***匹配法进行扫描切分。如果两种分词方法得到的匹配结果相同,则认为分词正确,否则,按最小集处理。
3). 全切分和基于词的频度统计的分词方法
基于词的频度统计的分词方法是一种全切分方法。在讨论这个方法之前我们先要明白有关全切分的相关内容。
全切分
全切分要求获得输入序列的所有可接受的切分形式,而部分切分只取得一种或几种可接受的切分形式,由于部分切分忽略了可能的其他切分形式,所以建立在部分切分基础上的分词方法不管采取何种歧义纠正策略,都可能会遗漏正确的切分,造成分词错误或失败。而建立在全切分基础上的分词方法,由于全切分取得了所有可能的切分形式,因而从根本上避免了可能切分形式的遗漏,克服了部分切分方法的缺陷。
全切分算法能取得所有可能的切分形式,它的句子覆盖率和分词覆盖率均为100%,但全切分分词并没有在文本处理中广泛地采用,原因有以下几点:
1)全切分算法只是能获得正确分词的前提,因为全切分不具有歧义检测功能,最终分词结果的正确性和完全性依赖于独立的歧义处理方法,如果评测有误,也会造成错误的结果。
2)全切分的切分结果个数随句子长度的增长呈指数增长,一方面将导致庞大的无用数据充斥于存储数据库;另一方面当句长达到一定长度后,由于切分形式过多,造成分词效率严重下降。
基于词的频度统计的分词方法:
这是一种全切分方法。它不依靠词典,而是将文章中任意两个字同时出现的频率进行统计,次数越高的就可能是一个词。它首先切分出与词表匹配的所有可能的词,运用统计语言模型和决策算法决定***的切分结果。它的优点在于可以发现所有的切分歧义并且容易将新词提取出来。
4).基于知识理解的分词方法。
该方法主要基于句法、语法分析,并结合语义分析,通过对上下文内容所提供信息的分析对词进行定界,它通常包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断。这类方法试图让机器具有人类的理解能力,需要使用大量的语言知识和信息。由于汉语语言知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形式。因此目前基于知识的分词系统还处在试验阶段。
5).一种新的分词方法
并行分词方法:这种分词方法借助于一个含有分词词库的管道进行 ,比较匹配过程是分步进行的 ,每一步可以对进入管道中的词同时与词库中相应的词进行比较 ,由于同时有多个词进行比较匹配 ,因而分词速度可以大幅度提高。这种方法涉及到多级内码理论和管道的词典数据结构。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。