基于隐含狄利克雷分布的多语种文本的自动检测研究*

2017-11-01 15:02李增杰
关键词:多语种语种语料

张 巍, 李 雯, 陈 丹, 李增杰

(中国海洋大学信息科学与工程学院,山东 青岛 266100)

基于隐含狄利克雷分布的多语种文本的自动检测研究*

张 巍, 李 雯, 陈 丹, 李增杰

(中国海洋大学信息科学与工程学院,山东 青岛 266100)

本文提出无监督的基于隐含狄利克雷分布(LDA)的潜在语义模型来处理多语种混合文本的语种鉴别问题。区别于一般的依据困惑度对模型进行筛选的方法,本文介绍一种基于最小描述长度(MDL)的新方法,用collapsed Gibbs Sampling(CGS)学习算法来训练得到相应的LDA模型。本文采用mitlm工具包生成N-gram计数文件并构建了用于多语种识别的字符级语言模型。之后本文使用了3种不同的语种鉴别系统与LDA模型做对比实验。实验选取ECI/MCI标准数据库中9种欧洲系语言进行鉴别实验,在没有任何标注的情况下,实现了较好的准确率和召回率结果。

多语种识别;无监督;潜在狄利克莱分配;最小描述长度;Collapsed Gibbs抽样

随着现代互联网技术的不断发展,海量的文字信息随之产生,其中会出现不同语种的混杂现象。多语种识别问题在网络文本的自然语言处理领域是普遍存在的。在全球信息化的今天,同一网页文本中出现两种或者两种以上语言文字的可能性是很大的。如何从混合文本中找出某种语言或者按照语种分类文本就很有应用价值了。

多语言文本识别的研究侧重于对算法和模型进行改进和优化,目前的主要研究方式都是利用监督或者半监督的方法进行标注等研究,而这些方法会存在一些问题。比如当文本中含有非语料库语言时,那么用基于这个语料库训练出的模型就不能识别该文本所有的语种。或者训练语料最初就是混合有一些未知语种的,对于这些未知的语种,我们所了解的信息可能十分有限,所以若要构建单语语料库就会变得相当麻烦。比如要从维基百科等页面获取语料构建单语语料库时,通常会混合多种语言。其中有些语言对我们来说是完全陌生的,还有些关系亲近的语言混合在一起,很难用预训练语言识别工具识别出来。

现有的监督和引导方法仍难以解决这些问题,因此找到一个完全无监督的语言识别方法是尤其重要的。本文针对这一问题,提出了一种完全无监督的语言识别方法。在该方法中,将基于语料库的N-gram计数作为语言特征文件,不做任何平滑、修剪或插值处理。从语言识别的角度,对隐含狄利克雷分布(简称LDA)主题模型进行了重定义。采用基于LDA模型的CGS抽样(Collapsed Gibbs Sampling)来实现无监督的语言识别。同时,区别一般的依据困惑度对模型进行筛选的方法,本文将介绍一种基于最小描述长度原则的新方法。

1 概述

文本的多语种识别系统就是对需要计算机加工的以文本为载体的多种自然语言进行语种判定。系统需要对混杂了各种语言的文本进行语种识别,首先要做的就是收集各种语言文字的文本语料以用来构建语料库,然后提取各种语言的内在结构的规律和特征。每种语言的特征都有区别于其他语言,对该自然语言进行内在规律的描述就需要建立语言模型[1]。

