HMM 词性标注

词性标注

词性标注(Part-of-Speech tagging 或POS tagging),又称词类标注或者简称标注,是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或其他词性的过程。在汉语中,词性标注比较简单,因为汉语词汇词性多变的情况比较少见,大多词语只有一个词性,或者出现频次最高的词性远远高于第二位的词性。据说,只需选取最高频词性,即可实现80%准确率的中文词性标注程序。

利用HMM即可实现更高准确率的词性标注,本文旨在介绍HanLP中的词性标注模块。

 

开源项目

本文代码已集成到HanLP中开源:http://www.hankcs.com/nlp/hanlp.html

训练

HanLP中使用了一阶隐马模型,在这个隐马尔可夫模型中,隐状态是词性,显状态是单词。

语料库

训练语料采用了2014人民日报切分语料:

  1. 人民网/nz 11日/讯/ng 据/《/[纽约/nsf 时报/n]/nz 》/报道/,/美国/nsf 华尔街/nsf 股市/在/2013年/的/ude1 最后/一天/mq 继续/上涨/vn ,/和/cc [全球/股市/n]/nz 一样/uyy ,/都/以/[最高/纪录/n]/nz 或/接近/[最高/纪录/n]/nz 结束/本/rz 年/qt 的/ude1 交易/vn 。/
  2. 《/[纽约/nsf 时报/n]/nz 》/报道/说/,/标普/nz 500/指数/今年/上升/vi 29.6%/m ,/为/1997年/以来/的/ude1 最大/gm 涨幅/;/[道琼斯/ntc 工业/平均/指数/n]/nz 上升/vi 26.5%/m ,/为/1996年/以来/的/ude1 最大/gm 涨幅/;/[纳斯/nrf 达/克/q]/nz 上涨/vi 38.3%/m 。/
  3. 就/1231日/来说/uls ,/由于/就业/vn 前景/看好/和/cc [经济/增长/v]/nz 明年/可能/加速/vn ,/消费者/信心/上升/vi 。/工商/协进会/nis (/ConferenceBoard/)/报告/,/12月/消费者/信心/上升/vi 到/78.1/,/明显/高于/11月/的/ude1 72/。/
  4. 另据/nz 《/[华尔街/nsf 日报/n]/nz 》/报道/,/2013年/是/vshi 1995年/以来/[美国/nsf 股市/n]/nz 表现/最好/的/ude1 一年/mq 。/这/rzv 一年/mq 里/,/投资/[美国/nsf 股市/n]/nz 的/ude1 明智/做法/是/vshi 追/着/uzhe “/傻钱/nz ”/跑/。/所谓/的/ude1 “/傻钱/nz ”/策略/,/其实/就是/买入/vn 并/cc 持有/美国/nsf 股票/这样/rzv 的/ude1 普通/组合/vn 。/这个/rz 策略/要/比/[对冲/vn 基金/n]/nz 和/cc 其它/rz 专业/投资者/nnd 使用/的/ude1 更为/复杂/的/ude1 投资/vn 方法/效果/好/得/ude3 多/。/(/老/任/)/w

单词词性频次词典

统计所有单词的各个词性的出现频次,得到核心词典:

  1.  v 3622 vn 598
  2. 爱因斯坦 nrf 20
  3. 爱国 a 178
  4. 爱国主义 n 68
  5. 飙升 v 200 vn 8
  6. 顺风 vi 27 vn 2
  7. 顺风吹火 i 1
  8. 顺风球 n 1
  9. 顺风耳 n 4
  10. 顺风车 nz 126
  11.  v 217 vg 151 vn 106
  12. 购书 v 7 vn 5
  13. 购买 v 3875 vn 637
  14. 购买人 n 7
  15. 购买力 n 42
  16. 购买户 n 1
  17. 购买欲 n 1
  18. 购买群 n 1
  19. 购买者 n 93
  20. 购买证 n 1
  21. 购入 v 115 vn 18
  22. ……

从词典可以看出,汉语词汇的确词性单一,且存在歧义的词性多集中在“动词v”和“名动词vn”上。另外,我拿到的2014人民日报切分语料感觉没有经过严格的人工校对,许多单词词性单一,且存在不少错误。也许等我有机会(经济实力或学术背景),可以拿更高质量的语料来训练。所幸HanLP同时维护了一个通用的语料处理包,暂且埋下伏笔吧。

转移矩阵

统计每个标签的转移频次,得到如下转移矩阵:

事实上,完整的转移矩阵非常大,请下载观看:词性标注 转移矩阵.xls

标注

利用上述转移矩阵和核心词典词频可以计算出HMM中的初始概率、转移概率、发射概率,进而完成求解。关于维特比算法和实现请参考《通用维特比算法的Java实现》。

测试

