首页 > 技术文章 > 基于统计的分词技术

StevenL 2015-11-30 18:29 原文

-

 

1. N元文法模型

1.1 N元文法介绍

基于统计的方法理解一句话,就是要从一句话的每个位置全部候选字中选择一个最可能的句子,我们假定一个字只与前面的N-1个字有关,若没有N-1个音就补以空音。这种N-1阶的马尔可夫模型,在语音理解中又特别地被称为N元文法模型(N-gram Model)

 

 

N元统计计算语言模型的思想是:一个单词的出现与其上下文环境中出现的单词序列密切相关,第n个词的出现只与前面n-1个词相关,而与其它任何词都不相关。

 

1.2 利用N元文法来纠正中文文本错误

n-gram 是常用的统计语言模型,其中尤以二元文法Bigram)和三元文法Trigram)的应用最多。n-gram 模型统计各种语言的邻接共现规律,反映句子的局部范围是否符合语言规范,被广泛用于自动校对中的错误查找。在英文的自动校对中使用了词和词的Trigram,把以字、词、词性为共现元素的Bigram 应用于了中文自动校对中,取得了较好的效果。

由于局部错误在文本的错误中占多数,所以选择合适的查找局部错误的方法对自动校对来说至关重要。我们知道,对正确的语言现象,字词之间的邻接共现概率较高,对一些不符合语法规范的错误,字词之间的邻接共现概率较低。所以,可应用反映字词之间邻接共现规律的n-gram 模型,对句子进行局部分析,查找文本中的局部错误。

例如:

重要课题

重要

方法1:对训练语料先进行自动分词,然后统计二元词邻接共现的规律,相邻的两个词wiwi+1 记为一个词单元ui,下一单元ui+1= wi+1wi+2,该方法统计句子中词单元的绝对次数Count(ui),将其作为模型的参数;

方法2:使用方法的训练数据,以相邻三个词wiwi+1 wi+2 作为一个词单元ui,然后统计三元词邻接共现的绝对次数Count(ui),扩大词共现的邻接范围

方法3:由于三元词的共现存在很大程度的数据稀疏,这里,对方法2的统计结果进行平滑处理,采用的是插值平滑方法。

1.3 利用N元文法来提取中文文本特征

 

基本假设1.组成文本集合的汉字数量不随文本长度的增加而增加。

基本假设2.对于每一个汉字,由它组成韵词的数量是有限的。

词典无关分词方法的原理是统计文本中各种字序列的出现频率,将出现频率高的字序列判断为词。Canvar2-gram算法统计文本中依次提取的二字序列的出现次数,并提取出现频率高的2-gram作为词。JianYunNie在文献中用实验证明,2-gram算法表现出比基于词库分词更好的效果。Ogawat2-gram算法进行了改进,使其适用于日语。

上述方法大多对多字词关注不够,胥桂仙提出一种基于“最长字共现”原则的分词方法,在。定程度上解决了这一问题,但并未对其算法的正确性进行证明。另外,基于Apriori的算法的分词方法大致过程可描述如F:“合并步”组合频繁的n-gram形成候选(n+1)-gram:“剪枝步”扫描原始文本检查候选(n+1)gram是否频繁;最后,通过逐层出现频度的比较删除所有的sub-gram,即某(n-i)-gram属于n-gramH(n-i)-gramn-gram出现次数相同;如“数据库”中的“据库”。

基于Apriori的算法可发现任意长度的中文高频词,但它的不足是在合并频繁的n-gram时,由于某些纽词能力较强的字的影响,合并产生的候选(n+1)gram的数量将达到n-gram数最的平方,严重影响r“剪枝步”效率。这一问题称为“组合爆炸”。本文提出的新算法用iigram及其相邻字共同作为判断频繁集是否进行组合的标准,从而克服了“组合爆炸”问题,使特征提取全过程的时间复杂度降为O(CN)C是常数。

2. Aprior算法

 

其思想在于统计规则时根据频繁项的性质来简化提取次数。

3. Vertbi搜索算法

使用Vertbi算法,能够根据一个给定的观察序列和一个模型,在最佳的意义上确定内部状态序列。也就是说,根据可观察的事件序列,来推测不可观察的内部状态序列。

4. 统计方法

4.1 统计词频

从形式上看,词是稳定的字的组合,因此在上下文中,相邻的字同时出现的次数越多,就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好地反应成词的可信度。这就是词频统计的基本原理,这种技术发展至今已经有许多不同的统计原理。

 

4.2 中文词序列的最大概率值

《基于统计的中文姓名提取方法》-微软亚洲研究院

