Java 语言检测未按预期工作

Java 语言检测未按预期工作,java,language-detection,Java,Language Detection,我正在使用java库检测给定文本的语言。使用的配置文件与库中的配置文件相同。然而,结果有时出乎意料地不同于预期。代码中可能有什么错误,或者我应该重新生成配置文件吗 我试过用“ld.detect(“en”);”注释和未注释。空白是否影响语言检测 LanguageDetect ld = new LanguageDetect(); ld.init("C:\\James\\languageTest\\profiles"); //ld.detect("en"); Stri

我正在使用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
正如图书馆馆长所述:

你能处理短文本吗?

该库要求检测文本具有一定的长度,几乎 10-20个字

对于包含1-10个单词的非常短的文本,它可能返回错误的语言

你在一个单词或两个单词的文本上尝试它,这不是这个库构建的用例,所以你会得到错误的结果

对于没有上下文的单个单词,您可以尝试将它们与目标语言的词典进行匹配。

正如库中的说明:

你能处理短文本吗?

该库要求检测文本具有一定的长度,几乎 10-20个字

对于包含1-10个单词的非常短的文本,它可能返回错误的语言

你在一个单词或两个单词的文本上尝试它,这不是这个库构建的用例,所以你会得到错误的结果


对于没有上下文的单个单词,您可以尝试将它们与目标语言的词典相匹配。

如果文本样本只有一两个单词那么小,我不希望语言检测启发式特别好。这就是我假设的……如果文本样本是小到一两个单词。这就是我假设的……我计划维护一个字典来检测语言,但是想检查我是否使用这个库做得对。创建词典将是一项艰巨的任务。有没有关于在网上建立库或预建库的想法?对不起,我不知道有这样的库。我正计划维护一个字典来检测语言,但是想检查一下我是否用这个库做得对。创建词典将是一项艰巨的任务。有没有在网上建立图书馆或预建图书馆的想法?对不起,我不知道有这样的图书馆。