Помеченный вход для анализатора Стэнфорда - PullRequest
1 голос
/ 22 марта 2011

Может ли кто-нибудь сказать мне, как я могу передать Stanford Parser свое собственное предложение с тегами?Помеченное предложение, скажем,

A/NN quick/JJ brown/JJ fox/NN

.

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

Пожалуйста, помогите.

1 Ответ

2 голосов
/ 23 марта 2011

В API вы должны сами токенизировать слова и теги, а затем передавать слова с тегами в метод разбора. См. Документацию Javadoc для метода разбора:

public boolean parse(List<? extends HasWord> sentence)

Вы передаете ему список токенов, которые могут быть объектами Word, TaggedWord или CoreLabel. Если эти объекты реализуют HasTag, то любой сохраненный ими тег будет извлечен и использован. Например, будет работать следующее:

String[] words = { "This", "is", "an", "easy", "sentence", "." };
String[] tags = { "DT", "VBZ", "DT", "JJ", "NNP", "." };
List<TaggedWord> sentence = new ArrayList<TaggedWord>();
assert words.length == tags.length;
for (int i = 0; i < words.length; i++) {
  sentence.add(new TaggedWord(words[i], tags[i]));
}
Tree parse = lp.apply(sentence); 

Если вы посмотрите на выходное дерево синтаксического анализа, то «предложение» будет (ошибочно) помечено как «NNP», так как это то, что было запрошено ....

...