如何检测用户输入文本的语言?

Man*_*gra 40 java nlp language-detection

我正在处理一个接受不同语言用户输入的应用程序(目前修复了3种语言).要求是用户可以输入文本,而不必费心通过UI中提供的复选框选择语言.

是否有现有的Java库来检测文本的语言?

我想要这样的东西:

text = "To be or not to be thats the question."

// returns ISO 639 Alpha-2 code
language = detect(text);

print(language);
Run Code Online (Sandbox Code Playgroud)

结果:

EN
Run Code Online (Sandbox Code Playgroud)

我不想知道如何自己创建一个语言检测器(我已经看到很多博客试图这样做).该库应提供简单的APi,并且完全脱机工作.开源或商业封闭并不重要.

我也在SO上发现了这个问题(还有一些):

如何检测语言
如何检测文本语言?

yve*_*man 27

这种用于Java的语言检测库应该为53种语言提供99%以上的准确率.

另外,还有Apache Tika,一个用于内容分析的库,它提供的不仅仅是语言检测.


Car*_*icz 6

Google提供了一个可以为您执行此操作的API.我昨天偶然发现了这个并没有保留链接,但如果你,嗯,谷歌,你应该设法找到它.

这是在他们的翻译API的描述附近,它会将您的文本翻译成您喜欢的任何语言.只是猜测输入语言的另一个电话.

谷歌是全球机械翻译的领导者之一; 他们把他们的东西建立在非常大的文本语料库(大部分互联网,有点)和统计方法上,通常只是凭借巨大的样本空间"获得"它.

编辑:这是链接:http://code.google.com/apis/ajaxlanguage/

编辑2:如果你坚持"离线":一个很好的答案是Guess-Language的建议.它是一个C++库,可处理大约60种语言.

  • @ManBugra:只有您拥有Google数据存储设备的备份副本时才有用;) (3认同)