1

特定のテキストの言語を検出するために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
4

1 に答える 1

1

ライブラリのFAQに次のように記載されています。

langdetect は短いテキストを処理できますか?

このライブラリでは、検出テキストがある程度の長さ (ほぼ 10 ~ 20 語以上) である必要があります。

1 ~ 10 語の非常に短いテキストでは、間違った言語が返される場合があります。

1 語または 2 語のテキストで試していますが、これはこのライブラリが構築されているユース ケースではないため、間違った結果が得られます。

文脈のない単一の単語については、ターゲットにしている言語の辞書と一致させることができます。

于 2013-10-24T13:16:36.020 に答える