2012-03-20 104 views
3

我只是想知道一个网页是否是英文的。有没有什么好的方法来做到这一点?如何知道网页的语言是否是英文?

我发现的最接近的是Detect language from string in PHP但一些使用我的..

有什么建议?

我有一个样品的非英语site

+0

我会搜索单词“the”。如果是英语,应该有很多“the”。 – marvin 2012-03-20 18:25:06

+0

尽管上面的俄文样本网站确实包含了一些“the's”。 – AgA 2012-03-21 04:10:27

+0

相关/重复问题:http://linguistics.stackexchange.com/questions/1871/efficient-linguistic-algorithms-for-detecting-language-of-a-website – 2013-03-11 06:35:39

回答

2

似乎有几乎所有/很多possiblities的检测你的链接问题的语言。为什么你不能使用其中一个建议的答案?

还有一个解决方案(但不可靠的)北京时间寻找meta标签中包含的语言信息:

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

我有这个样本网站没有lang字在页面中:http://24-support.com/ – AgA 2012-03-20 17:52:30

1

大概没有完美的解决方案,你需要的是有一组检查和一次执行一个。如果html页面按照tonymarschall的回答很好地形成,您可能想要从可以检测该语言的人开始。

作为回退检查,您可以使用英语列表stopwords,它们用于搜索引擎中,以筛选出语言中最常见的词。在你的情况下,你将不得不在html页面的文本部分中计算它们的出现次数。如果他们高于某个特定值,则可以很好地猜测您正在查看英文文本。

试试看here的列表。另外this文章显示了您也可以使用的N-gram方法。

1

我用http://www.alchemyapi.com/来检测语言。您将文本的片段传递给他们的API。它检测大多数语言并且相当准确。他们提供一个免费的API,允许每天有1,000个请求,这对于适度使用是可以接受的。否则,价格会突然上涨。

您也可以尝试在谷歌翻译API:

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

然后有这样一条:

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

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

+0

我有28000页来检查。 – AgA 2012-03-20 18:39:21

+0

@AgA我刚刚更新了我的回复,允许每小时免费提供多达1,000个请求。 – Hawkee 2012-03-20 18:42:01

相关问题