我知道如何注释句子并获得每个单词的引理,但是如果我只想对单个单词进行词缀化,我不知道该怎么做。我试过了

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 key ,这意味着此处list将为null

那么,如何使一个单词具有词形化呢?

最佳答案

有两个选项:您可以通过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);

关于stanford-nlp - 斯坦福大学NLP : How to lemmatize single word?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34963203/

10-11 04:41