Parsing 斯坦福NLP-使用解析或标记的文本生成完整的XML
我试图从PenntreBank,华尔街日报语料库中提取数据。其中大部分已经有了解析树,但一些数据只是被标记的。 i、 e.wsj_DDXX.mrg和wsj_DDXX.pos文件 我想在这些文件中使用已经解析的树和标记数据,这样就不会在CoreNLP中使用解析器和标记器,但我仍然想要CoreNLP提供的输出文件格式;即,包含依赖项、实体协同引用、解析树和标记数据的XML文件 我已经阅读了很多java文档,但是我不知道如何按照我描述的方式获取它 对于POS,我尝试使用,它允许我使用标记,但我只能生成一个包含一些我想要的信息的XML文件;没有用于共同引用或生成解析树的选项。为了让它正确地生成次优的XML文件,我必须编写一个脚本来去掉文件中的所有括号。这是我使用的命令: java-cp“*”edu.stanford.nlp.parser.lexparser.LexicalizedParser-outputFormat typedPendenciescollected,wordsAndTags-outputFilesExtension xml-outputFormatOptions xml-writeOutputFiles-outputFilesDirectory my\dir-tokenized-tagSeparator/-tokenizerFactory edu.stanford.nlp.process.WhitespaceTokenizer-Tokenizer-Method newCoreLabelTokenizerFactory edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz my\wsj\files\dir 我也不能为已经有树的《华尔街日报》数据生成我想要的数据。我试着使用上面所说的内容,并查看了相应的Javadocs。我使用了与上面描述的类似的命令。但是我必须编写一个python程序来检索分析每个文件后得到的标准输出数据,并将其写入一个新文件。结果数据只是一个具有依赖关系的文本文件,并且不是所需的XML表示法 总之,我想使用这些PTB文件中的POS和tree数据来生成CoreNLP解析,该解析与我在常规文本文件上使用CoreNLP时会发生的情况相对应。伪命令如下所示: java-cp“*”edu.stanford.nlp.pipeline.CoreNLP-useTreeFile wsj_DDXX.mrg 及 java-cp“*”edu.stanford.nlp.pipeline.CoreNLP-usePOSFile wsj_DDXX.posParsing 斯坦福NLP-使用解析或标记的文本生成完整的XML,parsing,nlp,stanford-nlp,pos-tagger,Parsing,Nlp,Stanford Nlp,Pos Tagger,我试图从PenntreBank,华尔街日报语料库中提取数据。其中大部分已经有了解析树,但一些数据只是被标记的。 i、 e.wsj_DDXX.mrg和wsj_DDXX.pos文件 我想在这些文件中使用已经解析的树和标记数据,这样就不会在CoreNLP中使用解析器和标记器,但我仍然想要CoreNLP提供的输出文件格式;即,包含依赖项、实体协同引用、解析树和标记数据的XML文件 我已经阅读了很多java文档,但是我不知道如何按照我描述的方式获取它 对于POS,我尝试使用,它允许我使用标记,但我只能生成
编辑:修复了一个链接。是的,这是可能的,但有点棘手,而且没有现成的功能可以做到这一点,因此您必须编写一些代码。基本思想是将
tokenize
、ssplit
和pos
注释器(如果还有树,parse
注释器)替换为从注释文件加载这些注释的代码
在非常高的级别上,您必须执行以下操作:
- 用
MemoryTreebank
- 循环遍历所有树,并为每个树创建一个句子
,添加到该句子中CoreMap
- a
TokensAnnotation
- a
和TreeAnnotation
SemanticGraphCoreAnnotations
- a
- 创建一个
对象,其中包含所有句子的注释
对象列表CoreMap
- 运行StanfordCoreNLP管道,将
选项设置为注释器
,并将引理、ner、dcoref
选项设置为强制要求
假
SemanticGraphCoreAnnotations