我正在使用https://code.google.com/p/language-detection java库来检测给定文本的语言。使用的配置文件与库一起提供。然而,结果有时会出乎意料地与预期不同。代码中可能有什么问题,或者我应该重新生成配置文件?
我尝试过“ld.detect(”en“);”评论和取消评论。空白是否影响语言检测?
LanguageDetect ld = new LanguageDetect();
ld.init("C:\\James\\languageTest\\profiles");
//ld.detect("en");
String textCurrentLine;
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("C:\\James\\failcases.txt"));
while ((textCurrentLine = br.readLine()) != null) {
System.out.println(ld.detect(textCurrentLine));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
以下是我得到的几句话
Communication - en
Timing - tl
none - it
user - it
No - pt
Yes - fr
user - no
generated - da
Diagnostic - it
not supported - en
supported - en
Bus Speed - en
Protocol - it
答案 0 :(得分:1)
正如图书馆的FAQ所说:
langdetect可以处理短文吗?
这个库要求检测文本几乎有一定的长度 10-20个字。
对于包含1-10个单词的非常短的文本,它可能会返回错误的语言。
您正在尝试使用单字或双字文本,这不是此库构建的用例,因此您将得到错误的结果。
对于没有上下文的单个单词,您可以尝试将它们与您要定位的语言的词典进行匹配。