【问题标题】:How to determine a word is English or any other language [duplicate]如何确定一个词是英语还是任何其他语言[重复]
【发布时间】:2013-04-07 21:05:50
【问题描述】:

我正在开发一个小型图书馆自动化软件,我需要确定一个单词是在English 还是Turkish。一个示例场景是这样的:

  • 用户输入书名。
  • 确定是土耳其语还是英语。
  • 将语言组合框设置为相应的语言,以帮助用户填写表格。

我的一个朋友建议我“连接到谷歌翻译并使用它”,这似乎是合理的,但不连接外部服务或数据库的算法更适合我。 (我还搜索土耳其语/英语特定字符,如ç、ş、İ/w、x 来决定)因此我正在搜索一种算法来完成这项工作,可能基于字母频率或类似的东西。文学中有什么可用的吗?提前致谢。 (重要的话我用php,mysql)

【问题讨论】:

  • stackoverflow.com/questions/1441562/… 你也可以检查wiki.apache.org/solr/LanguageDetection Solr 可以给你语言概率(例如这句话是 90% 英语或 10% 土耳其语)
  • 这两个词呢?
  • 感谢所有回答。 Dagon,我并不期待 100% 准确的算法,法语这是一个爱好项目,我认为提供这样的功能可能会很好。 fsw,你的链接适合我。如果您将其写为答案而不是评论,我会接受您的答案。

标签: php algorithm nlp translation


【解决方案1】:

如果您要测试的样本很小(单个单词或短语),那么简单的启发式算法(如字母频率)就不会很有用,因为英文短语“Jazz Quizzes”可能适合许多人的概况语言比英语更容易。

您可能可以使用双合字母和三合字母的频率(2 和 3 字母组合),因为英语和土耳其语完全不相关,以至于组合仅出现在一个中。

但是,更有可能的是,您将不得不使用来自两种语言的实际单词的数据库。在这种情况下,您可能最好使用第三方 API 或数据库,而不是全力以赴构建自己的语料库、实现统计算法等。

【讨论】:

    【解决方案2】:

    根据评论。

    请检查: Detect language from string in PHP

    或:

    http://wiki.apache.org/solr/LanguageDetection

    Solr 可以为您提供概率的语言(例如这句话是 90% 的英语或 10% 的土耳其语)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-12
      • 2016-05-06
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多