系统学习NLP(十)–词性标注算法综述

系统学习NLP(十)–词性标注算法综述词性标注:将句子中兼类词的词性根据上下文唯一地确定下来。词性(part-of-speech)是词汇基本的语法属性,通常也称为词类。词性标注就是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程,是中文信息处理面临的重要基础性问题。和分词一样,中文词性标注也存在着很多难点,比如一词多词性,未登录词处理等诸多问题。通过基于字符串匹配的字典查询算法和基于统计的词性标…

      词性标注:将句子中兼类词的词性根据上下文唯一地确定下来。词性(part-of-speech)是词汇基本的语法属性,通常也称为词类。词性标注就是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程,是中文信息处理面临的重要基础性问题。

      和分词一样,中文词性标注也存在着很多难点,比如一词多词性,未登录词处理等诸多问题。通过基于字符串匹配的字典查询算法和基于统计的词性标注算法,可以很好的解决这些问题。一般需要先将语句进行分词,然后再进行词性标注。

词性标注难点

词性作为词语基本的语法属性,是词语和语句的关键性特征。词性种类也很多,ICTCLAS 汉语词性标注集归纳的词性种类及其表示:

ICTCLAS 汉语词性标注集

代码 名称 帮助记忆的诠释
Ag 形语素 形容词性语素。形容词代码为a,语素代码g前面置以A。
a 形容词 取英语形容词adjective的第1个字母。
ad 副形词 直接作状语的形容词。形容词代码a和副词代码d并在一起。
an 名形词 具有名词功能的形容词。形容词代码a和名词代码n并在一起。
b 区别词 取汉字“别”的声母。
c 连词 取英语连词conjunction的第1个字母。
Dg 副语素 副词性语素。副词代码为d,语素代码g前面置以D。
d 副词 取adverb的第2个字母,因其第1个字母已用于形容词。
e 叹词 取英语叹词exclamation的第1个字母。
f 方位词 取汉字“方” 的声母。
g 语素 绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。
h 前接成分 取英语head的第1个字母。
i 成语 取英语成语idiom的第1个字母。
j 简称略语 取汉字“简”的声母。
k 后接成分  
l 习用语 习用语尚未成为成语,有点“临时性”,取“临”的声母。
m 数词 取英语numeral的第3个字母,n,u已有他用。
Ng 名语素 名词性语素。名词代码为n,语素代码g前面置以N。
n 名词 取英语名词noun的第1个字母。
nr 人名 名词代码n和“人(ren)”的声母并在一起。
ns 地名 名词代码n和处所词代码s并在一起。
nt 机构团体 “团”的声母为t,名词代码n和t并在一起。
nz 其他专名 “专”的声母的第1个字母为z,名词代码n和z并在一起。
o 拟声词 取英语拟声词onomatopoeia的第1个字母。
p 介词 取英语介词prepositional的第1个字母。
q 量词 取英语quantity的第1个字母。
r 代词 取英语代词pronoun的第2个字母,因p已用于介词。
s 处所词 取英语space的第1个字母。
Tg 时语素 时间词性语素。时间词代码为t,在语素的代码g前面置以T。
t 时间词 取英语time的第1个字母。
u 助词 取英语助词auxiliary 的第2个字母,因a已用于形容词。
Vg 动语素 动词性语素。动词代码为v。在语素的代码g前面置以V。
v 动词 取英语动词verb的第一个字母。
vd 副动词 直接作状语的动词。动词和副词的代码并在一起。
vn 名动词 指具有名词功能的动词。动词和名词的代码并在一起。
w 标点符号  
x 非语素字 非语素字只是一个符号,字母x通常用于代表未知数、符号。
y 语气词 取汉字“语”的声母。
z 状态词 取汉字“状”的声母的前一个字母。

词性标注中的难点主要有:

  1. 相对于英文,中文缺少词形态变化,不能从词的形态来识别词性
  2. 一词多词性很常见。统计发现,一词多词性的概率高达22.5%。而且越常用的词,多词性现象越严重。比如“研究”既可以是名词(“基础性研究”),也可以是动词(“研究计算机科学”)。
  3. 词性划分标准不统一。词类划分粒度和标记符号等,目前还没有一个广泛认可的统一的标准。比如LDC标注语料中,将汉语一级词性划分为33类,而北京大学语料库则将其划分为26类。词类划分标准和标记符号的不统一,以及分词规范的含糊,都给词性标注带来了很大的困难。jieba分词采用了使用较为广泛的ICTCLAS 汉语词性标注集规范。
  4. 未登录词问题。和分词一样,未登录词的词性也是一个比较大的课题。未登录词不能通过查找字典的方式获取词性,可以采用HMM隐马尔科夫模型等基于统计的算法。
     

一、基于规则的词性标注方法

