我找不到与list of annotation中的词袋相关的任何内容。我发现有一个用于获取词袋的注释类,我认为它用作:
coreMap.get(CoreAnnotations.BagOfWordsAnnotation.class);
但我不知道应该启用哪个注释器。到目前为止,我已经尝试过:
tokenize, ssplit, pos, lemma, ner, parse, sentiment, natlog, openie
但没有运气。
如何使用Stanford NLP解析器中的BagOfWordsAnnotation
?
答案 0 :(得分:0)
那不就是使用tokenize注释的输出吗?或者,更复杂的lemmatisation输出? (取决于你的用例)像这样,例如:
Properties props;
props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma");
pipeline = new StanfordCoreNLP(props);
public static List<String> lemmatize(String documentText)
{
List<String> lemmas = new LinkedList<String>();
Annotation document = new Annotation(documentText);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(SentencesAnnotation.class);
for(CoreMap sentence: sentences) {
for (CoreLabel token: sentence.get(TokensAnnotation.class)) {
lemmas.add(token.get(LemmaAnnotation.class));
}
}
return lemmas;
}
我从来没有听说过这个注释器,如果它存在,我会发现有点令人惊讶,因为它基本上是标记化,可能通过一些禁用词剥离增加,你可以轻松地自己做,或使用其他(较少的NLP)面向Lucene的,面向更多IR的软件包。