如何判断一个单词是英语还是其他语言


How to determine a word is English or any other language

我正在开发一个小型图书馆自动化软件,我需要确定一个词是英语还是土耳其语。一个示例场景如下:

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

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

如果您正在测试的样本很小(一个单词或短语),那么简单的启发式方法(如字母频率)将不会很有用,因为英语短语"Jazz Quizzes"可能比英语更适合许多语言的配置文件。

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

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

按注释。

请检查:从PHP字符串中检测语言

或:

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

Solr可以给你的语言概率(例如,这个句子是90%的英语或10%的土耳其语)