【问题标题】:How to know if the language of web page is English or not?如何知道网页的语言是不是英文?
【发布时间】:2012-04-05 05:31:03
【问题描述】:

我只是想知道一个网页是否是英文的。有什么好的方法吗?

我找到的最接近的是Detect language from string in PHP,但它对我有一些用处..

有什么建议吗?

我有一个非英语样本site

【问题讨论】:

标签: php detection


【解决方案1】:

一些可能感兴趣的项目包括:

【讨论】:

    【解决方案2】:

    我使用http://www.alchemyapi.com/ 来检测语言。您获取文本的 sn-p 并将其传递给他们的 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

    他们免费提供了很多请求,但我不知道它们的准确性如何。绝对值得一看。

    【讨论】:

    • @AgA 我刚刚将我的回复更新为另一个允许每小时最多 1,000 个免费请求的回复。
    【解决方案3】:

    可能没有完美的解决方案,您需要的是进行一组检查并一次执行一项。如果按照 tonymarschall 的回答,html 页面格式正确,您可能希望从可以检测语言的语言开始。

    作为备用检查,您可以使用英语列表stopwords,它们在搜索引擎中用于过滤掉一种语言中最常用的单词。在您的情况下,您必须计算它们在 html 页面的文本部分中的出现次数。如果它们高于某个值,您可以很好地猜测您正在查看英文文本。

    尝试查找here 以获取列表。 this 文章还展示了您也可以使用的 N-gram 方法。

    【讨论】:

      【解决方案4】:

      似乎几乎所有/很多可能性都可以在您的链接问题中检测到一种语言。为什么您不能使用建议的答案之一?

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

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

      【讨论】:

      • 我有这个页面中没有 lang 字的示例站点:24-support.com
      猜你喜欢
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 2015-10-07
      • 1970-01-01
      • 2023-03-28
      • 2011-04-15
      • 2013-04-12
      相关资源
      最近更新 更多