algorithm - 语言检测如何工作?

标签 algorithm nlp pattern-matching

一段时间以来,我一直想知道 Google 翻译(或者可能是假设的翻译器)如何从“来自”字段中输入的字符串中检测语言。我一直在考虑这个问题,我唯一能想到的就是在输入字符串中寻找一种语言独有的单词。另一种方法可能是检查句子结构或除了关键字之外的其他语义。但考虑到不同的语言及其语义,这似乎是一项非常困难的任务。我做了一些研究,发现有一些方法可以使用 n-gram 序列并使用一些统计模型来检测语言。也希望得到高水平的回答。

最佳答案

以英文维基百科为例。检查字母“a”之后出现“b”的概率是多少(例如)并对所有字母组合执行此操作,您最终将得到一个概率矩阵。

如果你对不同语言的维基百科做同样的事情,你会得到每种语言的不同矩阵。

要检测语言,只需使用所有这些矩阵并将概率用作分数,假设用英语你会得到这个概率:

t->h = 0.3 h->e = .2

在西类牙语矩阵中你会得到那个

t->h = 0.01 h->e = .3

“the”这个词,使用英文矩阵,会给你 0.3+0.2 = 0.5 的分数 并使用西类牙语:0.01+0.3 = 0.31

英文矩阵胜出所以必须是英文。

关于algorithm - 语言检测如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7670427/

相关文章:

python - 将两个变量分配给一个列表切片

algorithm - 使用层的一维速度模型的数据结构和算法?

algorithm - "user already exist"的设计方法

machine-learning - 互动学习

nlp - NLP 依赖树转换为二叉树?

python - 将具有多种拼写的单词映射到关键字列表的最佳方法?

parsing - 使用scala的日志解析策略

swift - Swift 2 中 for 循环的奇怪行为

algorithm - 矩阵链乘法和有点不同的问题?

scala - 在 Scala 中匹配任意列表大小