7

好吧,我知道这个问题被问了多次,但我仍然无法用“可用”解决方案来解决它。希望对如何检测我的句子有任何进一步的想法或概念是python中的英语。可用的解决方案:

  • 语言检测器(在 ruby​​ 中,不在 python 中:/)
  • Google Translate API v2(不再免费,当我为学术目的做这个项目时,每月必须支付 20 美元。礼貌限制:0 个字符/天)
  • python的语言识别(找不到源代码,链接在下面。自动语言识别
  • Enchant(它不适用于 python 2.7?我是 python 新手,有什么指南吗?我敢打赌这将是我需要的)
  • 来自 NLTK 的 Wordnet(我不知道为什么缺少“wordnet.synsets”,只有“wordnet.Synset”可用。解决方案中的示例代码对我也不起作用 T_T,可能又是版本问题?)
  • 将英语单词存储到列表中并比较该单词是否存在(是的,当句子来自推特时,这是一种不好的方法......你知道:P)

工作解决方案

最后经过一系列的尝试,以下是可行的解决方案(替代上述列表)

  • Wiktionary API(使用 Urllib2 和 simplejson 来解析它。然后查找键是否为 -1 表示该单词不存在。否则它是英文。当然,在 twitter 中使用必须将您的单词预处理为没有特殊字符,如 @ #,?!. 对于如何找到密钥将在此处引用。Simplejson 和随机密钥值
  • Dogukan Tufekci 的回答(勾选)(弱点:假设小于 20 个字符的句子必须安装 PyEnchant 否则它将返回 UNKNOWN。虽然 PyEnchant 不支持 Python 2.7,但意味着无法安装并且不能工作到少于 20字句)

参考

4

2 回答 2

8

您可以尝试我通过Miguel Grinber 的 The Flask Mega Tutorial找到的guess_language库。看起来它支持 Python 2 和 3,所以应该没问题。

于 2013-03-07T00:49:41.247 回答
1

您也许可以利用隐马尔可夫模型来检测语言,每种语言都有自己的特征。

于 2013-03-07T00:42:59.063 回答