0

私はUIMAに非常に慣れていますが、新しい作業ではGATEを使用する必要があります

それで、GATEを習い始めました。私の質問は、タグ付けエンジン (Java ベース) のパフォーマンスを計算する方法に関するものです。

UIMA では、通常、すべてのシステム アノテーションを xmi ファイルにダンプし、Java コードを使用して人間がアノテーションを付けた (ゴールド スタンダード) アノテーションと比較して、Precision/Recall および F-score を計算します。

しかし、私はまだGATEで似たようなものを見つけるのに苦労しています. そのページのGate Annotation-Diffおよびその他の情報を調べた後、JAVA で簡単に実行できる方法があるはずだと感じました。しかし、JAVAを使用してそれを行う方法を理解できません。この質問をここに置くと思ったら、誰かがすでにこれを理解しているかもしれません。

  1. プログラムでシステム注釈を xmi または任意の形式のファイルに保存する方法。
  2. パフォーマンス計算用の 1 回限りのゴールド スタンダード データ (つまり、人間が注釈を付けたデータ) を作成する方法。

より具体的または詳細が必要な場合はお知らせください。

4

1 に答える 1

0

このコードは、注釈を xml ファイルに書き込むのに役立つようです。 http://gate.ac.uk/wiki/code-repository/src/sheffield/examples/BatchProcessApp.java

        String docXMLString = null;
        // if we want to just write out specific annotation types, we must
        // extract the annotations into a Set
        if(annotTypesToWrite != null) {
            // Create a temporary Set to hold the annotations we wish to write out
            Set annotationsToWrite = new HashSet();

            // we only extract annotations from the default (unnamed) AnnotationSet
            // in this example
            AnnotationSet defaultAnnots = doc.getAnnotations();
            Iterator annotTypesIt = annotTypesToWrite.iterator();
            while(annotTypesIt.hasNext()) {
                // extract all the annotations of each requested type and add them to
                // the temporary set
                AnnotationSet annotsOfThisType =
                        defaultAnnots.get((String)annotTypesIt.next());
                if(annotsOfThisType != null) {
                    annotationsToWrite.addAll(annotsOfThisType);
                }
            }

            // create the XML string using these annotations
            docXMLString = doc.toXml(annotationsToWrite);
        }
        // otherwise, just write out the whole document as GateXML
        else {
            docXMLString = doc.toXml();
        }

        // Release the document, as it is no longer needed
        Factory.deleteResource(doc);

        // output the XML to <inputFile>.out.xml
        String outputFileName = docFile.getName() + ".out.xml";
        File outputFile = new File(docFile.getParentFile(), outputFileName);

        // Write output files using the same encoding as the original
        FileOutputStream fos = new FileOutputStream(outputFile);
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        OutputStreamWriter out;
        if(encoding == null) {
            out = new OutputStreamWriter(bos);
        }
        else {
            out = new OutputStreamWriter(bos, encoding);
        }

        out.write(docXMLString);

        out.close();
        System.out.println("done");
于 2013-08-23T17:41:02.283 に答える