APP下载

基于隐马尔科夫模型的古汉语词性标注

2020-06-29杨新生胡立生

微型电脑应用 2020年5期
关键词:古汉语

杨新生 胡立生

摘 要:古汉语在语法和形态上与现代汉语有着本质的区别。从统计的角度出发,首先为古汉语设计一个标记集,将隐马尔可夫模型(HMM)与维特比算法相结合,以此对古汉语进行词性标注。通过对传统方法的改进,最终bigram模型和trigram模型的标注准确率分别提高到94.9%和96.5%,同时未登录词的标注精度也有显著提高。该方法应用于古汉语词性标注中,能根据古汉语的特点有效提高标注精度,并且在古汉语机器翻译等领域有广泛应用。

关键词:词性标注;古汉语;隐马尔科夫模型

Abstract:Classical Chinese is essentially different from modern Chinese in grammar and form. From a statistical point of view, a tag set is designed for classical Chinese firstly, then Hidden Markovian Model (HMM) and Viterbi algorithm are used to tag part-of-speech in classical Chinese. The accuracies of bigram model and trigram model are improved to 94.9% and 96.5% respectively compared to traditional method, and the accuracy of unknown words is also improved significantly. This method can effectively improve the accuracy of part-of-speech tagging according to the characteristics of classical Chinese, and has wide applications in the field of machine translation of classical Chinese.

Key words:part-of-speech tagging;classical Chinese;Hidden Markovian model

0 引言

词性标注是自然语言处理的基础。它为句子中的单词选择最恰当的句法类别序列(词性),并将其输出传递到下一级处理中,通常是语法分析器。在过去的20年里,词性标注的准确率在Penn Treebank[1]等著名英语语料库中得到显著提高。同时中文词性标注的准确率也在显著提高[2]。有许多用于词性标注的机器学习方法,其中最成功的是基于规则和基于统计的方法。

典型的基于规则的标注器使用上下文信息为有歧义的单词分配词性标签[3]。一般基于规则的标注器错误率要高于基于统计的标注器,该方法通过一组确定性的规则而不是一个大型统计表进行标注[1]。在基于规则的标注器中可以通过上下文规则作为约束来提高标注准确率。

基于统计方法的标注器无需对输入进行任何句法分析就能够获得很高的精确度[2]。基于统计的方法有很多,著名的有隐马尔科夫模型和最大熵模型。隐马尔科夫模型在词性标注中应用最广泛,它起源于维特比算法[4]。在该模型中,通常利用人工标注的语料库进行训练,以此获得单词-标记的概率[5]。最大熵模型可以更好地利用上下文信息,这种方法比隐马尔科夫模型具有更高的精确度[6]。

隐马尔科夫模型最大的局限性是未登录词的预测问题,以往研究表明对未登录词标注的准确率明显低于已知单词。在英文的词性标注中,可以根据单词后缀进行预测[1],但此方法对中文不适用。

现代汉语是没有分隔詞的,例如以下短语“研究生命起源”,可以分隔为“研究生/命/起源”,还可以被分隔为“研究/生命/起源”。显然,第一种分词结果是错误的。正确的分词是词性标注的第一步,这使中文的词性标注比其他语言更难。一般来看,古汉语是比现代汉语更难理解的,因为两者所用的语法不同。但从词性标注的角度来看,古汉语要更简单,因为大多数词都是单字形式,不需要分词。

关于标点符号,古汉语是没有标点符号的,本文所有输入都通过人工的方式进行处理。国内大多数古汉语文献都已经被手工加过标点,因此本文的方法仍然适用。

在未登录词预测方面,欧洲语言中的词性标注大多数利用后缀或未登录词的上下文信息进行预测,但中文没有后缀也没有大小写区分,特别是在古汉语中,一个字就是一个词,所以无法继续拆分。

与印欧语系相比,现代汉语和古汉语的处理过程,如图1所示。

在计算机中,中文由GB/BIG5编码表示,无法从编码中获取任何包含结构或意义的信息。本文将结合隐马尔科夫模型提出简单有效的方法来解决未登录词的标注问题。

1 古汉语的语料库和标记集

标记集的设计对标注算法的准确性和效率至关重要,而大部分使用那些著名语料库和配套标记集作为标准测试平台的研究人员都忽视了这一点。此外,古汉语中的歧义要比印欧语系更多,因此本节将着重介绍语料库的构建和标签集的设计。

1.1 语料库

为了评估文中的标注算法和标记集,这里利用一些经典名著,如《论语》、《道德经》等建立了一个小型语料库。

该语料库选择文本的标准是:省略专有名词,省略非常生僻的词,省略特殊语法。由于这三个标准对大多数古汉语著作都成立,所以本文的语料库确实反映了典型的古汉语特征。最后得到了大约1 000个词的语料库作为训练集。对于测试集,这三个标准仍然成立。本文从《荀子》中选择一段相对简单的文本作为测试集,长度大约是200个词。

1.2 标记集

标记集的设计存在一个权衡的过程,大小通常为20到400不等。一方面,為了获得较高的自动标注精度,将动词、形容词等基本词汇类别划分为谓语、定语等子类别。这些区分很重要,但它会产生数据稀疏的问题。考虑到本文语料库比较小,这里没有使用过于精确的标记集。

