Я использую Stanford NLP для обработки английского языка в нашем проекте Java.Я попытался использовать класс StanfordCoreNLP, чтобы аннотировать документ, который отлично работал.Чтобы сэкономить время, я запустил StanfordCoreNLPServer в качестве автономного сервера и использовал StanfordCoreNLPClient с точно такими же свойствами.Это не дает правильный вывод.Я вижу проблему в части речевой аннотации (поз).Все индексы -1 со вторым подходом.
Я пробовал разные варианты программ при запуске сервера и при вызове клиента, но получаю одинаковый результат.
Ниже приведена команда, которую я использую для запуска сервера
String[] command = {"nohup", javaBin, "-cp", classpath, "-Dmx6g", className, "-host", alpServerHost, "-port", alpServerPort,
"-timeout 30000 -preload tokenize,ssplit,pos,lemma,parse,depparse,ner >/dev/null 2>1 &"};
Ниже приведены свойства, которые я использую для клиента
Properties properties = new Properties();
properties.setProperty("annotators", "tokenize,ssplit,pos,lemma,parse,depparse,ner");//, ner, coref, kbp, quote");
properties.setProperty("ner.useSUTime", "true");
Вызов клиента
if (withStandaloneAlpServer) {
this.pipeline = new StanfordCoreNLPClient(properties, "http://localhost", 9000, 4);
} else {
this.pipeline = new StanfordCoreNLP(properties);
}
При использовании автономного сервера для слова «мягкий» я ожидаю получить вывод как
ROOT (0,4) -1 ADJP (0,4) -1 JJ (0,4) -1 Слабый (0,4) 1]
Но фактический результат составляет
ROOT (-1, -1) -1 ADJP (-1, -1) -1 ДжДж (-1, -1) -1 Легкая (-1, -1) -1]