斯坦福大学NLP:如何使单个单词变形?

时间:2016-01-23 12:03:01

标签: stanford-nlp

我知道如何对一个句子进行注释并得到每个单词的引理,但是如果我只是想将一个单个单词变为lemmatize,我就不知道如何去做。我试过了

Annotation tokenAnnotation = new Annotation("wedding");
List<CoreMap> list = tokenAnnotation.get(SentencesAnnotation.class);

String tokenLemma = list
                        .get(0).get(TokensAnnotation.class)
                        .get(0).get(LemmaAnnotation.class);

tokenAnnotation只有一个TextAnnotation密钥,这意味着list将在null

那么我怎样才能将单个词理解为一个词?

1 个答案:

答案 0 :(得分:3)

有两种选择:您可以通过Annotation管道注释StanfordCoreNLP对象:

StanfordCoreNLP pipeline = new StanfordCoreNLP(new Properties(){{
  setProperty("annotators", "tokenize,ssplit,pos,lemma");
}});

Annotation tokenAnnotation = new Annotation("wedding");
pipeline.annotate(tokenAnnotation);  // necessary for the LemmaAnnotation to be set.
List<CoreMap> list = tokenAnnotation.get(SentencesAnnotation.class);
String tokenLemma = list
                        .get(0).get(TokensAnnotation.class)
                        .get(0).get(LemmaAnnotation.class);

另一个选择是使用SimpleCoreNLP API:

String tokenLemma = new Sentence("wedding").lemma(0);