汉语自动分词
定义
在汉语文本中的词与词之间自动加上空格或者其他边界标记。
主要困难/基本问题
- 词是什么,即汉语分词规范问题。
由于没有同一清晰的界定标准,单字词与词素、词与短语之间的划界非常困难。 - 词由于语境的不同而含义不同,导致划分方式也不同;即歧义切分问题。
切分歧义类型可以分成交集型切分歧义、组合型切分歧义以及混合型。
前者又可以称之为偶发歧义。形式为AJB,其中AJ可以组成词语、JB也可以组成词语。
后者又可以称之为固有歧义。形式为AB,其中A、B、AB都可以单独成词。 - 未登录词问题。
包括九成的专有名词(命名实体)和一成的新兴名词。
专有名词的识别又称之为命名实体识别,是语言处理中非常重要的一个步骤。
主要困难点在于长度不定,并且可能和上下文存在交集型歧义切分问题。
基本分词方法
解决歧义切分问题
主要思路在于从统计意义上从各种可能的方案里选择一个最佳的可能。
基于统计语言模型的分词方法
主要思路如下:
首先定义“词”的定义;
按照上述定义将文本划分成为不同的词语序列W;
求得使得
P
(
W
∣
S
)
P(W|S)
P(W∣S)最大的词语序列W,即
a
r
g
m
a
x
W
P
(
W
∣
S
)
argmax_W P(W|S)
argmaxWP(W∣S)。
下面为公式推导:
P ( W ∣ S ) = P ( S ∣ W ) P ( W ) P ( S ) P(W|S)=\frac{P(S|W)P(W)}{P(S)} P(W∣S)=P(S)P(S∣W)P(W)
将词序列W转换为类序列C,并且P(S)仅仅为归一化因子,所以得到:
a r g m a x W P ( W ∣ S ) = a r g m a x C P ( C ) P ( S ∣ C ) argmax_W P(W|S)=argmax_C P(C)P(S|C) argmaxWP(W∣S)=argmaxCP(C)P(S∣C)
其中,P( C )为语言模型,可以使用前一章的方法计算;
在独立性假设下,
P
(
S
∣
C
)
≈
Π
i
P
(
s
i
∣
c
i
)
P(S|C)\approx \Pi_i P(s_i|c_i)
P(S∣C)≈ΠiP(si∣ci)
模型的训练方法如下:
按照正向最大匹配法切分训练语料,根据该语料采用最大似然估计方法估计统计模型的概率参数,使用得到的统计模型重新切分和标注,直到系统性能不再有明显的提高。
N-最短路径方法
采用分阶段的方式来处理自动分词,首先粗略划分,然后再细致的处理歧义排除和未登录词的识别问题。
本算法主要目标是得到召回率和准确率较高的词语粗分模型。
切分原则是使得得到的词语序列长度最短。
主要思路如下:
构造字串的有向无环模型,边代表着字/词,节点代表着状态。
相邻的字间构造边,字典中出现的词构造边。
求解路径长度最短的前N个词语序列组合,作为粗略划分的结果。
关于路径长度权重的赋值,有两种办法,一是非统计粗分模型,二是统计粗分模型。
前者是假设每个词对应的边长均设为1,问题是随着字串长度的增加,长度相同的路径也会迅速增加,这导致粗分结果迅速增加。
后者经过推导,使用
−
l
n
P
(
w
i
)
-lnP(w_i)
−lnP(wi)作为词语的边长,将出现频率也考虑了进去。
基于HMM的分词方法
可以同时解决自动分词以及词性标注问题。
将字符串S作为输入,将字符串S对应的单词序列划分 S W = w 1 . . . w n S_W=w_1...w_n SW=w1...wn作为观察序列,将对于的词类序列 S C = c 1 . . . c n S_C=c_1...c_n SC=c1...cn作为状态序列。
那么HMM的三个基本问题正好对应分词问题的解决:参数的估计、已知 S w S_w Sw和 μ \mu μ估计观察序列的概率 P ( S w ∣ μ ) P(S_w|\mu) P(Sw∣μ),其中使得概率最大的观察序列便是自动分词之后得到的字符串序列、已知观察序列求解最可能的状态序列,即词性标注。
基于三元统计模型的分词与词性标注一体化方法
同时实现自动分词与词性标注问题。
主要思想是 a r g m a x W , T P ( W , T ) argmax_{W,T} P(W,T) argmaxW,TP(W,T),其中W为字符串S的某一种切分形式,T为单词的词性标注序列。
基于词性的三元统计模型
主要思想仍然借鉴HMM,概率参数根据最大似然估计法得到。
P ( W , T ) = P ( W ∣ T ) P ( T ) ≈ Π i = 1 n P ( w i ∣ t i ) P ( t i ∣ t i − 1 t i − 2 ) P(W,T)=P(W|T)P(T)\approx \Pi_{i=1}^nP(w_i|t_i)P(t_i|t_{i-1}t_{i-2}) P(W,T)=P(W∣T)P(T)≈Πi=1nP(wi∣ti)P(ti∣ti−1ti−2)
列出所有可能的切分,最终得到概率最大的序列就是结果。
基于单词的三元统计模型
与上述模型的区别在于将单词序列作为状态序列,而将词性序列作为观察序列。
P ( W , T ) = P ( T ∣ W ) P ( W ) ≈ Π i = 1 n P ( t i ∣ w i ) P ( w i ∣ w i − 1 w i − 2 ) P(W,T)=P(T|W)P(W)\approx \Pi_{i=1}^nP(t_i|w_i)P(w_i|w_{i-1}w_{i-2}) P(W,T)=P(T∣W)P(W)≈Πi=1nP(ti∣wi)P(wi∣wi−1wi−2)
从意义上来看,该式子引进了字前后语境的影响关系,没有考虑前后词性的搭配关系,只是说明该词最大可能的词性;比起基于词性的三元统计模型,对于分词具有更强的约束力。
分词与词性标注一体化模型
通过加权将上述两种模型结合起来。
P ( W , T ) = α P ( T ∣ W ) P ( W ) + β P ( W ∣ T ) P ( T ) ≈ α Π i = 1 n P ( t i ∣ w i ) P ( w i ∣ w i − 1 w i − 2 ) + β Π i = 1 n P ( w i ∣ t i ) P ( t i ∣ t i − 1 t i − 2 ) P(W,T)=\alpha P(T|W)P(W)+\beta P(W|T)P(T) \approx \alpha\Pi_{i=1}^nP(t_i|w_i)P(w_i|w_{i-1}w_{i-2})+\beta \Pi_{i=1}^nP(w_i|t_i)P(t_i|t_{i-1}t_{i-2}) P(W,T)=αP(T∣W)P(W)+βP(W∣T)P(T)≈αΠi=1nP(ti∣wi)P(wi∣wi−1wi−2)+βΠi=1nP(wi∣ti)P(ti∣ti−1ti−2)
由字构词的汉语分词方法
不依赖词表,平衡的看待词表词和未登录词的识别。
规定词位,词首、词中、词位、单独成词,将字分类成为不同的词位;从而确定单词的划分。
最常用的特征是字本身和词位的状态转移概率。
未登录词的处理方法
对于新涌现的一批通用词汇或者专业术语的处理,一般是在大规模语料库的支持下,由机器根据某种算法自动生成候选词表,再由人工筛选出其中的新词并且补充到词表当中。为了尽可能的减少人工筛选的工作量,往往使用包括互信息等统计量来描述汉字之间的结合力。
对于未登录的实体名词和专有名词,解决方法可以概括为人工组织规则办法和机器学习办法。
基于多特征的命名实体识别模型
任务目标:在分词和词性标注的前提下进一步进行命名实体的识别。
输入带有词性标记的词序列,对于部分词语进行拆分、重组(确定实体边界)和重新分类(确定实体类型),最后输出一个最优的“词形/词性”序列 W C ∗ / T C ∗ WC^*/TC^* WC∗/TC∗
由W计算得到WC的方法由有三种:词形特征模型、词性特征模型和混合模型;分别是根据词形、词性和两者一起产生候选命名实体,然后用维特比算法确定最优词形序列。
下面要介绍的就是第三种。
模型组成:
- 词形上下文模型
给定词形上文的环境下产生实体的概率 - 词性上下文模型
给定词性上下文环境下产生实体的概率 - 词形实体模型
给定实体类型的前提下词形串作为实体的概率 - 词性实体模型
给定实体类型的前提下词性串作为实体的概率
用数学公式表示如下:
(
W
C
∗
,
T
C
∗
)
=
a
r
g
m
a
x
W
C
,
T
C
P
(
W
C
,
T
C
∣
W
,
T
)
=
a
r
g
m
a
x
W
C
,
T
C
P
(
W
C
,
T
C
,
W
,
T
)
P
(
W
,
T
)
≈
a
r
g
m
a
x
W
C
,
T
C
P
(
W
C
,
W
)
[
P
(
T
C
,
T
)
]
β
≈
a
r
g
m
a
x
W
C
,
T
C
P
(
W
C
)
P
(
W
∣
W
C
)
[
P
(
T
C
)
P
(
T
∣
T
C
)
]
β
(WC^*,TC^*)=arg max_{WC,TC} P(WC,TC|W,T)=argmax_{WC,TC}\frac{P(WC,TC,W,T)}{P(W,T)}\approx argmax_{WC,TC}P(WC,W)[P(TC,T)]^\beta \approx argmax_{WC,TC}P(WC)P(W|WC)[P(TC)P(T|TC)]^\beta
(WC∗,TC∗)=argmaxWC,TCP(WC,TC∣W,T)=argmaxWC,TCP(W,T)P(WC,TC,W,T)≈argmaxWC,TCP(WC,W)[P(TC,T)]β≈argmaxWC,TCP(WC)P(W∣WC)[P(TC)P(T∣TC)]β
约等于的两个步骤里,是怎么推导过去的?
其中,
β
\beta
β是平衡因子,平衡词形特征和词性特征的权重。
以下详细的推导过程没有看明白,之后反过头来补上。
词性标注
词性标注是分词以后的第二个重要步骤和基础性工作。
主要难点可以分成以下四个方面:
- 汉语不能像其他语言一样通过词语形态的变化来判断词性。
- 常用词兼类现象严重。
- 研究者在词性划分的目的和标准等问题上还存在较大的分歧。
基于统计模型的参数估计方法
基于HMM的词性标注方法,前面已经介绍过,可以同时进行分词与词性标注一体化。
基本的HMM模型实现中还有两个问题需要注意:
- 随机初始化模型参数,会使得词性标注问题缺乏限制。
Jelinek方法:
利用词典信息约束模型的参数。
词l由词性标记j生成的概率如下:
b j , l = b j , l ∗ C ( w l ) ∑ w m b j , m ∗ C ( w m ) b_{j,l}=\frac{b_{j,l}^*C(w_l)}{\sum_{w_m}b_{j,m}^*C(w_m)} bj,l=∑wmbj,m∗C(wm)bj,l∗C(wl)
其中,若是词性j可以生成词l,那么 b j , l ∗ b_{j,l}^* bj,l∗的值为单词允许的词性的个数的倒数;若是不可以,那么值为0.
所以,对于式子的理解为,若是词典中包含词-词汇对,那么词由词性标记生成的概率为词性生成该单词的个数除词性生成所有单词的个数。若是词典中不包含词-词汇对,那么该概率初始化为0.
Kupiec方法:
将词汇划分成为若干个等价类,以类为单位进行参数估计,避免为每个单词单独调整参数。
方法评价:
前者如果有足够多的训练数据则更加准确,后者不需要为每个单词调整参数,使得参数估计更加可靠。 - 由于不同领域的语料概率有所差异,HMM的参数也应该随着语料的变化而变化。
基于规则的参数估计方法
基本思想:
按照兼类词搭配关系和上下文语境建造词类消歧规则。
人工构造标注规则 ——> 基于机器学习的规则自动提取方法
后者的典型代表是E.Brill提出的基于转换的错误驱动的学习方法,即使用学习器标注文本,通过与正确的标注文本进行对比,完善学习器中的转换规则,直到没有新的转换规则能够使得已经标注的语料库错误减少。
统计方法与规则方法相结合的词性标注方法
词性标注中的生词处理办法
方法分为以下几种,
- 生词的发射概率都默认为1.
简单,容易求解。
缺乏先验知识的基础,准确率受到影响。 - 估算成词的词汇发射概率。
假设将词汇序列W加入到训练集中,认为对于其他词汇的发射概率以及词性转移概率不影响。
以下为一阶HMM模型的概率推导过程,认为该单词的词性由于上一个词决定。
P ( x j ∣ t j ) = P ( x j ) P ( t j ∣ x j ) P ( t j ) ≈ P ( x j ) ∑ k P ( t k ∣ w j − 1 ) P ( t j ∣ t k ) P ( t j ) P(x_j|t_j)=\frac{P(x_j)P(t_j|x_j)}{P(t_j)}\approx\frac{P(x_j)\sum_kP(t_k|w_{j-1})P(t_j|t_k)}{P(t_j)} P(xj∣tj)=P(tj)P(xj)P(tj∣xj)≈P(tj)P(xj)∑kP(tk∣wj−1)P(tj∣tk)
词性标注的一致性检查与自动校对
词性标注一致性检查方法
词性标注的一致性指的是再相同的语境下,对同一个词标注相同的词性。
不一致现象主要有两种,一是词本身非兼类词,在语料中标记了不同的词性;二是对于语境相同的兼类词出现了不同的词性标注。
主流解决办法是采用聚类和分类;基本观点是计算每个兼类词的词性的上下文语境向量与正确标注的语料中同词性兼类词上下文语境向量,求两者的距离,如果小于阈值则认为符合一致性原则;否则,认为标注错误。
自动校对
基于数据挖掘和规则学习方法的词性标注自动校对方法。主要思想是通过机器学习,从大规则训练语料中抽取每个兼类词在上下文语境中标注的词性信息,构成一个词性校对决策表。
如果被检测的兼类词上下文语境与决策表中的匹配,那么认为词性也应该一致。
汉语分词与词性标注系统评测
正确率、召回率、F- 测度值