Stanford CoreNLP - 如何设置另一种语言

时间:2016-10-16 08:36:44

标签: java nlp stanford-nlp

我正在尝试使用stanford库设置我的NLP解析器。 在我下载的网站上

  • stanford-corenlp-full-2015-12-09.zip
  • 斯坦福 - 法语 - corenlp-2016年1月14日 - models.jar

现在我遇到了一个问题,如何指示我的应用程序使用法语模型来分析我的句子。

我实际上有这个代码(用于英语句子)

String text = "I am very sad";
    Properties props = new Properties();
    props.setProperty("annotators", "tokenize, ssplit, pos, lemma, parse, sentiment");
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

    Annotation annotation = pipeline.process(text);
    List<CoreMap> sentences = annotation.get(CoreAnnotations.SentencesAnnotation.class);
    for (CoreMap sentence : sentences) {
        String sentiment = sentence.get(SentimentCoreAnnotations.SentimentClass.class);
        System.out.println(sentiment + "\t" + sentence);
    }

有没有办法在代码中表明我想要法国模特(并尝试解析像#34; Bonjour,je m&#39; appelle Jean&#34;。

谢谢, 奕利

1 个答案:

答案 0 :(得分:1)

解决方案是在类路径中添加standford french .jar文件。

以下代码正在运作

String sampleFrenchText = "Le chat mange la souris";
Annotation frenchAnnotation = new Annotation(sampleFrenchText);
Properties frenchProperties = StringUtils.argsToProperties(new String[]{"-props", "StanfordCoreNLP-french.properties"});
StanfordCoreNLP pipeline = new StanfordCoreNLP(frenchProperties);
pipeline.annotate(frenchAnnotation);
for (CoreMap sentence : frenchAnnotation.get(CoreAnnotations.SentencesAnnotation.class)) {
    Tree sentenceTree = sentence.get(TreeCoreAnnotations.TreeAnnotation.class);
    System.out.println(sentenceTree);
}