1.原理

  利用事先制定好的规则对具有多个词性的词进行消歧,最后保留一个正确的词性。基于规则的词性标注方法是人们提出较早的一种词性标注方法,其基本思想是按兼类词(拥有多种可能词性的词)搭配关系和上下文语境建造词类消歧规则,早期的规则一般由人编写。然而随着语料库规模的逐步增大,以人工提取规则的方式显然是不现实的,于是人们提出了基于机器学习的规则自动提取方法。

        基于规则的错误驱动的机器学习方法的基本思想是,首先运用初始状态标注器标识未标注的文本,由此产生已标注的文本。文本一旦被标注以后,将其与正确的标注文本进行比较,学习器可以从错误中学到一些规则,从而形成一个排序的规则集,使其能够修正已标注的文本,使标注结果更接近于参考答案。

         这样,在所有学习到的可能的规则中,搜索那些使已标注文本中的错误数减少最多的规则加入到规则集,并将该规则用于调整已标注的文本,然后对已标注的语料重新打分(统计错误数)。不断重复该过程,直到没有新的规则能够使已标注的语料错误数减少。最终的规则集就是学习到的规则结果。

          这种方法的标注速度要快于人工,但仍然存在着学习时间过长的问题,改进方法是,在算法的每次迭代过程中,只调整受到影响的小部分规则,而不需要搜索所有的转换规则。因为每当一条获取的规则对训练语料实施标注后,语料中只有少数词性会发生改变,而只有在词性发生改变的地方,才影响与该位置相关的规则的得分。

2.步骤

  ①对词性歧义建立单独的标注规则库

  ②标注时,查词典,如果某个词具有多个词性,则查找规则库,对具有相同模式的歧义进行排歧,否则保留。

  ③程序和规则库是独立的两部分。

3.例子

  TAGGIT系统

二、基于统计的词性标注方法

1、原理

  先对部分进行手工标注,然后对新的语料使用统计方法进行自动标注。

2、语言模型

  (1)一个语言句子的信息量

 一个句子s = w1w2……wn的信息量量可以用熵来表示:H = – ∑p(w1,w2,…,wn) log p(w1,w2,…,wn),概率p(s)的大小反映了这个词串在该语言中的使用情况。

  (2)n元语法模型

①一元语法,wi的出现独立于历史

  p(w1,w2,…,wn) = p(w1)*p(w2)*p(w3)…p(wn)

②二元语法,wi的出现决定于wi-1

  p(w1,w2,…,wn) = p(w1)*p(w2|w1)*p(w3|w2)…p(wn|wn-1)

③三元语法,wi的出现决定于wi-1,wi-2

  p(w1,w2,…,wn) =p(w1)*p(w2|w1)*p(w3|w2,w1)…p(wn|wn-1,wn-2)

  (3)数据平滑——Laplace法则

系统学习NLP(十)--词性标注算法综述

3、词性标注模型

①另W=w1w2….wn是由n个词组成的词串,T=t1t2…tn是词串W对应的标注串,其中tk是wk的词性标注。

②根据HMM模型,计算使得条件概率p(T|W)值最大的那个T’= argmaxp(T|W)

③根据贝叶斯公式:p(T|W) = P(T)*P(W|T)/P(W)。由于词串不变,p(W)不影响总的概率值,因此继续简化为:

      p(T|W) = P(T)*P(W|T),其中p(T) = p(t1|t0)*p(t2|t1,t0)…p(ti|ti-1),

根据一阶HMM独立性假设,可得:p(T) = p(t1|t0)*p(t2|t1)…p(ti|ti-1),

即P(ti|ti-1) = 训练语料中ti出现在ti-1之后的次数/训练语料中ti-1出现的总次数。

③根据贝叶斯公式:p(W|T) = p(w1|t1)*p(w2|t2,t1)…p(wi|ti,ti-1,…,t1)。根据一阶HMM独立性假设,可得p(W|T) = p(w1|t1)*p(w2|t2)…p(wi|ti)。所以

系统学习NLP(十)--词性标注算法综述

4、词典的预处理

  将已标注好词性的训练语料集整理出:①每个词在不同词性下出现的次数;②每个词性在语料集中出现的总次数。

算法介绍

  一、CLAWS算法(Contituent-Likelihood Automatic Word-tagging System 成分似然性自动词性标注系统) 

1、介绍

  早在60年代,国外学者就开始研究英语文本的自动词类标注问题,提出了一些消除兼类词歧义的方法,建立了一些自动词性标注系统。1983年,里奇(G. Leech)和加塞德(R. Garside)等人建立了CLAWS系统,用概率统计的方法来进行自动词性标注,他们使用了133×133的词类共现概率矩阵,通过统计模型来消除兼类词歧义,自动标注的正确率达到了96%.

2、主要原理

  先从待标注的LOB语料库中选出来部分语料,叫做“训练集”(Training Set), 对训练集中的语料逐词进行词性的人工标注, 然后利用计算机对训练集中的任意两个相邻标记的同现概率进行统计,形成一个相邻标记的同现概率矩阵。

  进行自动标注时,系统从输入文本中顺序地截取一个有限长度的词串,这个词串的首词和尾词的词性应该是唯一的,这样的词串叫做跨段(span),记为W0,W1,W2,…,Wn,Wn+1。其中, W0和Wn+1 都是非兼类词, W1,W2,…,Wn 是n个兼类词。

  利用同现概率矩阵提供的数据来计算这个跨段中由各个单词产生的每个可能标记的概率积,并选择概率积最大的标记串作为选择路径(path),以这个路径作为最佳结果输出。

