原文引用 http://heshenghuan.github.io/2016/03/23/词性标注调研/
定义
词性用来描述一个词在上下文中的作用。词性标注(Part-of-Speech或POS tagging)是指对于句子中的每个词都指派一个合适的词性,也即确定每个词是名词、动词、形容词或其他词的过程,又称词类标注或者简称标注。给定一个句子(或词序列):
我 中 了 一张 彩票 。
对其的标注结果可以是:
我/代词 中/动词 了/助词 一/数词 张/量词 彩票/名词 。/标点
通常为了简化表达,人们常使用一个定义好的标注集去表达上面的标注结果,例如“r”表示代词,“n”表示名词。使用北大计算所词性标注集标注的结果为:
我/r 中/v 了/u 一/m 张/q 彩票/n 。/w
在汉语中,词性标注比较简单,因为汉语词汇词性多变的情况比较少见,大多词语只有一个词性,或者出现频次最高的词性远远高于第二位的词性。据说,只需选取最高频词性,即可实现80%准确率的中文词性标注程序。
而利用一些机器学习算法,可以实现更高准确率的词性标注。
主要方法
词性标注的方法按照是否视其为独立任务可分为两种。
Individual Model
独立模型是将词性标注作为单独的任务,使用统计学习方法在标注语料上训练模型,并使用该模型对测试语料进行词性标注任务的方法。
该方法一般要求输入的句子是经过分词,符合分词标准的词序列。之后模型在序列基础上给出最优标注结果。常见及state-of-the-art的模型包括但不限于:CRF,ME,HMM等等。
Joint Model
中文作为一种词语间没有明显分隔符的语言,中文分词往往是作为词性标注任务的前置条件的。不过有研究表明,利用两个任务之间潜在的语言关系,使用联合模型(Joint Model)进行分词和词性标注会在性能上有所提升。
使用联合模型能够提升性能,那么怎么使不同的任务结合在一起做呢?目前方法课可概括为两种:一种是pipeline方法,另一种则是采用simultaneous方法。
pipeline方法
所谓pipeline方法,是最简单的一种将分词模型和词性标注模型组合在一起使用的方法,即:未切分句子经由分词算法切分,切分结果送入词性标注模型进行词性标注。
pipeline方法的思想简单,效果也不错,研究表明使用pipeline方法会使F1值提升在0.2~1%。然而这个方法也有一个很大的缺点,就是会产生错误传播(error propagation),即:分词的错误会导致词性标注的错误。
这种方法也可成为pipeline架构(pipeline framework)。(Qian and Liu, 2012)提出了一个新型的解码算法,用于判别式分词、词性标注、句法分析联合模型,同时完成分词、词性标注和句法分析任务。他们在训练阶段训练三个独立的模型(分词,POS tagging,parsing),在解码阶段基于一个统一的框架再整合利用这些模型。他们扩展了CYK算法,使之可以利用分词和词性标注的特征,称为联合解码算法(joint decoding algorithm)。
simultaneous方法
为了避免错误传播,研究者们开发了许多不同的方法。虽然这些方法不尽相同,但都有一个共同的特点,平等的对待分词和词性标注,希望分词和词性标注两个模型能够互相改善。例如,(Ng and Low, 2004),(Zhang and Clark, 2008),(Hatori et al., 2012)以及(Qian and Liu, 2012)都设计了一个特殊的模型能够同时使用两方的信息,从而避开pipeline架构带来的错误传播。但具体地说,这几篇论文中的方法有各有不同。
(Ng and Low, 2004)使用了一个简单的思想,那就是将基于字标注的分词方法与词性标注结合起来,使用复合标注集。例如,对于名词“人民”,它的词性标注是n,而分词的标注序列是“BE”,于是“人”的标注就是“B_n”,民的标注就是“E_n”。这样一个简单的思想会导致解码过程中搜索空间的膨胀,故他们使用了改进的解码算法进行解码,也使得这样一个序列标注问题的时间复杂度下降到,其中T为词性标注集大小,n为句子长度,4表示使用4-tag标注集分词。
(Zhang and Clark, 2008)指出,分词和词性标注联合模型遇到的一个问题就是标注空间的急剧膨胀,他们使用了一个新型的multiple-beam search算法,加快了解码速度。他们提出使用词性标注的信息来帮助分词,因此词性标注和分词可以视为一个单独的任务:对给定分词中文句子,标注器考虑所有可能切分及标注情况,在其中选出最好的输出。他们不限制分词和词性标注间的相互作用,利用新的multiple-beam search算法解码,同时利用了分词和词性标注的特征。
(Hatori et al., 2012)提出了一个高效的、基于字标注的解码方法,可以结合目前state-of-the-art分词、词性标注及句法分析工作的特征。他们指出,一个句子的句法信息对于分词、词性标注是有着很大的影响的,特别是处理中文未登录词时,句法信息能在一定程度上纠正分词和词性标注的错误。因此,他们开发了一个能够同时处理分词、词性标注和句法分析的模型,试图捕捉三个任务间的相互作用。
Reference
以下参考文献按照我阅读的顺序排序,与上一节simultaneous方法中的顺序可能不同。
- Hwee Tou Ng and Jin Kiat Low. 2004. Chinese part-of-speech tagging: One-at-a-time or all-at-once? Word-based or character-based? In Proceedings of the EMNLP Conference, pages 277–284, Barcelona, Spain.
- Yue Zhang, Stephen Clark. Joint Word Segmentation and POS Tagging Using a Single Perceptron[C].ACL. 2008: 888-896.
- Jun Hatori, Takuya Matsuzaki, Yusuke Miyao, Jun’ichi Tsujii. Incremental joint approach to word segmentation, pos tagging, and dependency parsing in chinese[C].Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics: Long Papers-Volume 1. Association for Computational Linguistics, 2012: 1045-1053.
- Xian Qian, Yang Liu. Joint Chinese word segmentation, POS tagging and parsing[C].Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning. Association for Computational Linguistics, 2012: 501-511.
- Yue Zhang, Stephen Clark. A fast decoder for joint word segmentation and POS-tagging using a single discriminative model[C].Proceedings of the 2010 Conference on Empirical Methods in Natural Language Processing. Association for Computational Linguistics, 2010: 843-852.
- Canasai Kruengkrai, Kiyotaka Uchimoto, Jun’ichi Kazama, et al. An error-driven word-character hybrid model for joint Chinese word segmentation and POS tagging[C].Proceedings of the Joint Conference of the 47th Annual Meeting of the ACL and the 4th International Joint Conference on Natural Language Processing of the AFNLP: Volume 1-Volume 1. Association for Computational Linguistics, 2009: 513-521.
相关资料
参考学习资料
- 我爱自然语言处理上的:HMM在自然语言处理中的应用一:词性标注1
- PDF: Part-of-Speech Tagging with HMM
- 一个基于HMM的词性标注算法:HanLP词性标注方法
参考工具
语料库资源汇总
- 豆瓣:【汇总】语料库资源
北大计算所词性标注集简表
序号 | 代码 | 名称 | 帮助记忆的诠释 |
---|---|---|---|
1 | Ag | 形语素 | 形容词性语素。形容词代码为a,语素代码g前面置以A。 |
2 | a | 形容词 | 取英语形容词adjective的第1个字母。 |
3 | ad | 副形词 | 直接作状语的形容词。形容词代码a和副词代码d并在一起。 |
4 | an | 名形词 | 具有名词功能的形容词。形容词代码a和名词代码n并在一起。 |
5 | b | 区别词 | 取汉字“别”的声母。 |
6 | c | 连词 | 取英语连词conjunction的第1个字母。 |
7 | Dg | 副语素 | 副词性语素。副词代码为d,语素代码g前面置以D。 |
8 | d | 副词 | 取adverb的第2个字母,因其第1个字母已用于形容词。 |
9 | e | 叹词 | 取英语叹词exclamation的第1个字母。 |
10 | f | 方位词 | 取汉字“方” 的声母。 |
11 | g | 语素 | 绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。 |
12 | h | 前接成分 | 取英语head的第1个字母。 |
13 | i | 成语 | 取英语成语idiom的第1个字母。 |
14 | j | 简称略语 | 取汉字“简”的声母。 |
15 | k | 后接成分 | |
16 | l | 习用语 | 习用语尚未成为成语,有点“临时性”,取“临”的声母。 |
17 | m | 数词 | 取英语numeral的第3个字母,n,u已有他用。 |
18 | Ng | 名语素 | 名词性语素。名词代码为n,语素代码g前面置以N。 |
19 | n | 名词 | 取英语名词noun的第1个字母。 |
20 | nr | 人名 | 名词代码n和“人(ren)”的声母并在一起。 |
21 | ns | 地名 | 名词代码n和处所词代码s并在一起。 |
22 | nt | 机构团体 | “团”的声母为t,名词代码n和t并在一起。 |
23 | nz | 其他专名 | “专”的声母的第1个字母为z,名词代码n和z并在一起。 |
24 | o | 拟声词 | 取英语拟声词onomatopoeia的第1个字母。 |
25 | p | 介词 | 取英语介词prepositional的第1个字母。 |
26 | q | 量词 | 取英语quantity的第1个字母。 |
27 | r | 代词 | 取英语代词pronoun的第2个字母,因p已用于介词。 |
28 | s | 处所词 | 取英语space的第1个字母。 |
29 | Tg | 时语素 | 时间词性语素。时间词代码为t,在语素的代码g前面置以T。 |
30 | t | 时间词 | 取英语time的第1个字母。 |
31 | u | 助词 | 取英语助词auxiliary 的第2个字母,因a已用于形容词。 |
32 | Vg | 动语素 | 动词性语素。动词代码为v。在语素的代码g前面置以V。 |
33 | v | 动词 | 取英语动词verb的第一个字母。 |
34 | vd | 副动词 | 直接作状语的动词。动词和副词的代码并在一起。 |
35 | vn | 名动词 | 指具有名词功能的动词。动词和名词的代码并在一起。 |
36 | w | 标点符号 | |
37 | x | 非语素字 | 非语素字只是一个符号,字母x通常用于代表未知数、符号。 |
38 | y | 语气词 | 取汉字“语”的声母。 |
39 | z | 状态词 | 取汉字“状”的声母的前一个字母。 |