用python检测英文文本

用python检测英文文本,python,api,python-2.7,nlp,Python,Api,Python 2.7,Nlp,嗯,我知道这个问题被问了很多次,但我仍然无法用“可用”的解决方案来解决它。希望得到更多关于如何检测我的句子的想法或概念,我的英语是python的。可用的解决方案: 语言检测器(ruby而非python:/) Google Translate API v2(不再免费,当我为学术目的做这个项目时,每月必须支付20美元。礼貌限制:0个字符/天) python语言标识(未找到源代码,链接如下。) (这不是为python 2.7准备的?我对python还不熟悉,有什么指南吗?我打赌这将是我需要的) NL

嗯,我知道这个问题被问了很多次,但我仍然无法用“可用”的解决方案来解决它。希望得到更多关于如何检测我的句子的想法或概念,我的英语是python的。可用的解决方案:

  • 语言检测器(ruby而非python:/)
  • Google Translate API v2(不再免费,当我为学术目的做这个项目时,每月必须支付20美元。礼貌限制:0个字符/天)
  • python语言标识(未找到源代码,链接如下。)
  • (这不是为python 2.7准备的?我对python还不熟悉,有什么指南吗?我打赌这将是我需要的)
  • NLTK中的Wordnet(我不知道为什么缺少“Wordnet.Synset”,只有“Wordnet.Synset”可用。解决方案中的示例代码对我也不起作用,可能又出现版本控制问题了?)
  • 将英语单词储存在列表中,比较单词是否存在(是的,这是一种不好的方法,而句子来自twitter和..你知道:P)
工作解决方案

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

  • Wiktionary API(使用Urllib2和simplejson对其进行解析。然后查找关键字是否为-1表示该单词不存在。否则它是英文的。当然,在twitter中使用时,必须将您的单词预处理为没有特殊字符,如@#,?!。有关如何查找关键字,请参阅此处。)
  • Dogukan Tufekci的回答(勾选)(缺点:假设长度小于20个字符的句子必须安装PyEnchant,否则它将返回未知值。虽然PyEnchant不支持Python 2.7,但这意味着无法安装且无法使用长度小于20个字符的句子)
参考资料


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

您可以尝试我通过。看起来它支持Python 2和3,所以应该可以。

有趣的问题。将单词存储在列表中的一个改进是将它们存储在集合或字典中。列表法是O(n),其他方法是O(1)。不要把答案放在问题中,而是把它作为答案发布。如果你有答案,回答你自己的问题是令人鼓舞的(谢谢)最近我找不到文档,被忽略了。顺便说一句,你有没有关于如何解决这个问题的线索?导入无错误,但当我尝试调用guess_语言(“我的句子”)时,它会返回以下内容:回溯(最近一次调用):文件“”,第1行,在TypeError中:“模块”对象不可调用。您的导入应为:从guess_语言导入guess语言,您的调用应为guess语言(“我的句子”)。您正在调用错误的模块。如果您试图理解所说的内容,则类型错误确实很有帮助。在本例中,它表示您正在调用“module”对象。Tefekci,非常感谢;)烦人的文档-.-@dokukantufekci非常感谢!文件对我没有帮助。。。但现在它正在工作:-)我可以有一些参考链接吗;)很抱歉这么简单,但基本上,特定字节序列的概率取决于语言。在英语中,“hello”表示的是一个更可能的字节序列,而不是语言中很少出现的序列,例如“encontar”。对于单个单词来说,差异可能很小,但是如果你有一个短语,你就能够得到一个更具决定性的结果。坦白说,我同意多古坎的答案。