当前位置: 首页 > 知识库问答 >
问题:

加速CoreNLP情绪分析

郏经纬
2023-03-14

有人能想出一种方法来加速我的CoreNLP情绪分析(见下文)吗?

我在服务器启动时初始化CoreNLP管道一次:

// Initialize the CoreNLP text processing pipeline
public static Properties props = new Properties();
public static StanfordCoreNLP pipeline;

// Set text processing pipeline's annotators
props.setProperty("annotators", "tokenize, ssplit, pos, parse, sentiment");
// Use Shift-Reduce Constituency Parsing (O(n),
// http://nlp.stanford.edu/software/srparser.shtml) vs CoreNLP's default
// Probabilistic Context-Free Grammar Parsing (O(n^3))
props.setProperty("parse.model", "edu/stanford/nlp/models/srparser/englishSR.ser.gz");
pipeline = new StanfordCoreNLP(props);

然后我从控制器调用管道:

String text = 'A sample string.'
Annotation annotation = pipeline.process(text);
List<CoreMap> sentences = annotation.get(CoreAnnotations.SentencesAnnotation.class);
for (CoreMap sentence : sentences) {
    Tree tree = sentence.get(SentimentCoreAnnotations.SentimentAnnotatedTree.class);
    int sentiment = RNNCoreAnnotations.getPredictedClass(tree);
    ...
}

我已经分析了代码——行Annoation noation=pipeline.process(text),这是CoreNLP的主要处理调用,非常慢。对我的控制器进行100次调用的请求平均需要1.07秒。注释每次调用需要~7ms。我需要将其减少到~2ms。

我不能删除任何注释,因为情绪依赖于所有注释。我已经在使用Shift-Reduce选区解析器,因为它比默认的上下文无关语法解析器快得多。

有没有其他参数可以调整以显著加快速度?

共有1个答案

汝弘深
2023-03-14

有同样的问题。我也试过SR Beam,它甚至比PCFG还要慢!基于斯坦福基准,SR Beam应该比PCFG快得多,而且只比SR稍慢。

我想除了使用SR解析器而不是PCFG之外,提高速度的唯一剩余方法可能是使用标记器选项。。。

 类似资料:
  • 我是新来的,想知道是否有人能帮我解决以下问题。 我正在用西班牙语和斯坦福大学的CoreNLP对文本进行情感分析,但没有得到积极的结果。 也就是说,如果我分析任何英语文本,把它放在西班牙语中分析是完美的,但结果总是否定的 我一直在寻找如何配置西班牙语解析器,令牌化和我发现的一切对于情感分析都是无用的。 有人可以告诉我,如果唯一有效的东西是标记化,而情感不是西班牙语? 这是我的属性文件,所以我设法找到

  • 但是,我还没能在Stanford CorenLP中找到任何文本分类的注释器。我有什么办法可以实现我的想法。更好的是,有没有更好的方法来实现我想要实现的目标。 提前谢了。

  • 当摄像头识别到人物情绪为“笑”,光环板也会亮出笑脸。 知识小贴士:虽然不同国家的语言和文化有很大差异,但是表情代表的情绪含义是高度一致的。并且表情也难以伪装出来,所以我们可以从最容易的“笑”开始吧! 舞台角色 1. 删除默认角色Panda 2. 添加角色“Empty button14” 3. 点击“造型”,将按钮颜色设置成绿色,并添加文字“Start”,调整大小,位置 4. 在积木区下方,点击“+

  • 2)当我在应用程序模式下运行批量学习PR时:文本语料库的链接是怎样的?纯文本可以吗? 在第一次试验中,我使用了教程中相同的paum.xml文件,并将分级从double(2.0)转换为Strings(“2_star_rating”)--在训练和应用程序模式下没有发生错误--但是当我查看文本文件(我在app.mode中运行管道时)时,没有设置注释。

  • CoreNLP 是斯坦福提供的一组用Java编写的自然语言分析工具。它可以接受原始的人类语言文本输入,并给出单词的基本形式,其词性,是否为公司,人员等的名称,规范化和解释日期,时间和数字量,标记句子的结构在短语或单词从属关系方面,并指出哪些名词短语指代相同的实体。 它最初是为英语开发的,但现在也为(现代标准)阿拉伯语,(大陆)中文,法语,德语和西班牙语提供不同级别的支持。斯坦福大学的CoreNLP

  • 对于文本情感分析任务,我使用以下注释器创建管道: Annotators=标记、拆分、解析、情感 在阅读了关于注释器的文档后,我意识到标记化和ssplit将整个文本拆分为单独的句子,以便进一步解析。我目前正在研究的问题是推特的情绪分析。由于推文在大多数情况下都不会超过一行,因此在解析之前使用标记化和ssplit注释器似乎有些过分。 我试图排除前两个,但它不会让我做给出一个消息异常在线程"主"java