使用Tika Server打开语言检测?

时间:2013-11-28 14:29:29

标签: apache-tika

我正在尝试使用Tika Server进行语言检测。有没有办法要求这个?

3 个答案:

答案 0 :(得分:1)

正常启动Tika CLI服务器,--language标志作为选项

例如在一个窗口中执行:

$ java -jar tika-app-1.4.jar --language --server 1234

然后在另一个做:

$ nc localhost 1234 < test.txt 
en
$ nc localhost 1234 < spanish.txt
es
$ nc localhost 1234 < french.txt
fr

传入文本,您将获得检测到的语言

有关Tika CLI支持的不同模式的完整列表,请使用--help

运行它

答案 1 :(得分:1)

没有深入探讨这个话题,但我在Docker设置中需要这个功能。 official documentation并不是真的有用,但现在似乎可以通过/meta端点获得 - 至少在1.14中。用法示例:

curl -T file.txt http://127.0.0.1:9998/meta --header "Accept: application/json"

回应类似于:

{"language":"en", "Content-Encoding":"ISO-8859-1","Content-Type":"text/plain; charset\u003dISO-8859-1","X-Parsed-By":["org.apache.tika.parser.DefaultParser","org.apache.tika.parser.txt.TXTParser"]}

根据我的特殊需要,我使用了this Docker图像。

希望有所帮助!

答案 2 :(得分:-1)

import org.apache.tika.language.LanguageIdentifier;

public class Test
{
    /**
     * Tika language detection. Take a glance to the org.apache.tika.language.LanguageIdentifier class API.
     * @param args Command line arguments.
     */
    public static void main(String[] args) {
        String sTextFr = "Texte en français. Il doit être assez long pour permettre l'analyse.";
        String sTextEn = "This is an english text.";
        LanguageIdentifier lin = new LanguageIdentifier(sTextFr);
        System.out.println(String.format("Language (french sentence): %s", lin.getLanguage()));
        lin = new LanguageIdentifier(sTextEn);
        System.out.println(String.format("Language (english sentence): %s", lin.getLanguage()));
    }
}