我正在处理一个接受不同语言用户输入的应用程序(目前修复了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上发现了这个问题(还有一些):
我有一套两种语言的文件:英语和德语.没有关于这些文档的可用元信息,程序只能查看内容.基于此,程序必须决定编写文档的两种语言中的哪一种.
是否有任何"标准"算法可以在几个小时内实现此问题?或者,可以执行此操作的免费.NET库或工具包?我知道LingPipe,但确实如此
这个问题似乎非常困难.我检查了谷歌AJAX语言API(我通过首先搜索这个网站找到),但它是非常糟糕的.对于我指出的六个德语网页,只有一个猜测是正确的.其他猜测是瑞典语,英语,丹麦语和法语......
我想出的一个简单方法是使用一个停用词列表.我的应用程序已经使用德国文档的这样一个列表,以便用Lucene.Net进行分析.如果我的应用程序扫描文档中是否出现任何一种语言的停用词,那么具有更多出现次数的那些将获胜.一个非常天真的方法,可以肯定,但它可能已经足够好了.不幸的是,我没有时间成为自然语言处理方面的专家,尽管这是一个有趣的话题.