标记为Stanford解析器的输入

时间:2011-03-21 22:19:45

标签: parsing stanford-nlp

任何人都可以告诉我如何为Stanford Parser提供我自己标记的输入句子吗?标记的句子是,例如,

  

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

从他们的文档中,我发现标志 - tagSeparator /应该可以工作,但我很遗憾,我不知道如何在我的程序中使用这个标志。或者其他任何方式?

请帮忙。

1 个答案:

答案 0 :(得分:2)

在API中,您必须自己对单词和标签进行标记,然后将带有标签的单词提供给parse方法。请参阅解析方法的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”,因为这就是所要求的......