一种针对中文语言模型的词典优化方法
摘要:
本文提出了一种针对中文语言模型的词典优化的方法。该方法是一个由两个
阶段组成的迭代过程,两个过程分别是词典生成和词典剪枝。在第一个阶段,我
们使用统计学的方法从一个相当大的训练语料中抽取出合适的新词。在第二个阶
段,我们根据困惑度最小化原则对抽取的新词进行剪枝使之符合预设的内存限制。
实验结果表明相对于基线词典来说,该方法在字困惑度上能够减少 6%。
1. 简介
几乎所有针对统计语言处理的技术都是基于字的。而且,基于字的统计语言
模型(LM)已经成功的应用于很多领域,比如语言识别、信息检索、口语理解
等。
尽管基于字的语言模型在西方语言上性能很好,但是在中文上却很难应用。
中文不像西文那样词语之间有很好的界定(使用空格分隔),而是基于字的,即
字与字、词与词之间没有明显的分隔符。因此,在中文上,词语没有明确的定义,
也不存在一个公认的词表。进一步说,一个句子的切分结果很可能不是唯一的。
这些因素决定了将语言模型应用于中文的复杂性,而且还存在未登录词这一大问
题。
本文提供了一种新的针对中文语言建模的词表优化方法。这个方法是一个包
含两个阶段的迭代过程。第一个阶段基于互信息生成新词。第二个阶段使用困惑
度最小化原则对生成的词典进行剪枝。实验表明相对于基线词典来说,该方法在
字困惑度上有 6%的减少。
在第二部分,我们进一步介绍中文处理的更多细节,并对进来的相关研究成
果进行简要的讨论。在第三部分,我们详细介绍词表优化方法。在第四部分,我
们展示出实验结果。最后,我们给出结论。
2. 中文处理及近期研究成果
中文以字为基础,中文中有 6763 个常用字。每个词语都是一个语义单元,
平均约相当于 1.6 个字。但是,目前还没有一个标准的词典——语言学家可能在
一些词语上达成共识,但他们会在更多的词语上有所争论。
而且,中文句子中词与词之间没有空格。所以,一个字序列在分词层面上可
能会有很多种解释。
比如,‘马上下来’的可以切分为‘马上|下来’和‘马上|下|来’。前者表
示立刻下来,后者则表示从马上下来。
一些人可能以为基于字的语言模型可以避过上述问题。但是,前人的工作
[4]
已经表明基于字的语言模型不能得到好的结果,因为组成词的每个字总是有不同
的意义。因此,词典对于中文语言模型来说是不可或缺的。近年来,有很多针对
词典建模的相关工作。在[4][5]中,词典元素可以是词语或其他的‘分割模式’,
它们都是用统计学方法从训练语料中抽取出来的。[6]中研究了将二元对添加到
词典中的效果,得到了这样做可以大大减少语言模型的困惑度的结论。但是,盲