本文的主要任务是对基于LDA的多语种识别模型的构建进行相关研究。首先选择性能最佳的mitlm工具包(其下载网址为http://github.com/mit-nlp/mitlm)生成N-gram计数文件,完成字符级语言模型的训练工作并构建用于多语种识别的字符级语言模型。然后将langID语种识别系统、Guess_language语种识别系统和本方法进行对比实验,并对实验结果进行了详细分析。最后,通过基于LDA的CGS来实现无监督的语种识别算法,成功构建了基于LDA模型的字符级统计语言模型,解决了表示问题。实验结果表明:在没有任何标注的情况下,通过改进LDA主题模型困惑度的问题,将基于LDA模型多语种识别方法与最新的监督学习识别工具相比,表现出具有可比性的精确度和召回率。

2 无监督的语种识别方法

2.1 LDA模型基本理论

为了能够使用无监督的方法鉴别语种,本文采用主题模型领域中的LDA模型。主题模型是对文档中发现隐藏的抽象主题的一种统计模型方法。LDA模型[2]是主题模型中最流行的一种,它是对文档集进行聚类的过程,在聚类之前需要说明要聚成的主题数目是多少。其过程是一种无需监督的学习方式,包含着两个层次的映射:文档~主题~词汇。

如果给定文档集的主题数为K个,则每个文档对应于含有K个潜在主题的多项式分布。其中第k个主题对应于一个覆盖词汇表的多项式分布Φk。词汇表由给定语料中所有互异的单词构成。对于第j个文档,它对应于主题的分布θj是以α为参数的狄利克莱分布作为先验分布。对于第k个主题,它对应于词汇的分布Φk对是以β为参数的狄利克莱分布作为先验分布。第j个文档中的第i个单词xij,先由文档~主题的分布θj生成j文档中第i个单词的主题zij=k,再由主题~单词的多项式分布Φk生成单词xij。因此,LDA模型的生成过程表示式为:

其中:Dir(*)表示狄利克莱分布;Mult(*)是多项式分布。

2.2 LDA的语言识别

传统的LDA的思想是文档被表示成潜在主题的随机混合,每一个主题都是一个词的分布。为了将LDA应用到语种鉴别中,我们把句子表示成潜在语言的随机混合,在这里每种语言以N元计数的形式表示。

这种方式实际上就构成了文档~语言和语言~N-gram的层次结构。它也可以通过LDA建模的方式来实现语种识别,在本文中暂称为LDA-LI。下面给出了生成LDA-LI模型的伪代码[3]:

//Language plate

for all languages k∈[1,K] do

//document plate

for all documents j∈[1,D] do

sample document lengthNj~Poiss(ξ)

//n-gram plate

for all n-grams i∈[1,Nj]in document j do

sample document lengthNj~Poiss(ξ)。

在LDA-LI的识别阶段,一个文档无论长短都会以一定的概率被归类为某种语言。一个文档可能以不同的概率从属于多个主题,那么就选择概率最大的那种语言作为该文档的从属语言。我们就认为这个文档是以最大的可靠性分类到该语言的。本文中识别单位是句子,也就是一句一句鉴别语种。LDA模型很严格,如果一个句子中含有几个其他语种的单词,该句子就会被鉴别为其他语种。而我们选取的ECI/MCI标准数据库中句子语种比较单一,语种混杂的情况非常少,所以有较好的语种分类可靠性。

3 算法和模型选择

3.1 Gibbs抽样

3.2 样本文档和特征空间

语料库在使用之前要先转换成对应的样本文档。首先将文本文件转成基于字符的N-gram计数文件,每一行代表一个句子的N-gram计数信息,这些计数信息又包含了该句子所含有的元组和它们出现的次数。

N-Gram计数中N的选取关系着统计语言模型的性能好坏。当N较大时,提供了更多的语境信息,等价类的区别性大但是可靠性低,计算量大,训练语料需要很多;而当N较小时,语境信息少,等价类的区别性小但是可靠性高,计算量小,训练语料需要不多。由于N-gram计算是有代价的,一般计算复杂度是N的指数分布。所以在自然语言处理当中,N小于等于5。基本上对于亚词级和词级语言现象,N从1~5基本可以覆盖。故本文将N设置在1~5之间,它可以从短元组或长元组中获取更多的信息。由于LDA具有平滑稀疏数据的能力,因此在这里只使用原始的N-gram计数,它可以不经过任何平滑,修剪或插值处理。实际上,平滑和修剪处理完全由超参数完成,它通常被配置较小的默认值(<1)。

3.3 模型选择和主题数

LDA主题模型的一个重要问题是如何确定适当的主题数量,这属于模型选择问题[5]。在大多数情况下,常常用困惑度来评价数据模型在主题数取不同值时的表现,其公式为:

其中:njv表示测试数据中第j个文档的第v个词出现的频率。如果模型是使用Gibbs抽样得到的,可以使用每个单词出现的概率来计算困惑度。其公式为:

但在实际情况中,困惑度始终会随着主题数量增加而降低。一般而言,困惑度越低越好。但是能够得到困惑度低的主题数可能远远大过实际的主题数。由于困惑度不一定要偏向小的主题数。因此使得困惑度在相同识别性能下可能不是寻找最小主题数的好方法。

所以在本文将介绍基于最小描述长度准则的新方法来寻找到尽可能小的主题数。最小描述长度准则是奥卡姆剃刀的一种形式化,其思路是:给定一个假设集合,能使得数据得到最小压缩的假设就是最好的假设。MDL是由Rissanen在1978提出的[6]。Grünwald 在2005年又对这种方法作了改进[7],这里使用改进的MDL。在给定模型T下数据D的复杂度如公式为:

Complexity(D|T)=L(T)+L(D|T) 。

L(T)是模型T的参数复杂度,而L(D|T)表示数据D在模型T的分布下的最小编码长度。一般来说,没有一种简单的方法表示L(T)和L(D|T),但考虑到LDA为贝叶斯模型,如下公式可以结合测试集上w的联合熵和给定的主题模型T写为:

根据最大熵原理,每个文档应该有相同的发生概率,那么在测试集的文档上主题分布的估计为

H(w|k)=-∑jβjklogβjk。

需要注意的是,那些不存在于测试集但存在于训练集的条件项,在最大熵原理下具有相同的概率。

这样,公式的第一个参数惩罚具有更多主题的模型且偏差对H(w,T)的影响比对困惑度的影响小。因为在不同的测试集H(T)和H(w|T)随着pk的更改而更改,所以改进后的方法明显提高了H(w|T)的有效性。

4 构建字符级N-Gram统计语言模型

4.1 系统实现流程

多语种识别系统分为2个阶段:第一个阶段是LDA模型的伪训练过程;第二个阶段是利用LDA模型进行语种识别。系统流程图如图1所示:

图1 系统流程图Fig.1 System flowchart

第一阶段为数据伪训练阶段。首先选定合适的语料库,接下来进行数据的预处理工作。由于语料库的数据不能直接用来构建N-gram计数,在实际操作中我们需要对语料中的标点符号、数字、大小写等字符进行一些处理。根据需要保留一些有助于语种识别的符号并删掉一些相对于语种识别来说无关紧要的符号。得到预处理过的数据以后,选择可靠性高的mitlm语言模型工具生成1~5元的N-gram计数文件。得到N-gram计数文件的过程就是提取语料特征的过程。接着对数据集进行Collapsed Gibbs采样直到其收敛并更新LDA模型的参数。

第二阶段为语种识别阶段。首先对测试文本也做特征提取工作,根据需要保留一些有助于语种识别的符号并删掉一些相对于语种识别来说无关紧要的符号。然后将抽取出的1~5元N-gram计数文件通过Collapsed Gibbs抽样直到其收敛,就可以得出主题分布,即语种分类结果。

4.1 语料库的抽取

在实验中,使用初始欧洲语料库/多语言语料库(ECI/MC1)。它是在语言识别的研究(中使用最广泛的一个语料库,包含27种不同语言,有着小说,诗歌等多种丰富的语料环境。

在这个语料库挑选其中的9种语言进行实验。每种语言的名称、字符标识以及选取语言的字母数如下:荷兰语(DUT-291K)、英语((CHI-108K)、法语(FRE-108K)、德语(GER-171K)、意大利语(ITA-99K)、葡萄牙语(POR-107K)、西班牙语(SPA-107K)、瑞典语(SWE-91K)和土耳其语(TUR-109K)。对每种语言,我们使用90%的训练数据及10%的测试数据。

4.2 文本预处理

直接从上面语料库抽取到的数据格式是混乱的,需要对这些数据进行一系列的预处理才可以进行下一步的识别实验。文本预处理的步骤如下:

第一步:为了能让mitlm能够按照句子统计词频

将抽取到的数据以句子为单位进行分割。文本分割功能利用Perl脚本编写程序实现,生成一行为一个文本文件的多个小文本文件。

第二步:由于语料库包含多国语言,有些语言包含特殊字符,如果编码格式不对,打开文本是就会显示乱码。所以需要在程序中统一语料文本的编码格式为UTF-8,解决乱码不识别的问题。

第三步:对于语料库分好的小文本数据,需要对多余字符以及空格进行处理。由于标点符号、数字等对语言识别的结果没有多少贡献意义,因此,将语料文本中的语料除了字母(包括特定字母)和上撇号保留外,其余的字符删除。由于在删掉一些字符的情况下,会留出多余的空格。因此在上一步处理完成后,需要将多余空格合并。为了标识空格我们使用space_这个标识替换句子中的所有空格。

4.3 N-Gram计数文件处理

本文选用mitlm工具构建1~5元统计语言模型。首先把9种语言的文本数据混合,一共用10组训练数据,每组9个文本文件。通过文本的预处理得到了数以万计的小文本。一条mitlm命令只作用于一个小文本文件,所以我们使用批处理命令以方便同时处理大量文本,将它们按照以下命令格式写入train.sh文件:

./estimate-ngram-o 5-t./task/0/fre.txt-wc./task/0/fre.counts

-t后面是输入文本的路径,-wc是输出文本的路径。

将生成的命令列表train.sh拷贝到Ubuntu12.04下,打开命令终端,输入chmod a+x train.sh,使得train.sh获取执行权限。然后再输入:dos2unix train.sh。最后运行./train.sh。

mitlm在处理文本时会自动地在句首和句末分别加上这样的界定标志。因为在一元模型中不需要这种界定标志,所以需要将一元中的带标志的项删掉。为了后续实验的顺利进行,还需要对处理后的文本进行文本后处理。

以生成5元计数文件格式为例,说明文本后处理过程:

第一步:将预处理中的标记、space_删掉。

第二步:检查生成的小文本个数和源文本个数是否一致。如果一致,则汇总小文本,将它们合并到同一个文本中。如果不一致的话,执行第三步。

第三步:在mitlm中产生计数文件时,会把小于4个字符的文本自动忽略。这就导致了生成的计数文件个数小于源文件夹中文件的个数,因此需要做对比删除处理,在源文件夹中删掉计数文件中没有的文件,然后再按序合并。

5 多语种识别对比实验结果与分析

在构建完成字符级的N-Gram统计语言模型之后,在此基础上,本文接着进行了2个关键实验,第一个实验是LDA-LI系统主题数目与困惑度的关系实验,第二个实验是采用10折交叉验证的方法分别进行LDA-LI与langID和Guess_language识别系统的测试和对比试验。

5.1 LDA-LI系统主题数目与困惑度的关系实验

本节实验将对LDA-LI取不同的主题数值来验证语种识别的困惑度。由图2可以看出,随着主题数目取值越大,语种识别的困惑度就越低。我们知道,困惑度越低就说明在识别模型的性能越高。但是,只一味地追求低困惑度似乎不那么可靠。获得低困惑度的主题数目远远高于实际的主题数目。

不同于困惑度的选择,使得LDA-LI的描述长度H(w,T)达到最小值的主题数是9,和实际的语种数目一样。如图3所示,发现在没有任何标注的情况下,MDL这种方法似乎知道实际的语种数。

图2 主题数目和困惑度的关系Fig.2 The relationship between topics and perplexity

图3 主题数和H(w,T)的关系Fig.3 The relationship between topics and H(w,T)

由图2和3可知,主题数目取9时LDA-DI的描述长度H(w,T)达到最小值,和实际语种数一样。而如果一个句子含有几个其他语种的词,该句子会被单独作为一个Clustering/Topic。所以通常情况下,Topic Number会比实际语种数稍大。实际上,在主题数目选择为12或者16的时候,LDA-LI的识别准确率和召回率是最好的。主题数目为12的时候识别所用的时间也比主题数为16的时候好。因此,MDL实际上给出了一个参考的语种数目,LDA-LI中需要两个或者更多的主题来描述一种语言。

5.2 10折交叉验证实验

我们已经分好了10组测试数据,将分别在langID[8]工具、Guess_language[9]识别工具和LDA-LI系统上进行测试。需要说明的是,我们假定langID工具和Guess_language识别工具中的语言模型是通过非常大的训练语料库训练得到的。我们直接使用工具中的模型。LDA-LI使用的模型则是通过有限的语料库得到的。首先,我们对3种工具都通过10组测试文本进行识别,完成所有识别任务就可以得到1~10组的实验结果。

然后,每一组识别结果用txt文本的格式保存。之前我们保留了测试文本中的语言分布情况,根据语言分布情况对识别结果进行统计。每一组测试中需要统计的内容有:9种语言中每一种语言的句子总数、识别正确的句子个数、识别为该语言的句子的个数。

最后,计算每组测试中的每种语言的准确率和召回率,并将上一步的统计内容和准确率召回率一并制成表格。

本文首先通过多语种识别系统对数据进行训练,得到10组训练数据,每组训练数据中包含9种语言。然后又使用进行10折交叉验证,以10组训练数据为准,共有10个识别结果集合。

对langID工具和Guess_language识别工具也作以上工作并将10组训练结果记录并制成表格。LDA-LI我们分别使用12个主题数和16个主题数进行分类。我们将每一组测试数据的每种语言的句子数目统计出来,然后统计了正确句子的个数和识别为该语言的句子的个数。准确率的计算是:正确的句子/识别为该语言的句子;召回率[10-11]的计算是:正确的句子/句子数目。

表1 9种语言10折交叉验证的平均精确度 /%

由表1和图3可以看出,在使用相同训练集测试集的时候,表现最好的是Guess_language识别工具。需要说明的是,此识别工具的模型可以由构建字符级的语言模型的方法完成,然后使用逆频技术保留最能代表某种语言的300个元组。在此模型上进行识别,其精确度很高,一般都在99%左右,最低的平均准确率也在97%以上。相比而言,langID在有限的训练集上训练模型进行识别,得出的结果不如大数据量训练的模型识别的平均准确率高。该实验中,我们还对LDA-LI的主题数进行了12和16的取值。我们发现LDA-LI的表现不稳定,根据语言的不同,语言和语言之间的平均准确率差别比较大。另外,这两种主题数下的分类,都不能使LDA-LI产生让人很满意的结果。

图4 9种语言10折交叉验证的平均精确度Fig.4 Average precision on 10 fold validation of 9 languages

图5 9种语言10折交叉验证的平均召回率Fig.5 Average recall on 10 fold validation of 9 languages

表2 9种语言10折交叉验证的平均召回率 /%

由表2和图5可以看出平均召回率方面,langID的值普遍高于其他两种识别系统。Guess_language识别工具的表现比较稳定,语言和语言之间的差距不是很大。相比而言,langID的稳定性稍微差一些。LDA-LI识别系统在主题数取16的时候稳定性要高于取12的时候。

6 总结与展望

本文介绍了一种无监督的基于LDA的多语种文本语种识别系统。首先将从语料库中抽取的文本数据进行预处理,得到纯净的实验需要的多个小文本文件。然后使用mitlm工具包完成字符级语言统计模型的构建,使用基于LDA的CGS来实现无监督的语种识别算法。通过LDA-LI系统主题数目与困惑度的关系实验结果表明使用改进的使用最小描述长度的方法可以较好地确定主题数和困惑度的关系。最后通过LDA-LI、langID和Guess_language三种识别系统的10折交叉验证对比实验,结果表明虽然在准确率方面Guess-language的识别效率要高,但是就实验的数据集消耗而言,Guess-language需要大数据量训练集,而LDA-LI可以在小规模有限数据集就可完成,所以就整体性能而言LDA-LI测试的平均准确率和召回率高些。未来的工作将考虑如何进一步提高N-Gram的识别性能空间,结合LDA模型和Collapsed Gibbs抽样技术结合最小主题数的方法对多语言文本进行更好的识别和分类。

[1] 黄昌宁. 统计语言模型能做什么?[J]. 语言文字应用, 2002(1): 77-84.

Huang Changning. What Can We Do With Statistical Language Model?[J]. Language Application, 2002(1): 77-84.

[2] Ramage D, Hall D, Nallapati R, et al. Labeled LDA: A supervised topic model for credit attribution in multi-labeled corpora[C]// Singapore: Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing: Volume 1-Volume 1. Association for Computational Linguistics, 2009: 248-256.

[3] Zhang Wei, Robert A, Clark J, et al. Unsupervised Language Filtering using the Latent Dirichlet Allocation[C]. Singapore: Proc of Interspeech, 2014: 1-4.

[4] Porteous I, Newman D, Ihler A, et al. Fast collapsed Gibbs sampling for latent Dirichlet allocation[J]. Proceedings of Acm Sigkdd International Conference on Knowledge Discovery & Data Mining, 2008, 16: 569-577.

[5] 石晶, 李万龙. 基于LDA模型的主题词抽取方法[J]. 计算机工程, 2010, 36(19): 81-83. DOI: 10. 3969/j. issn. 1000-3428. 2010. 19. 028.

Shi Jing, Li Wanlong. Subject extraction method based on the LDA model[J]. Computer Engineering, 2010, 36(19): 81-83. DOI: 10. 3969/j. issn. 1000-3428. 2010. 19. 028.

[6] Shi J. Modeling by shortest data description[J]. Automatica, 1978, 14(5): 465-471.

[7] Grunwald P. A Tutorial Introduction to the Minimum Description Length Principle[M]. Advances in Minimum Description Length Theory & Applications, 2004.

[8] Lui M, Baldwin T. An off-the-shelf language identification tool[C]. Python: Proceedings of the Acl System Demonstrations, 2012: 25-30.

[9] Bird A, Klein E, Loper E. Natural Language Processing with Python—Analyzing Text with the Natural Language Toolkit[M]. New York: Computational Linguistics-Applications. Studies in Computational Inteeligence, 2009, 458.

[10] Goutte C, Gaussier E. A probabilistic interpretation of precision, recall and f-score, with implication for evaluation[J]. Lecture Notes in Computer Science, 2005: 27: 345-359.

[11] 朱学芳, 徐建平. 计算机语音信号处理与语音识别系统[J]. 南京邮电大学学报:自然科学版, 1998(5): 113-115.

Zhu Xue Fang, Xu Jianping. Computer speech signal processing and speech recognition system[J]. Journal of Nanjing University of Posts and Telecommunications: Natural Science Edition, 1998(5): 113-115.

LDA-BasedApproachforAutomaticDetectionofMultilingualText

ZHANG Wei, LI Wen, CHEN Dan, LI Zeng-Jie

(College of Information Science and Engineering Technology, Ocean University of China, Qingdao 266100, China)

The paper proposed an unsupervised multilingual identification method based on Latent Dirichlet Allocation to deal with the automatic detection of multilingual text. From the perspective of speech recognition, it reforms the LDA for language identification, using n-grams as the features. Different from the usual method of selection of topic number according to the perplexity, the paper introduces a new method based on minimum description length(MDL for short), adopting the Collapsed Gibbs Sampling as the learning method to construct the unsupervised language identification based on the LDA model. The paper takes the mitlm toolkit to generate N-gram counting files and establishes the character level’s language model in multilingual identification. Then the paper uses three other language identification systems for comparison with our LDA model. The experiment chooses nine euro languages form the ECI/MCI benchmark to do the identification experiment, at the same time the paper makes a detailed analyze on the trail results, realizing a good accuracy and recall result without any annotation.

multilingual identification; unsupervised; LDA; MDL; Collapsed Gibbs sample

TP391

A

1672-5174(2017)12-130-07

责任编辑 陈呈超

10.16441/j.cnki.hdxb.20150211

张巍, 李雯, 陈丹, 等. 基于隐含狄利克雷分布的多语种文本的自动检测研究[J]. 中国海洋大学学报(自然科学版), 2017, 47(12): 130-136.

ZHANG Wei, LI Wen, CHEN Dan, et al. LDA-based approach for automatic detection of multilingual text[J]. Periodical of Ocean University of China, 2017, 47(12): 130-136.

山东省自然科学基金项目(ZR2012FM016)资助

Supported by National Science Foundation of Shandong Province(ZR2012FM016)

2015-10-10;

2016-09-20

张 巍(1975-),男,副教授。E-mail:weizhang@ouc.edu.cn

猜你喜欢
多语种语种语料
青岛市多语种应急语言服务现状与需求调查研究
语联世界,言通天下
藏语称谓在多语种史料中的行用路径与语义演变
基于归一化点向互信息的低资源平行语料过滤方法*
《波斯语课》:两个人的小语种
濒危语言与汉语平行语料库动态构建技术研究
国内外语用学实证研究比较:语料类型与收集方法
从英语硕士到法国博士——我的留学规划和多语种学习之路
走出报考小语种专业的两大误区
英语教学中真实语料的运用