Использование Stanford Dependency Parser в ранее помеченном предложении

В настоящее время я использую тег POS Twitter, доступный здесь, чтобы отмечать твиты в тегах Penn-Tree Bank.

Вот этот код:

import java.util.List;

import cmu.arktweetnlp.Tagger;
import cmu.arktweetnlp.Tagger.TaggedToken;

/* Tags the tweet text */
List<TaggedToken> tagTweet(String text) throws IOException {

    // Loads Penn Treebank POS tags
    tagger.loadModel("res/model.ritter_ptb_alldata_fixed.txt");

    // Tags the tweet text
    taggedTokens = tagger.tokenizeAndTag(text);

    return taggedTokens;
}

Теперь мне нужно определить, где находятся прямые объекты в этих тегах. После некоторых поисков я обнаружил, что Stanford Parser может сделать это посредством типизированных зависимостей Stanford ( онлайн-пример). Используя вызов dobj (), я смогу получить то, что мне нужно.

Однако я не нашел хорошей документации о том, как вводить уже помеченные предложения в этот инструмент. Из того, что я понимаю, перед использованием анализатора зависимостей мне нужно создать дерево из токенов / тегов предложения. Как это сделать? Я не смог найти ни одного примера кода.

Twitter POS Tagger содержит экземпляр инструментов Stanford NLP Tools, так что я не за горами, однако я недостаточно знаком с инструментами Stanford, чтобы подавать в него мой текст с тегами POS, чтобы заставить анализатор зависимостей работать должным образом, Часто задаваемые вопросы упоминают эту функциональность, но без какого-либо примера кода, я немного застрял.

1 ответ

Решение

Вот как это делается при полностью ручном создании List обсуждается в FAQ:

String[] sent3 = { "It", "can", "can", "it", "." };
// Parser gets second "can" wrong without help (parsing it as modal MD)
String[] tag3 = { "PRP", "MD", "VB", "PRP", "." };                                                 
List<TaggedWord> sentence3 = new ArrayList<TaggedWord>();
for (int i = 0; i < sent3.length; i++) {
  sentence3.add(new TaggedWord(sent3[i], tag3[i]));
}
Tree parse = lp.parse(sentence3);
parse.pennPrint();
Другие вопросы по тегам