1

谁能告诉我如何为斯坦福解析器提供我自己标记的输入句子?标记的句子是,比如说,

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

.

从他们的文档中,我发现标志 -tagSeparator /应该可以工作,但我在这里很迷茫,我不知道如何在我的程序中使用这个标志。还是有什么其他方式?

请帮忙。

4

1 回答 1

2

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

于 2011-03-23T18:16:47.797 回答