如何确定网页的语言是否为英语?

4
我想知道一个网页是否是英文的。有没有好的方法可以做到这一点?
最接近的我找到的是在PHP中从字符串中检测语言,但它对我来说用处不大。
有什么建议吗?
我有一个样本非英语网站:

我会搜索单词“the”。如果是英语,那么应该有很多“the”。 - ahmetunal
上述俄语示例网站确实包含一些 "the's"。 - AgA
相关/重复问题:http://linguistics.stackexchange.com/questions/1871/efficient-linguistic-algorithms-for-detecting-language-of-a-website - Mark Butler
4个回答

2

看起来在您提供的问题中,几乎所有或很多可能性都可以检测语言。为什么您不能使用其中一个提出的答案呢?

还有一种解决方案(但不是可靠的),是查找具有语言信息的元标记,例如:

<meta name="DC.language" content="en" scheme="DCTERMS.RFC3066">
<meta name="keywords" lang="en" content="some content">
<meta http-equiv="content-language" content="en">

我有一个示例网站,页面上没有语言词:http://24-support.com/ - AgA

1

1

可能没有完美的解决方案,您需要一组检查并逐个执行它们。如果HTML页面符合tonymarschall的答案,您可能希望从可以检测语言的检查开始。

作为备用检查,您可以使用英文停用词列表,它们用于搜索引擎中过滤语言中最常见的单词。在您的情况下,您将需要计算它们在HTML页面的文本部分中出现的次数。如果它们超过某个值,您可以相当准确地猜测您正在查看英文文本。

尝试在这里查找列表。此外,这篇文章展示了您也可以使用的N-gram方法。


1

我使用http://www.alchemyapi.com/来检测语言。你可以取文本片段并将其传递给他们的API。它可以检测出大多数语言,并且非常准确。他们提供一个免费的API,每天允许1000个请求,这对于中等使用是可以接受的。否则,价格会飞涨。

您还可以尝试Google翻译API:

http://code.google.com/apis/language/translate/v2/getting_started.html#language_detect

然后还有这个:

http://langid.net/identify-language-from-api.html

他们提供了相当多的免费请求,但我不知道它们有多准确。绝对值得一看。


@AgA 我刚刚更新了我的回复,现在允许每小时免费进行多达1,000个请求。 - Hawkee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接