如何确定单词是英语或任何其他语言

时间:2013-04-07 21:05:50

标签: php algorithm nlp translation

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

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

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

2 个答案:

答案 0 :(得分:3)

如果您正在测试的样本很小(单个单词或短语),那么简单的启发式(如字母频率)就不会非常有用,因为英语短语“Jazz Quizzes”可能符合许多人的个人资料语言比英语更容易。

你可以使用bigraph和trigraphs(2和3个字母的组合)的频率,因为英语和土耳其语是完全无关的,只有组合只出现在一个组合中。

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

答案 1 :(得分:2)

根据评论。

请检查: Detect language from string in PHP

或:

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

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