系统学习NLP(二十五)--语种识别landID

Posted Eason.wxd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统学习NLP(二十五)--语种识别landID相关的知识,希望对你有一定的参考价值。

一.项目简介

1.1LangID & langid

项目地址:https://github.com/saffsd/langid.py

Langid是一个现成的语言识别工具。语言识别(LangID)可用于USENET信息,网络搜索词,多语言文本检索,语法分析等领域。从1990年起,LangID就被视为有监督的机器学习任务,并极大地受到文本分类(text categorization)研究的影响[3]。这里我们研究的是单语言(Monolingual)文本的语言识别问题。

langid.py是一个全监督分类器,主要基于多项式(multinomial event model)的朴素贝叶斯分类器。[1][2] 它用共包括97种语言的多场景(domain)的语料对模型进行了训练,场景包括5类:政府文件,软件文档,新闻电讯,在线百科和网络爬虫。

1.2 langid工具优点

1.      与传统文本识别工具不同,可现成使用(off-the-shelf)

2.      模型适用于不同的文本场景(domain),不受场景特征(domain-specific features)的影响

3.      代码轻便易部署,且只用到单个文件

4.      执行速度快

5.      可以作为网络服务(network/internet service)

6.      langid.py与WSGI兼容,可以部署在支持WSGI的网络服务器上,实现并行运算

1.3 langid模型的系统结构

        

二.文档分类模型

2.1 多项式朴素贝叶斯分类器[3]


注意,这里写的不对,P(Ci)不是根据最大似然得到,是直接根据样本中每种类别的个数占比就可以。另外,term只是特征,即特征独立同分布,P(D|Ci)才可以用连乘方式计算,也就是朴素的含义。 所谓的多项式,主要是指这里假设一篇文章是由服从多项式分布的单词生成的。P(D|Ci)的计算,与实际多项式分布有点差异,前面少了个|di!,是因为这里由argmax操作。


三.文本特征项的确定

         本节我们讨论二中的分类模型特征(项)的确定。由于我们将对任意场景的网络文档进行语言识别,因此需要一种对场景不敏感的文本表示(document representation)方法[5]。byte n-grams可以直接提取特征不需做编码检测,这里我们采用byte n-grams而不是 codepoint n-grams(具体查看[5])(这里byte n-grams 指字符级N-gram,之所以在这里这么选,是因为这里的语言识别,不受场景影响,不受原始语言编码影响,采用codepoint n-grams的话,需要切词,由此导致a.过度分割特征空间,b.编码之间的虚假匹配)。

3.1 byte n-grams[4]

         原文献中n-grams的应用是文本分类(textcategory),这里我们可以认为类别是语种,本质上也是分类问题。



3.1.3 如何建立N-gram频率表

算法流程见下,就不在此累述了。

 

至此,我们就可以将得到的N-gram频率表作为二.中模型的输入。


3.2 特征选取

         如果希望降低上述N-gram频率表的词表大小,我们可以选择具有较高平均互信息的特征N-gram项;且这些项对于同一语言,在不同场景下的分布应该相似,即对场景不敏感,即 (language-domain) score较低。具体的特征选取见[3]和[2]中的FeatureSelection部分。

四.结论

对于语言检测,测试文档越长准确率越高,但通过对micor-blog & twitter等进行实验,langid.py具有较高的准确率和识别速度,因此适用于长/短文档,所以可以考虑将其作为我们search query的语言识别工具。

五.参考文献

[1]Marco Lui 安定Timothy Baldwin, langid.py: An Off-the-shelf Language Identification Tool.

[2] Andrew McCallum, Kamal Nigam, A Comparison of Event Models for Naive Bayes Text Classification

[3] Marco Lui and Timothy Baldwin, Cross-domainFeature Selection for Language Identification

[4] William B. Cavnar and John M. Trenkle, N-Gram-BasedText Categorization

[5] Timothy Baldwin and Marco Lui, Language Identification: The Long and the Short of the Matter


补充:http://www.meilongkui.com/archives/431

以上是关于系统学习NLP(二十五)--语种识别landID的主要内容,如果未能解决你的问题,请参考以下文章

SIGAI深度学习第十五集 循环神经网络4

系统学习NLP(二十八)--GPT

系统学习NLP(二十八)--GPT

02-NLP-02-用朴素贝叶斯完成语种检测

系统学习NLP(二十六)--NBSVM

Linux 学习总结(二十五) 系统管理4