任何人都可以告诉我如何为Stanford Parser提供我自己标记的输入句子吗?标记的句子是,例如,
A/NN quick/JJ brown/JJ fox/NN
从他们的文档中,我发现标志 - tagSeparator /
应该可以工作,但我很遗憾,我不知道如何在我的程序中使用这个标志。或者其他任何方式?
请帮忙。
答案 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”,因为这就是所要求的......