汉语语法侧重于词语序列而不是词形信息,因此它比印欧语系等缺乏灵活性的语言更加容易引起歧义。换句话说,对词性标注来说上下文信息比词汇信息更有价值。考虑到这一点,本文设计了一个标记集,它不仅包含词汇类别,而且包含一个词可能所属的句子成分。例如,将形容词分为4个子类别,如形容词作定语等,这种区分是影响标注准确率的一个重要因素,如表1所示。

同时注意,此标记集中将标点分为两类,分别为终止性标点和停顿性标点。

2 标注算法

本文的标注算法基于隐马尔科夫模型实现。

2.1 隐马尔科夫模型

为避免数据稀疏的问题,词性标注器中n-grams通常n<4,本文使用了unigrams,bigrams和trigrams。

与传统HMM不同的是,这里将词频表示为单词-标记的概率,而不是标记-单词的概率。

2.2 动态规划算法

本文的标注算法基于Viterbi算法,本质上是动态规划。为了编程的简单性和标注的准确性,这里在每个句子前添加终止符标点,并假设每个句子都以句号结束。

2.3 未登录词处理

由于中文没有后缀,欧洲语言使用的基于单词后缀对未登录词标注的方法不适用于现代汉语或古汉语。本文提出对于训练集中没有出现过的词,将其单词-标记概率表示为每个标记的unigrams概率。例如,对于一个未登录词w,如式(10)所示。

3 结果分析

3.1 准确率

本文从《荀子》中选择了一段相对简单的文本作为测试集,长度大约为200个词。首先测试了标记集和算法的学习曲线。随着训练集的增大,结果显示如图2所示。

同时还测试了整体的标注准确率,以及针对已知词和未登录词的标注准确率。

图2是标注器的学习曲线,可以看出标注准确率取决于训练数据的数量。语料库大小就是训练集的长度。随着语料库的扩大,bigrams的准确率从74.0%上升到94.9%,trigrams的准确率从69.1%上升到96.5%。当语料库较小时,trigrams的准确率低于bigrams,主要是由于数据稀疏问题。最后,当上下文信息更加丰富时,trigrams准确率则高于bigrams,如图3所示。

从图3的学习曲线可以看出对已知词的标注,bigrams和trigrams的初始准确率分别为79.1%和74.7%。结果表明,相比大多数英文词性标注的结果,对于古汉语的标注,已知词的初始标注准确率较低。这主要是因为大多数英语语料库中出现的单词中有一半以上是没有歧义的,但古汉语中歧义较多,因此当古汉语语料库较小时会导致其标注准确率较低。

还可从图3看出,对未登录词的标注,bigrams和trigrams的初始准确率分别为65.0%和60.8%。随着语料库的扩大,最终的准确率分别为85.1%和93.2%。trigram模型中对未登录词标注的高准确率表明,当上下文信息在特定位置具有很强的确定性时,能显著提高未登录词的标注精度。

4 总结

本文提出并分析了一种简单的基于语料库和统计的古汉语词性标注方法。首先为古汉语标注设计了一套标记集,然后将隐马尔可夫模型(HMM)和维特比算法相结合来进行词性标注,同时还提出一种针对汉语中未登录词的预测方法。最后本文构建了一个小型的古汉语语料库,选取了一个典型而简单的文本作为测试集。结果显示,随着训练集的增大,bigrams的准确率提高到94.9%,trigrams的准确率提高到96.5%。

在应用方面,本文工作主要在两个方面发挥作用:古汉语现代机器翻译和古汉语信息检索。对于今后的工作,首先需要解决古汉语的概率上下文无关文法(PCFG)。另外本文中程序使用的语料库较小且不包含注释,为了进一步研究可以先人工搭建一个中型语料库或者使用其他机构提供的语料库。

参考文献

[1] Brill E. A simple rule-based part-of-speech tagger[C]// Proceeding of the 3rd Conference on Applied Natural Language Processing(ACL). 地点,时间 1992:152-155.

[2] 钱智勇,周建忠,童国平, 等.基于HMM的楚辞自动分词标注研究[J].图书情报工作,2014,58(4):105-110.

[3] Hindle D. Acquiring disambiguation rules from text[C]// Proceedings of 27th Annual Meeting of the Association for Computational Linguistics, 地点,时间1989:页码.

[4] Viterbi A. Error bounds for convolution codes and an asymptotically optimal decoding algorithm[J]. IEEE Trans. on Information Theory, 1967(13):260-269.

[5] 韩霞,黄德根.基于半监督隐马尔科夫模型的汉语词性标注研究[J].小型微型计算机系统,2015,36(12):2813-2816.

[6] 余昕聪, 李红莲, 吕学强. 最大熵和HMM在中文词性标注中的应用[J]. 无线互联科技, 2014(11):页码?.

(收稿日期:2019.08.21)

猜你喜欢

古汉语
“同中有异之美”
《兰亭集序》中文化意象的翻译策略探微
梅县客家话对古汉语语音的传承
高等师范院校古汉语教学改革的思考
古汉语被动句历史演变的研究综述
标话词汇限定成分的后置
谈古汉语主语隐去对韩国语教学的启示
论“以”在古汉语中的介词功用
论古汉语词语活用的形象性特征
浅议词类活用的误用现象