首页 文章

如何从Standford Core NLP包中获得短语级别的情绪

提问于
浏览
4

这可能不是这个社区非常相关的问题 . 但我认为这会让我接触更广泛的计算机科学界并获得帮助 .

我使用的是Standford Core NLP软件包,更具体地说是它的Sentiment module . 我使用以下命令获得句子级别的情绪 .

java -cp stanford-corenlp-3.4.jar:stanford-corenlp-3.4-models.jar:xom.jar:joda-time.jar:jollyday.jar:ejml-0.23.jar -mx2g edu.stanford.nlp.sentiment.SentimentPipeline -stdin < input.txt

但我需要短语级别的情绪,就像我们在_1485938中看到的那样 . 我无法弄清楚如何 .

编辑:

在查看源代码之后,我想通过向上述命令添加另一个参数,可以获得句子的解析树表示的每个节点的情感分数 . 然而,这只给出了数字情绪分数,而不是正面/负面情绪 . 但我认为将这一分数转化为二元正面/负面情绪是相当微不足道的 . 命令是:

java -cp stanford-corenlp-3.4.jar:stanford-corenlp-3.4-models.jar:xom.jar:joda-time.jar:jollyday.jar:ejml-0.23.jar -mx2g edu.stanford.nlp.sentiment.SentimentPipeline -stdin -output PENNTREES < input.txt

1 回答

  • 4

    您可以使用BuildBinarizedDataset(stanford-corenlp 3.4)作为示例,如何使用情感注释将句子解析为PTB树 . 实时BuildBinarizedDataset接受如下输入:

    0   I hate demo
    2   I
    1   hate
    2   demo
    0   I hate
    

    第一行是句子,第二行是句子的情绪,但是这用于训练模型以产生情感注释的PTB树而不是给出单独的短语的值 .

    (0 (2 I) (0 (1 hate) (2 demo)))
    

    但是,如果您只提供句子,它将生成一个具有整体句子情绪值的树:

    (0 (0 I) (0 (0 hate) (0 demo)))
    

    可能您可以修改BuildBinarizedDataset的代码,而不是使用Sentiment Annotation Pipeline将定义值中的标签分配给评估 .

    希望这能指向正确的方向 . 如果你弄明白该怎么做,请分享 .

相关问题