我正在尝试使用Tika Server进行语言检测。有没有办法要求这个?
答案 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()));
}
}