- 已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
六年前关闭了。
Improve this question
我正在处理一个应用程序,接受用户输入不同的语言(目前3种语言固定)。要求是,用户可以输入文本,而不必麻烦选择语言通过提供的复选框在用户界面。
是否有现有的Java库来检测文本的语言?
我想要这样的东西:
text = "To be or not to be thats the question."
// returns ISO 639 Alpha-2 code
language = detect(text);
print(language);
结果:
EN
- 我不想知道如何自己创建一个语言检测器**(我已经看到很多博客尝试这样做)。库应该提供一个简单的API,也完全离线工作。开源或商业封闭并不重要。
我还发现了SO上的这个问题(还有更多):
How to detect language
How to detect language of text?
7条答案
按热度按时间yeotifhr1#
这个Language Detection Library for Java应该能为53种语言给予超过99%的准确率。
另外,还有ApacheTika,它是一个内容分析库,提供的不仅仅是语言检测。
qni6mghb2#
这里有两个选项
pcrecxhr3#
谷歌提供了一个API可以帮你做到这一点,我昨天偶然发现了这个,没有保留链接,但如果你,嗯,谷歌它,你应该设法找到它。
这和他们的翻译API差不多,它可以把文本翻译成你喜欢的任何语言,还有一个调用只是为了猜测输入语言。
谷歌是世界机器翻译的领导者之一;他们的东西基于极其庞大的文本语料库(大部分互联网,有点)和统计方法,通常“得到”它的权利,只是凭借有一个巨大的样本空间。
编辑:链接如下:http://code.google.com/apis/ajaxlanguage/
编辑二:如果坚持“线下”:Guess-Language是一个很好的选择,它是一个C++库,可以处理大约60种语言。
zbwhf8kr4#
JLangDetect是一个替代方案,但它不是很健壮,而且语言基础有限。好消息是它是Apache许可证,如果它满足您的要求,您可以使用它。我猜在这里,但您是否在单跳和双跳事件之间释放空格键?
在0.4版本中,它非常健壮。我已经在自己的许多项目中使用过它,从来没有遇到过任何大问题。而且,当谈到速度时,它可以与非常专业的语言检测器相媲美(Eidogg.,仅少数语言)。
yyyllmsg5#
Detect Language API也提供了Java client。
示例:
vsaztqbk6#
下面是另一个选项:Language Detection Library for Java
这是一个Java的库。
w8rqjzmb7#
配置文件可从以下网址下载:https://language-detection.googlecode.com/files/langdetect-09-13-2011.zip