提供显式POS标记输入,并获取stanfordnlp

提供显式POS标记输入,并获取stanfordnlp,nlp,stanford-nlp,Nlp,Stanford Nlp,我正在尝试问题11中提到的代码 我想首先给出POS标签输入,然后进行情绪分析。我能成功完成的第一件事。我能打印出这棵树,它看起来很好。然而,第二个函数返回我-1(它应该返回我4=非常积极的) 请提供投入/建议 public static String test(){ try{ String grammer="/Users/lenin/jar/stanfordparser-master/stanford-parser/models/englishPCFG.ser.gz";

我正在尝试问题11中提到的代码

我想首先给出POS标签输入,然后进行情绪分析。我能成功完成的第一件事。我能打印出这棵树,它看起来很好。然而,第二个函数返回我
-1
(它应该返回我
4=非常积极的

请提供投入/建议

public static String test(){
    try{

        String grammer="/Users/lenin/jar/stanfordparser-master/stanford-parser/models/englishPCFG.ser.gz";

        // set up grammar and options as appropriate
        LexicalizedParser lp = LexicalizedParser.loadModel(grammer);
        String[] sent3 = { "movie", "was","very", "good","." };
        // Parser gets tag of second "can" wrong without help                    
        String[] tag3 = { "PRP", "VBD", "RB", "JJ","." };                             
        List sentence3 = new ArrayList();
        for (int i = 0; i < sent3.length; i++) {
          sentence3.add(new TaggedWord(sent3[i], tag3[i]));
        }
        Tree parse = lp.parse(sentence3);
        parse.pennPrint();

        int sentiment_score = RNNCoreAnnotations.getPredictedClass(parse);
        System.out.println("score: "+sentiment_score);


    }
    catch(Exception e){
        e.printStackTrace();
    }
    return "";
}
公共静态字符串测试(){
试一试{
String grammer=“/Users/lenin/jar/stanfordparser master/stanfordparser/models/englishPCFG.ser.gz”;
//根据需要设置语法和选项
LexicalizedParser lp=LexicalizedParser.loadModel(语法);
String[]sent3={“movie”,“was”,“very”,“good”,“good”};
//解析器在没有帮助的情况下错误地获取了第二个“can”标记
字符串[]tag3={“PRP”、“VBD”、“RB”、“JJ”、““};
列表语句3=新的ArrayList();
对于(int i=0;i
您得到的值为-1,因为您没有运行任何情绪分析。你只分析了这个句子的语法结构

当然,您可以通过代码运行情绪分析器,但是,不幸的是,目前还没有一个简单的低级界面来运行情绪分析器。这将是一个很好的事情添加到某个时候!您基本上需要复制类
edu.stanford.nlp.pipeline.感伤注释器中发生的处理:

  • 从解析器获取二值化树(直接或通过对返回的树进行二值化)
  • 坍缩一元数
  • 运行
    mountaccostandGradient
    class的
    forwardPropagateTree