用python检测英文文本

时间:2013-03-07 00:38:11

标签: python api python-2.7 nlp

嗯,我知道这个问题被多次询问,但我还是无法用“可用”解决方案解决它。希望获得有关如何检测我的句子的任何进一步的想法或概念是python中的英语。可用的解决方案:

  • 语言检测器(在ruby中不在python中:/)
  • 谷歌翻译API v2(不再免费,在我为学术目的而做这个项目时,每个月必须支付20美元。礼貌限制:0个字符/天)
  • python的语言标识(未找到源代码,链接如下。automatic-language-identification
  • Enchant(它不适用于python 2.7?我是python的新手,任何指南?我打赌这将是我需要的那个)
  • 来自NLTK的Wordnet(我不知道为什么“wordnet.synsets”丢失,只有“wordnet.Synset”可用。解决方案中的示例代码对我来说也不适用于T_T,可能再次出现版本问题?)< / LI>
  • 将英文单词存储到列表中并比较单词是否存在(是的,这是一种不好的方法,而句子来自twitter和......你知道:P)

工作解决方案

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

  • Wiktionary API(使用Urllib2和simplejson解析它。然后查找键是否为-1意味着该单词不存在。否则它是英语。当然,在twitter中使用必须预先处理你的单词没有特别的像@#,?!这样的角色。如何找到这里引用的密钥。Simplejson and random key value
  • 来自Dogukan Tufekci的答案(勾选)(弱点:假设长度短于20个字符的句子必须安装PyEnchant或者它将返回UNKNOWN。虽然PyEnchant不支持Python 2.7,但意味着无法安装并且无法工作不到20个字符的句子)

参考

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:1)

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