Выходные данные Stanford NLP отличаются при использовании StanfordCoreNLPClient (с веб-сервером) и StanfordCoreNLP - PullRequest
0 голосов
/ 09 мая 2019

Я использую 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]

...