我有一个包含注释的数千个文档的语料库(在JSerial数据存储中保存)。现在我需要将它分成3个较小的,随机挑选。 GATE中最简单的方法是什么?
最受欢迎的是一条运行代码或详细指南!
答案 0 :(得分:1)
我会使用Groovy控制台(加载“Groovy”插件,然后从“工具”菜单启动控制台)。
以下代码假设
然后,您可以在Groovy控制台中运行以下命令:
def rnd = new Random()
def fullCorpus = corpora.find { it.name == 'fullCorpus' }
def parts = corpora.findAll {it.name != 'fullCorpus' }
fullCorpus.each { doc ->
def targetCorpus = parts[rnd.nextInt(parts.size())]
targetCorpus.add(doc)
targetCorpus.unloadDocument(doc)
}
return null
这种方法的工作方式是迭代文档并随机选择要添加到的每个文档的语料库。目标子语料库应该大致(但不一定完全)大小相同。
脚本不会保存最终的子语料库,所以如果它搞砸了你可以关闭它们然后从原始数据存储区重新打开它们(空),修复并重新运行脚本。一旦您对最终结果感到满意,请在左侧树中依次单击每个子语料库并“保存到其数据存储区”将其全部写入磁盘。