因为在中文句子的字与字之间没有间隔,所以很难将中文句子切分成有意义的词或短语。汉语通常用最大长度匹配或基于统计的方法来切分。最大长度匹配方法的基础是较长的中文词语比短的词语表达更多的意思的规则,而统计方法试图找到中文词序列的最大概率值

本系统中所用的模型包括二个部分:(1)模型产生Name-class,(2 )模型产生Name-class内部的第一个词,(3)模型产生Name-class内部的所有其它词。

Pr(NC|NC-1, w-1)

Pr(wfirst| NC ,NC-1)

其中NC表示当前的Name-class, NC-1表示前一个Name-class, w-1表示前一个类中最后一个字或词,wfirst表示当前类中的第一个字或词。Name-class内部产生所有非第一个词的模型:

Pr(w| w-1 ,NC)

分词采用的也是Viterbi束搜索算法,用来训练的语料有16亿个中文宁。我们用最大匹配算法建立初始系统,再使用滚动学习的方法训练基丁统计方法的分词系统,最终得到词与词间的二元概率模型。为了训练基于类的语言模10和特定的概率语法,实验中使用了均衡的中文语料。人约有2000万个汉字。这部分训练语料用基于规则的方法标注姓名后。再进行粗略的人J修改。实验中所指的中文姓名是用中文表示的中国姓名和外国姓名。

首先针对基于统计的方法.分别以字或词为单元来做比较。在实验中,以词为单元的做法是,在分好词的基础上,将词看作字,用与字单元同样的方法训练和识别。从上卜文的关系来看,以词为单元能够比以字为单元获得更多的信息。也能够得到更好的识别结果。但从识别结果来看,以字为单元的准确率和召回率总体上要好一点.土要的原因是以词为单元的实验中,所用的训练数据不足。如果训练数据的规模再人一点,以词为单元、基于统计的方法会得到更好的结果。

4.3 统计文本中的互信息熵

LuaYubinDai在文献中提出了基于统计文本“互信息熵”的方法,认为如果2-gram包含的信息少于它的构成字所包含的信息,则可能是词。

互信息(Mutual Information)是信息论里一种有用的信息度量,它是指两个事件集合之间的相关性,两个事件XY的互信息定义为:

I(X,Y) = H(X) + H(Y) - H(X,Y) ,其中 H(X,Y) 是联合熵(Joint Entropy),其定义为:H(X,Y) = - ∑ p(x,y)logp(x,y) 

互信息本来是信息论中的一个概念,用于表示信息之间的关系是两个随机变量统计相关性的测度,使用互信息理论进行特征抽取是基于如下假设:在某个特定类别出现频率高,但在其他类别出现频率比较低的词条与该类的互信息比较大。通常用互信息作为特征词和类别之问的测度,如果特征词属于该类的话,它们的互信息量最大。由于该方法不需要对特征词和类别之问关系的性质作任何假设,因此非常适合于文本分类的特征和类别的配准工作。

 

 

 

 

4.4 t-测试

 

t-测试主要用在交集型歧义分析处理中,用趋势的概念来决断字间的组合。

 

5. 想法

5.1 词的位置结构特征

一个词在句子中的结构可以分为:

开头

中间

结尾

在用N元语法统计词之间的关联信息时,是否可以考虑加入词的位置信息,这样在关联词判断出现失误时可以根据词出现的位置来确定其是否满足语法规则。更深一步,可以做语法分析,通过统计词的位置信息来推导该词在句子中所起的作用,从而形成句子结构规则,以后直接根据规则来判断?

5.2 词的完整性特征

一句话中每个词所起的作用都不同,分为:

单独成句:成语、俗语

后联型:如果、在

前联型:

前后联型:形容词、副词,例如—(清楚)

自由型:名词

可否根据一个词是不是必须连接词来做判断?比如,某些词必须用在别的词后面,有些词只能用在最前面,这种连接性具有某种传递特征,比如说话的时候:当听到“比如”时,我们知道后面肯定有内容,所以会等待继续说下去,那么在出现一个结束性的特征之前都会保持等待接收的状态。比如:

我们/需要/选择///合适//人选。

这句话中,第一个词“我们”不能单独成句,所以后面必然会接连其他词,当输入到“需要”时,将连接性传递过来,后面必须继续接连词才能构成有意义的句子。

但是还不成熟,因为中文语法很灵活,一个词可能用在最后也可能用在最前或是中间,怎样去确定这个信息尚待研究。

 

语料:

选择/最终/参与/人选

最终/人选//没有/确定

 

推荐阅读