好吧,我知道这个问题被问了多次,但我仍然无法用“可用”解决方案来解决它。希望对如何检测我的句子有任何进一步的想法或概念是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字句)
参考