1

自然言語処理にGATEツールを使用しています.Javaコードを使用して文から行を読み取り、キーワードを取得しています.完全な段落を読み取るためにクレオールxmlでどのような変更を行う必要があります..

4

3 に答える 3

2

使用できます

doc.getNamedAnnotationSets().get("Original markups")

結果が得られない場合annotateParagraphs()は、クラスのメソッドを 使用できますgate.corpora.TextualDocumentFormat

于 2013-01-01T19:55:02.773 に答える
0

これは私のために働いた:

  1. ゲートの初期化
  2. ゲート コントローラーの作成 (デフォルトは ANNIE)
  3. コーパスの作成、コントローラへのコーパスの設定、ゲートドキュメント(gateDoc)の作成、コーパスへの追加
  4. controller.execute();
  5. 次のコード

            FeatureMap features = gateDoc.getFeatures();
            String originalContent = (String)
         features.get(GateConstants.ORIGINAL_DOCUMENT_CONTENT_FEATURE_NAME);
            int length = originalContent.length();
    
            TextualDocumentFormat tdf = new TextualDocumentFormat();
                try {
                    tdf.annotateParagraphs(gateDoc,0, length,null);
    
    
                } catch (DocumentFormatException e) {
                    e.printStackTrace();
                }
    
            AnnotationSet paragraphs = gateDoc.getAnnotations().get("paragraph");
    
            Iterator it = paragraphs.iterator();
            Annotation currAnnot;
            SortedAnnotationList sortedParagraphs = new SortedAnnotationList();
    
            while (it.hasNext()) {
                currAnnot = (Annotation) it.next();
                sortedParagraphs.addSortedExclusive(currAnnot);
            } // while
    
            StringBuffer editableContent = new StringBuffer(originalContent);
    
    
                System.out.println("Number of Paragraphs -  "+paragraphs.size());
    
                for(Annotation paragraph:paragraphs){
                    long start = paragraph.getStartNode().getOffset().longValue();
                    long end = paragraph.getEndNode().getOffset().longValue();
    
                    String paraText=editableContent.substring((int) start, (int) end);
                    System.out.println(paraText);
                }
    
于 2015-04-01T18:36:22.783 に答える