用什么方法来识别写入文本的语言?

时间:2012-05-17 11:37:26

标签: nlp

如果我有一个给定的文本(长或短),您通常会使用哪种方法检测它所写的语言?

很明显:

  • 您需要一个训练语料库来训练您使用的模型(例如神经网络,如果使用的话)

我想到的最简单的事情是:

  • 检查文本中使用的字符(例如,平假名仅用于日语,变音符号可能只用于欧洲语言,ç用法语,土耳其语......)。
  • 将支票增加到两个或三个字母对,以查找语言的特定组合
  • 查找字典以检查哪些单词出现在哪种语言中(可能只是没有词干,因为词干取决于语言)

但我想还有更好的方法。我不是在寻找现有项目(这些问题已经得到解答),但是对于像Hidden-Markov-Models,Neural Networks这样的方法,......可以用于此任务。

2 个答案:

答案 0 :(得分:2)

在我正在研究的产品中,我们使用基于字典的方法。 计算训练语料库中所有单词的第一相对概率,并将其存储为模型。

然后逐字处理输入文本以查看特定模型是否给出最佳匹配(比其他模型好得多)。

在某些情况下,所有型号都提供了非常糟糕的匹配。

几点有趣:

  1. 当我们使用社交媒体时,尝试了规范化和非规范化匹配(在这种情况下,归一化是从符号中去除变音符号)。非标准化匹配具有更高的权重
  2. 这种方法在非常短的短语(1-2个单词)上工作得相当糟糕,特别是当这些单词存在于少数几种语言中时,就是少数欧洲语言的情况
  3. 另外为了更好的检测,我们正在考虑添加每个字符的模型,如您所述(某些语言具有某些独特的字符)

    顺便说一句,我们使用ICU库来分割单词。适用于欧洲和东方语言(目前我们支持中文)

答案 1 :(得分:0)

检查 Cavnar和Trenkle 算法。

相关问题