检测文本是否为英语(批量)

2024-03-29 07:18:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我在寻找一种简单的方法来检测一段简短的文字,几句话,是否是英语。在我看来,这个问题比试图检测任意语言要容易得多。有什么软件可以做到这一点吗?我是用python编写的,希望有一个python库,但是其他的东西也可以。我试过google,但后来意识到TOS不允许自动查询。


Tags: 方法语言软件google文字意识tos
3条回答

我读了一个用Trigrams检测英语的方法

你可以浏览文本,试着找出单词中最常用的三联图。如果用得最多的词与英语中用得最多的词相匹配,课文可以用英语写

尝试查看这个ruby项目:

https://github.com/feedbackmine/language_detector

编辑:这在这种情况下是行不通的,因为OP正在处理大量的文本,这与谷歌的TOS背道而驰。

使用Google翻译language detect API。文档中的Python示例:

url = ('https://ajax.googleapis.com/ajax/services/language/detect?' +
       'v=1.0&q=Hola,%20mi%20amigo!&key=INSERT-YOUR-KEY&userip=INSERT-USER-IP')
request = urllib2.Request(url, None, {'Referer': /* Enter the URL of your site here */})
response = urllib2.urlopen(request)
results = simplejson.load(response)
if results['responseData']['language'] == 'en':
    print 'English detected'

虽然没有Google的好,但是我使用Apache Nutch语言标识符已经取得了很好的效果,它带有自己的预训练ngram模型。我在一个大的(50gbpdf,主要是文本)真实世界数据语料库中用几种语言得到了很好的结果。

它是用Java编写的,但我相信如果您想用Python重新实现它,您可以从中重新读取ngram概要文件。

相关问题 更多 >