词性标注
转载自:http://www.hankcs.com/nlp/part-of-speech-tagging.html
词性标注(Part-of-Speech tagging 或POS tagging),又称词类标注或者简称标注,是指为分词结果中的每个单词标注一个正确的词性的程序,也即确定每个词是名词、动词、形容词或其他词性的过程。在汉语中,词性标注比较简单,因为汉语词汇词性多变的情况比较少见,大多词语只有一个词性,或者出现频次最高的词性远远高于第二位的词性。据说,只需选取最高频词性,即可实现80%准确率的中文词性标注程序。
利用HMM即可实现更高准确率的词性标注,本文旨在介绍HanLP中的词性标注模块。
开源项目
本文代码已集成到HanLP中开源:http://www.hankcs.com/nlp/hanlp.html
训练
HanLP中使用了一阶隐马模型,在这个隐马尔可夫模型中,隐状态是词性,显状态是单词。
语料库
训练语料采用了2014人民日报切分语料:
- 人民网/nz 1月1日/t 讯/ng 据/p 《/w [纽约/nsf 时报/n]/nz 》/w 报道/v ,/w 美国/nsf 华尔街/nsf 股市/n 在/p 2013年/t 的/ude1 最后/f 一天/mq 继续/v 上涨/vn ,/w 和/cc [全球/n 股市/n]/nz 一样/uyy ,/w 都/d 以/p [最高/a 纪录/n]/nz 或/c 接近/v [最高/a 纪录/n]/nz 结束/v 本/rz 年/qt 的/ude1 交易/vn 。/w
- 《/w [纽约/nsf 时报/n]/nz 》/w 报道/v 说/v ,/w 标普/nz 500/m 指数/n 今年/t 上升/vi 29.6%/m ,/w 为/p 1997年/t 以来/f 的/ude1 最大/gm 涨幅/n ;/w [道琼斯/ntc 工业/n 平均/a 指数/n]/nz 上升/vi 26.5%/m ,/w 为/p 1996年/t 以来/f 的/ude1 最大/gm 涨幅/n ;/w [纳斯/nrf 达/v 克/q]/nz 上涨/vi 38.3%/m 。/w
- 就/d 12月31日/t 来说/uls ,/w 由于/p 就业/vn 前景/n 看好/v 和/cc [经济/n 增长/v]/nz 明年/t 可能/v 加速/vn ,/w 消费者/n 信心/n 上升/vi 。/w 工商/n 协进会/nis (/w ConferenceBoard/x )/w 报告/n ,/w 12月/t 消费者/n 信心/n 上升/vi 到/v 78.1/m ,/w 明显/a 高于/v 11月/t 的/ude1 72/m 。/w
- 另据/nz 《/w [华尔街/nsf 日报/n]/nz 》/w 报道/v ,/w 2013年/t 是/vshi 1995年/t 以来/f [美国/nsf 股市/n]/nz 表现/v 最好/d 的/ude1 一年/mq 。/w 这/rzv 一年/mq 里/f ,/w 投资/v [美国/nsf 股市/n]/nz 的/ude1 明智/a 做法/n 是/vshi 追/v 着/uzhe “/w 傻钱/nz ”/w 跑/v 。/w 所谓/v 的/ude1 “/w 傻钱/nz ”/w 策略/n ,/w 其实/d 就是/v 买入/vn 并/cc 持有/v 美国/nsf 股票/n 这样/rzv 的/ude1 普通/a 组合/vn 。/w 这个/rz 策略/n 要/v 比/p [对冲/vn 基金/n]/nz 和/cc 其它/rz 专业/n 投资者/nnd 使用/v 的/ude1 更为/d 复杂/a 的/ude1 投资/vn 方法/n 效果/n 好/a 得/ude3 多/a 。/w (/w 老/a 任/v )/w
单词词性频次词典
统计所有单词的各个词性的出现频次,得到核心词典:
- 爱 v 3622 vn 598
- 爱因斯坦 nrf 20
- 爱国 a 178
- 爱国主义 n 68
- 飙升 v 200 vn 8
- 顺风 vi 27 vn 2
- 顺风吹火 i 1
- 顺风球 n 1
- 顺风耳 n 4
- 顺风车 nz 126
- 购 v 217 vg 151 vn 106
- 购书 v 7 vn 5
- 购买 v 3875 vn 637
- 购买人 n 7
- 购买力 n 42
- 购买户 n 1
- 购买欲 n 1
- 购买群 n 1
- 购买者 n 93
- 购买证 n 1
- 购入 v 115 vn 18
- ……
从词典可以看出,汉语词汇的确词性单一,且存在歧义的词性多集中在“动词v”和“名动词vn”上。另外,我拿到的2014人民日报切分语料感觉没有经过严格的人工校对,许多单词词性单一,且存在不少错误。也许等我有机会(经济实力或学术背景),可以拿更高质量的语料来训练。所幸HanLP同时维护了一个通用的语料处理包,暂且埋下伏笔吧。
转移矩阵
统计每个标签的转移频次,得到如下转移矩阵:
事实上,完整的转移矩阵非常大,请下载观看:词性标注 转移矩阵.xls
标注
利用上述转移矩阵和核心词典词频可以计算出HMM中的初始概率、转移概率、发射概率,进而完成求解。关于维特比算法和实现请参考《通用维特比算法的Java实现》。
测试
以“我的爱就是爱自然语言处理”为例:
- String text = "我的爱就是爱自然语言处理";
- Segment segment = new Segment();
- System.out.println("未标注:" + segment.seg(text));
- segment.enableSpeechTag(true);
- 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 状态词 |