StanfordCoreNLP: различные синтаксические разборы для одного и того же предложения при использовании локального сервера CoreNLP и веб-интерфейса. - PullRequest
0 голосов
/ 21 июня 2019

Я использую отличную архитектуру CorenLP от Stanford, и она в основном работает очень хорошо.Тем не менее, иногда я натыкаюсь на, казалось бы, простые предложения, где разборы, возможно, не верны.Например, для предложения:

  • Я слышал, что Джон никогда не тренируется

Я получаю следующее дерево разбора:

(ROOT
  (S
    (NP (PRP I))
      (VP (VBP 've)
      (VP (VBN heard)
        (SBAR (IN that)
          (NP
            (NP (NNP John))
            (NP
              (ADVP (RB never))
              (NP (NNS trains)))))))
    (. .)))

гдеПарсер интерпретирует «поезда» как существительное.Но когда я ввожу это предложение в официальный демонстрационный интерфейс , результат будет:

(ROOT
  (S
    (NP (PRP I))
    (VP (VBP 've)
      (VP (VBN heard)
        (SBAR (IN that)
          (S
            (NP (NNP John))
            (ADVP (RB never))
            (VP (VBZ trains))))))
    (. .)))

, который выглядит гораздо более значимым.Внизу страницы написано Parser englishPCFG.ser.gz.Я использую ту же модель, но также пробовал englishSR.ser.gz без изменений.

Я использую CoreNLP в качестве сервера , начиная с:

java -mx8g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 60000

В моем Java-коде я создаю клиента следующим образом:

Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,pos,lemma,parse,ner,depparse");
StanfordCoreNLPClient pipeline = new StanfordCoreNLPClient(props, "http://localhost", 9000, 2);

Что мне нужно изменить в моей настройке, чтобы получить тот же результат, что и в демонстрационном интерфейсе?

...