在 Stanford corenlp 中交换 Berkley 解析器
Swapping in Berkley parser in Stanford corenlp
我在实验中使用了 stanford nlp stack,在 stanford PCFG 解析器开始对某些句子表现奇怪之前,它一直运行良好。我发现 http://tomato.banatao.berkeley.edu:8080/parser/parser.html the berkley parser giving correct parse tree for the sentences in my dataset. How could i swap in stanford pos tagger by bekley parser and continue using stanford dependency parser. I found here http://brenocon.com/blog/2011/09/end-to-end-nlp-packages/ 可以做到,但不确定如何做到。
提前致谢
我为此使用了以下配置:
props.put("parse.type","charniak");
props.put("parse.executable","src/main/resources/berkeley.bat");
props.put("parse.model","");
/*文件:berkeley.bat*/
@回声关闭
java -jar C:\Users\Arindam\Downloads\berkeleymy.jar -gr C:/Users/Arindam/Downloads/eng_sm6.gr -inputFile %4 -maxLength 399 -sentence_likelihood -kbest 2
实现此目的的困难但简洁的方法是构建您自己的注释器,该注释器连接到 Berkeley 解析器的编程 API。您基本上想要模仿 ParserAnnotator
的行为,将对 Stanford ParserQuery
实现的引用替换为对 Berkeley Parser + 进行必要转换的代码的引用。
然后利用Berkeley Parser返回的结果(转化为Stanford框架),可以使用EnglishGrammaticalStructure
将Berkeley constituency parse转换为dependency trees
不太干净但可能更简单的方法是让 Berkeley 解析器输出 PTB 格式的解析,并使用 the main method of EnglishGrammaticalStructure
从此 CoNLL 格式的依赖项解析生成。
根据要求提供有关第一个选项的更多信息:
你应该制作自己的注释器,它由 / 子类组成 ParserAnnotator
。要覆盖的关键方法是ParserAnnotator#doOneSentence
。在这里,您可以调用 Berkeley 解析器 API,解析其结果,然后使用正确转换的树调用 ParserAnnotator#finishSentence
。 finishSentence
应该负责为您放置正确的注释。
您可以使用特殊的 属性 轻松地挂钩主管道上的自定义注释器。请参阅 this SO answer 示例代码(我指的是 customAnnotatorClass
属性)。
我在实验中使用了 stanford nlp stack,在 stanford PCFG 解析器开始对某些句子表现奇怪之前,它一直运行良好。我发现 http://tomato.banatao.berkeley.edu:8080/parser/parser.html the berkley parser giving correct parse tree for the sentences in my dataset. How could i swap in stanford pos tagger by bekley parser and continue using stanford dependency parser. I found here http://brenocon.com/blog/2011/09/end-to-end-nlp-packages/ 可以做到,但不确定如何做到。
提前致谢
我为此使用了以下配置:
props.put("parse.type","charniak"); props.put("parse.executable","src/main/resources/berkeley.bat"); props.put("parse.model",""); /*文件:berkeley.bat*/ @回声关闭 java -jar C:\Users\Arindam\Downloads\berkeleymy.jar -gr C:/Users/Arindam/Downloads/eng_sm6.gr -inputFile %4 -maxLength 399 -sentence_likelihood -kbest 2
实现此目的的困难但简洁的方法是构建您自己的注释器,该注释器连接到 Berkeley 解析器的编程 API。您基本上想要模仿 ParserAnnotator
的行为,将对 Stanford ParserQuery
实现的引用替换为对 Berkeley Parser + 进行必要转换的代码的引用。
然后利用Berkeley Parser返回的结果(转化为Stanford框架),可以使用EnglishGrammaticalStructure
将Berkeley constituency parse转换为dependency trees
不太干净但可能更简单的方法是让 Berkeley 解析器输出 PTB 格式的解析,并使用 the main method of EnglishGrammaticalStructure
从此 CoNLL 格式的依赖项解析生成。
根据要求提供有关第一个选项的更多信息:
你应该制作自己的注释器,它由 / 子类组成 ParserAnnotator
。要覆盖的关键方法是ParserAnnotator#doOneSentence
。在这里,您可以调用 Berkeley 解析器 API,解析其结果,然后使用正确转换的树调用 ParserAnnotator#finishSentence
。 finishSentence
应该负责为您放置正确的注释。
您可以使用特殊的 属性 轻松地挂钩主管道上的自定义注释器。请参阅 this SO answer 示例代码(我指的是 customAnnotatorClass
属性)。