用python检测英文文本

1my*_*myb 7 python api nlp python-2.7

好吧,我知道这个问题被多次询问,但我还是无法通过"可用"解决方案来修复它.希望获得有关如何检测我的句子的任何进一步的想法或概念是python中的英语.可用的解决方案:

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

工作解决方案

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

  • 维基词典API(使用Urllib2和simplejson解析它.然后查找键是否为-1意味着该单词不存在.否则它是英语.当然,在twitter中使用必须预先处理你的单词,如@的特殊字符#,?!.关于如何找到密钥会在这里引用.Simplejson和随机密钥值)
  • 来自Dogukan Tufekci的回答(勾选)(弱点:假设长度短于20个字符的句子必须安装PyEnchant或者它将返回UNKNOWN.虽然PyEnchant不支持Python 2.7,但意味着无法安装并且不能工作到少于20个字符句子)

参考

Dog*_*kci 8

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

  • 你的导入应该是这样的:来自guess_language import guessLanguage,你的调用应该是guessLanguage('我的句子').你正在调用错误的模块.如果您尝试了解所说的内容,则类型错误确实很有帮助.在这种情况下,它表示您正在调用"模块"对象. (3认同)