Skip to main content
 首页 » 编程设计

csv中Gate:使用groovy将gate导出到csv文件

2025年05月04日221jpfss

我希望有人能帮助我并告诉我我做错了什么。提前致谢。

我正在 gateway 的 groovy 控制台上执行此脚本

new File("../outfile.csv").withWriterAppend{ out ->doc.getAnnotations().each {anno -> 
  if( anno.getFeatures() ) 
    anno.getFeatures().each{ fName, fValue -> 
      out.writeLine(/"${doc.getName()}","${anno.getType()}","${doc.stringFor(anno)}",${anno.start()},${anno.end()},"${fName}","${fValue}"/) 
    } 
  else 
    out.writeLine(/"${doc.getName()}","${anno.getType()}","${doc.stringFor(anno)}",${anno.start()},${anno.end()},,/)         
}} 

但我有这个异常(exception)

groovy.lang.MissingPropertyException:没有这样的属性:类的文档:ConsoleScript0

at ConsoleScript0$_run_closure1.doCall(ConsoleScript0:2) 
 
at ConsoleScript0.run(ConsoleScript0:1) 
 
at gate.groovy.GroovySupport$1$1$1.run(GroovySupport.java:134) 

请您参考如下方法:

我看到您正在使用 GATE groovy recipes 中的第一个示例.

问题是您正在 groovy 控制台中运行代码。它应该作为管道的一部分运行。将脚本保存在 groovy 文件中并将其加载到 groovy PR 中。

根据the docs在 groovy PR 中,您有变量 inputAS、outputAS、doc、corpus 等。

另一方面,在 groovy 控制台中,您有“docs”变量,因此您可以执行以下操作:

docs.each{doc -> 
  doc.getAnnotations().each ...