3、算法描述

①一个句子首先用全分割法或Viterbi算法分割成N个词;

②这N个词,首先查词典,标上所有可能的词类;

③N个相邻的词每一种词类的排列叫做一条路径;

④求出具有最大似然估计值的那条路径,即最佳路径;

⑤最佳路径上所对应的标注为这N个词的标注。

4、举例分析

句子:一把青菜

①用全分割法或Viterbi法将句子分割成: 一,把,青菜

②找出每个词包含的词性:一/s  把/n/v/l  青菜/n

③计算每一条路径的概率:

  P(s,n,n|一,把,青菜) =P(一|s)* P(把|n)*P(青菜|n)

  P(s,v,n|一,把,青菜) =P(一|s)* P(把|v)*P(青菜|n)

  P(s,l,n|一,把,青菜) =P(一|s)* P(把|l)*P(青菜|n)

其中:系统学习NLP(十)--词性标注算法综述

④取概率最大的那条路径为结果。

5、优点分析

  通过统计模型来消除兼类词歧义,自动标注的正确率达到了96%.

6、缺点分析

      需要复杂的数据结构来存储路径,保存概率结果,空间复杂度和时间复杂度都非常高,路径数是一个句子中的所有词包含的词性个数相乘的结果。

7、改良方向

      1988年,德洛斯(S. J. DeRose)对CLAWS系统作了一些改进,利用线性规划的方法来降低系统的复杂性,提出了VOLSUNGA算法,大大地提高了处理效率,使自动词性标注的正确率达到了实用的水平。

  二、VOLSUNGA 词性标注算法 

1、主要原理

  VOLSUNGA算法从左到右,对于当前考虑的词,只保留通往该词的每个词类的最佳路径,然后继续将这些路径与下个词的所有词类标记进行匹配,分别找出通往这个词的每个标记的最佳路径,后面的词依次重复。本质上相当于贪心算法中的单源最短路径Dijkstra算法。

2、算法描述

①一个句子首先用全分割法或Viterbi算法分割成N个词

②这N个词,首先查词典,标上所有可能的词类

③N个相邻的词中每一种词类的排列叫做一条路径

④遍历所有词,每个词都计算各个词性下的一阶HMM值,取值最大的为最终词性,保存该词性和概率,舍弃其他词性。

3、优点分析

①对CLAWS算法的改进主要有两个方面:

(a)在最佳路径的选择方面,不是最后才来计算概率积最大的标记串,而是沿着从左至右的方向,采用“步步为营”的策略,对于当前考虑的词,只保留通往该词的最佳路径,舍弃其他路径,然后再从这个词出发,将这个路径同下一个词的所有标记进行匹配,继续找出最佳的路径,舍弃其他路径,这样一步一步地前进,直到整个跨段走完,得出整个跨段的最佳路径作为结果输出。

(b)根据语料库统计出每个词的相对标注概率(Relative Tag Probability),并用这种相对标注概率来辅助最佳路径的选择。

②VOLSUNGA算法大大地降低了CLAWS算法的时间复杂度和空间复杂度,提高了自动词性标注的准确率。

4、缺点分析

  CLAWS算法和VOLSUNGA算法都是基于统计的自动标注方法,仅仅根据同现概率来标注词性。但是,同现概率仅只是最大的可能而不是唯一的可能,以同现概率来判定兼类词,是以舍弃同现概率低的可能性前提的。

5、改进方向

  为了提高自动词性标注的正确率,还必须辅之以基于规则的方法,根据语言规则来判定兼类词。

总结:

1.词性标注(Part-Of-Speech tagging, POS tagging)也被称为语法标注(grammatical tagging)或词类消疑(word-category disambiguation),是语料库语言学(corpus linguistics)中将语料库内单词的词性按其含义和上下文内容进行标记的文本数据处理技术 。

2.词性标注主要被应用于文本挖掘(text mining)和NLP领域,是各类基于文本的机器学习任务,例如语义分析(sentiment analysis)和指代消解(coreference resolution)的预处理步骤。

3.词性标注的机器学习算法主要为序列模型,包括HMM、最大熵马尔可夫模型(Maximum Entropy Markov Model, MEMM)、条件随机场(Conditional random fields,CRFs)等广义上的马尔可夫模型成员 ,以及以循环神经网络(Recurrent Neural Network, RNN)为代表的深度学习算法 。此外,一些机器学习的常规分类器,例如支持向量机(Support Vector Machine, SVM)在改进后也可用于词性标注  。

今天的文章系统学习NLP(十)–词性标注算法综述分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/33757.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注