以“我的就是自然语言处理”为例:

  1.         String text = “我的爱就是爱自然语言处理”;
  2.         Segment segment = new Segment();
  3.  
  4.         System.out.println(“未标注:” + segment.seg(text));
  5.         segment.enableSpeechTag(true);
  6.         System.out.println(“标注后:” + segment.seg(text));

输出

未标注:[我/rr, 的/ude1, 爱/v, 就是/v, 爱/v, 自然语言/gm, 处理/vn]

标注后:[我/rr, 的/ude1, 爱/vn, 就是/v, 爱/v, 自然语言/gm, 处理/vn]

前后两个“爱”的词性并不相同,前者是名动词,后者是动词。

再比如

未标注:[教授/nnt, 正在/d, 教授/nnt, 自然语言/gm, 处理/vn, 课程/n]

标注后:[教授/nnt, 正在/d, 教授/v, 自然语言/gm, 处理/vn, 课程/n]

HanLP的词性标注初见成效。

HanLP词性标注集

HanLP使用的HMM词性标注模型训练自2014年人民日报切分语料,随后增加了少量98年人民日报中独有的词语。所以,HanLP词性标注集兼容《ICTPOS3.0汉语词性标记集》,并且兼容《现代汉语语料库加工规范——词语切分与词性标注》。

HanLP词性标注集
a
形容词
ad
副形词
ag
形容词性语素
al
形容词性惯用语
an
名形词
b
区别词
begin
仅用于始##始
bg
区别语素
bl
区别词性惯用语
c
连词
cc
并列连词
d
副词
dg
辄,俱,复之类的副词
dl
连语
e
叹词
end
仅用于终##终
f
方位词
g
学术词汇
gb
生物相关词汇
gbc
生物类别
gc
化学相关词汇
gg
地理地质相关词汇
gi
计算机相关词汇
gm
数学相关词汇
gp
物理相关词汇
h
前缀
i
成语
j
简称略语
k
后缀
l
习用语
m
数词
mg
数语素
Mg
甲乙丙丁之类的数词
mq
数量词
n
名词
nb
生物名
nba
动物名
nbc
动物纲目
nbp
植物名
nf
食品,比如“薯片”
ng
名词性语素
nh
医药疾病等健康相关名词
nhd
疾病
nhm
药品
ni
机构相关(不是独立机构名)
nic
下属机构
nis
机构后缀
nit
教育相关机构
nl
名词性惯用语
nm
物品名
nmc
化学品名
nn
工作相关名词
nnd
职业
nnt
职务职称
nr
人名
nr1
复姓
nr2
蒙古姓名
nrf
音译人名
nrj
日语人名
ns
地名
nsf
音译地名
nt
机构团体名
ntc
公司名
ntcb
银行
ntcf
工厂
ntch
酒店宾馆
nth
医院
nto
政府机构
nts
中小学
ntu
大学
nx
字母专名
nz
其他专名
o
拟声词
p
介词
pba
介词“把”
pbei
介词“被”
q
量词
qg
量词语素
qt
时量词
qv
动量词
r
代词
rg
代词性语素
Rg
古汉语代词性语素
rr
人称代词
ry
疑问代词
rys
处所疑问代词
ryt
时间疑问代词
ryv
谓词性疑问代词
rz
指示代词
rzs
处所指示代词
rzt
时间指示代词
rzv
谓词性指示代词
s
处所词
t
时间词
tg
时间词性语素
u
助词
ud
助词
ude1
的 底
ude2
ude3
udeng
等 等等 云云
udh
的话
ug
uguo
uj
助词
ul
连词
ule
了 喽
ulian
连 (“连小学生都会”)
uls
来讲 来说 而言 说来
usuo
uv
连词
uyy
一样 一般 似的 般
uz
uzhe
uzhi
v
动词
vd
副动词
vf
趋向动词
vg
动词性语素
vi
不及物动词(内动词)
vl
动词性惯用语
vn
名动词
vshi
动词“是”
vx
形式动词
vyou
动词“有”
w
标点符号
wb
百分号千分号,全角:% ‰   半角:%
wd
逗号,全角:, 半角:,
wf
分号,全角:; 半角: ;
wh
单位符号,全角:¥ $ £  °  ℃  半角:$
wj
句号,全角:。
wky
右括号,全角:) 〕  ] } 》  】 〗 〉 半角: ) ] { >
wkz
左括号,全角:( 〔  [  {  《 【  〖 〈   半角:( [ { <
wm
冒号,全角:: 半角: :
wn
顿号,全角:、
wp
破折号,全角:——   --   ——-   半角:—  —-
ws
省略号,全角:……  …
wt
叹号,全角:!
ww
问号,全角:?
wyy
右引号,全角:” ’ 』
wyz
左引号,全角:“ ‘ 『
x
字符串
xu
网址URL
xx
非语素字
y
语气词(delete yg)
yg
语气语素
z
状态词
zg
状态词

Leave a Reply

Your email address will not be published. Required fields are marked *