基于隐马尔科夫模型的古汉语词性标注
杨新生(1993-),男,硕士研究生,研究方向:基于隐马尔科夫模型的古汉语词性标注。
胡立生(1970-),男,博士,教授,研究方向:过程控制、控制性能评估与故障诊断等。
0 引言
词性标注是自然语言处理的基础。它为句子中的单词选择最恰当的句法类别序列(词性),并将其输出传递到下一级处理中,通常是语法分析器。在过去的20年里,词性标注的准确率在Penn Treebank[1]等著名英语语料库中得到显著提高。同时中文词性标注的准确率也在显著提高[2]。有许多用于词性标注的机器学习方法,其中最成功的是基于规则和基于统计的方法。
典型的基于规则的标注器使用上下文信息为有歧义的单词分配词性标签[3]。一般基于规则的标注器错误率要高于基于统计的标注器,该方法通过一组确定性的规则而不是一个大型统计表进行标注[1]。在基于规则的标注器中可以通过上下文规则作为约束来提高标注准确率。
基于统计方法的标注器无需对输入进行任何句法分析就能够获得很高的精确度[2]。基于统计的方法有很多,著名的有隐马尔科夫模型和最大熵模型。隐马尔科夫模型在词性标注中应用最广泛,它起源于维特比算法[4]。在该模型中,通常利用人工标注的语料库进行训练,以此获得单词-标记的概率[5]。最大熵模型可以更好地利用上下文信息,这种方法比隐马尔科夫模型具有更高的精确度[6]。
隐马尔科夫模型最大的局限性是未登录词的预测问题,以往研究表明对未登录词标注的准确率明显低于已知单词。在英文的词性标注中,可以根据单词后缀进行预测[1],但此方法对中文不适用。
现代汉语是没有分隔词的,例如以下短语“研究生命起源”,可以分隔为“研究生/命/起源”,还可以被分隔为“研究/生命/起源”。显然,第一种分词结果是错误的。正确的分词是词性标注的第一步,这使中文的词性标注比其他语言更难。一般来看,古汉语是比现代汉语更难理解的,因为两者所用的语法不同。但从词性标注的角度来看,古汉语要更简单,因为大多数词都是单字形式,不需要分词。
关于标点符号,古汉语是没有标点符号的,本文所有输入都通过人工的方式进行处理。国内大多数古汉语文献都已经被手工加过标点,因此本文的方法仍然适用。
在未登录词预测方面,欧洲语言中的词性标注大多数利用后缀或未登录词的上下文信息进行预测,但中文没有后缀也没有大小写区分,特别是在古汉语中,一个字就是一个词,所以无法继续拆分。与印欧语系相比,现代汉语和古汉语的处理过程,如图1所示。
图1 与印欧语系相比,现代汉语和古汉语的处理过程
在计算机中,中文由GB/BIG5编码表示,无法从编码中获取任何包含结构或意义的信息。本文将结合隐马尔科夫模型提出简单有效的方法来解决未登录词的标注问题。
1 古汉语的语料库和标记集
标记集的设计对标注算法的准确性和效率至关重要,而大部分使用那些著名语料库和配套标记集作为标准测试平台的研究人员都忽视了这一点。此外,古汉语中的歧义要比印欧语系更多,因此本节将着重介绍语料库的构建和标签集的设计。
1.1 语料库
为了评估文中的标注算法和标记集,这里利用一些经典名著,如《论语》、《道德经》等建立了一个小型语料库。
该语料库选择文本的标准是:省略专有名词,省略非常生僻的词,省略特殊语法。由于这三个标准对大多数古汉语著作都成立,所以本文的语料库确实反映了典型的古汉语特征。最后得到了大约1 000个词的语料库作为训练集。对于测试集,这三个标准仍然成立。本文从《荀子》中选择一段相对简单的文本作为测试集,长度大约是200个词。
1.2 标记集
标记集的设计存在一个权衡的过程,大小通常为20到400不等。一方面,为了获得较高的自动标注精度,将动词、形容词等基本词汇类别划分为谓语、定语等子类别。这些区分很重要,但它会产生数据稀疏的问题。考虑到本文语料库比较小,这里没有使用过于精确的标记集。
汉语语法侧重于词语序列而不是词形信息,因此它比印欧语系等缺乏灵活性的语言更加容易引起歧义。换句话说,对词性标注来说上下文信息比词汇信息更有价值。考虑到这一点,本文设计了一个标记集,它不仅包含词汇类别,而且包含一个词可能所属的句子成分。例如,将形容词分为4个子类别,如形容词作定语等,这种区分是影响标注准确率的一个重要因素,如表1所示。
上一篇:那些催人奋进的『耻』味良药
下一篇:古代汉语常用虚词用法比较研究