注釈付きの何千ものドキュメントのコーパス (JSerial Datastore に保持) があります。次に、ランダムに選択して、それを 3 つの小さなものに分割する必要があります。GATEで最も簡単な方法は何ですか?
実行中のコードや詳細なガイドは大歓迎です!
注釈付きの何千ものドキュメントのコーパス (JSerial Datastore に保持) があります。次に、ランダムに選択して、それを 3 つの小さなものに分割する必要があります。GATEで最も簡単な方法は何ですか?
実行中のコードや詳細なガイドは大歓迎です!
これには 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
これが機能する方法は、ドキュメントを繰り返し処理し、追加するドキュメントごとにコーパスをランダムに選択することです。ターゲット サブコーパスは、ほぼ同じサイズになるはずです (ただし、必ずしも正確である必要はありません)。
スクリプトは最終的なサブコーパスを保存しないため、問題が発生した場合は、それらを閉じてから、元のデータストアから再度開く (空にする) ことができます。修正してスクリプトを再実行します。最終結果に満足したら、左側のツリーで各サブコーパスを順番に右クリックし、「そのデータストアに保存」してすべてをディスクに書き込みます。