2013-11-28 3 views
1

Я пытаюсь сделать определение языка с помощью Tika Server. Есть ли способ просить об этом?Включение определения языка с помощью Tika Server?

+0

Когда вы говорите «Tika Server», вы имеете в виду сервер JAX-RS или tika-cli в режиме сервера? – Gagravarr

+0

Тика-кли в режиме сервера. – user2145475

ответ

1

Просто запустите сервер Тика 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 

Pass в тексте, и вы вернете обнаруженный язык

Для полной л список различных режимов, которые поддерживают Тик CLI, просто запустите его с --help

+0

Я смог сделать это с помощью tika-app, но не вижу правильных вариантов для этого с помощью tika-сервера. Есть ли конечная точка, которая может дать мне язык? – Vic

+1

@Vic В настоящее время на сервере Tika нет конечной точки, но было бы довольно быстро добавить. Я предлагаю вам поднять его как [улучшение Apache Tika JIRA] (https://issues.apache.org/jira/browse/TIKA/), и, надеюсь, один из экспертов JAXRS может добавить его для вас! – Gagravarr

-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())); 
    } 
} 
+0

Это, похоже, не решает вопрос - OP хочет использовать CLI Tika App в режиме сервера для определения языка, а не писать код Java – Gagravarr

1

Не делать рыть вокруг этой темы, но мне нужна эта функция в настройках Докера. 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 изображение.

Надеюсь, что это поможет!

Смежные вопросы