【问题标题】:Pass parser parameters when using CoreNLP server使用 CoreNLP 服务器时传递解析器参数
【发布时间】:2016-02-08 05:37:08
【问题描述】:

解析器采用标志-makeCopulaHead,如何在使用CoreNLP server时启用此标志?

我尝试使用标志启动服务器:

java -cp "*" -mx4g edu.stanford.nlp.pipeline.StanfordCoreNLPServer -parse.flags " -makeCopulaHead"

我也尝试在我的帖子请求中将参数作为 url 参数的一部分传递给它:

properties = {"annotators": "...", "parse.makeCopulaHead": "true"}
properties = {"annotators": "...", "makeCopulaHead": "true"}
properties = {"annotators": "...", "parse.flags.makeCopulaHead": "true"}

编辑,并尝试回答:

properties = {"annotators": "...", "parse.flags": " -makeCopulaHead"}
properties = {"annotators": "...", "parse.flags": "makeCopulaHead"}

【问题讨论】:

    标签: stanford-nlp


    【解决方案1】:

    正确的方法是第二种:将标志作为properties = {...} 条目传递。我实际上并不知道这个特定标志是如何工作的,但它看起来确实相当于您的命令行调用:

    properties = {"annotators": "...", "parse.flags": " -makeCopulaHead"}
    

    也许这会起作用?

    编辑:-parse.flags 选项仅在您使用选区解析器 + 依赖转换器(注释器 parse)而不是神经依赖解析器(注释器 depparse)时才有效。

    【讨论】:

    • 嗯,刚才试过了。响应中的依赖关系似乎没有任何区别。
    • 你在运行什么注释器?
    • 啊,这可能是问题所在。 parse.flags 选项特定于解析器注释器 (parse) 和关联的依赖关系转换器,而不是依赖关系解析器注释器 (depparse)。尝试使用注释器 tokenize,ssplit,pos,lemma,parse 运行?
    • 将属性设置为properties={"annotators": "tokenize,ssplit,pos,lemma,parse", "parse.flags": " -makeCopulaHead"} 似乎给出了与单独的properties={"annotators": "tokenize,ssplit,pos,lemma,parse"} 相同的结果(在依赖项中)。我使用句子He is tall 作为测试用例。问题是我需要依赖信息。 parse 属性显示为SENTENCE_SKIPPED_OR_UNPARSABLE"
    • 如果解析属性是SENTENCE_SKIPPED_OR_UNPARSABLE,那么解析器注释器没有正确运行。不知道为什么,但是您应该尝试调试的第一件事是为什么在设置解析注释器时输出中没有解析树。重启服务器有帮助吗?
    猜你喜欢
    • 2016-09-01
    • 2015-08-17
    • 2013-06-07
    • 2019-03-01
    • 2021-08-22
    • 2021-01-07
    • 2022-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多