自然言語処理にGATEツールを使用しています.Javaコードを使用して文から行を読み取り、キーワードを取得しています.完全な段落を読み取るためにクレオールxmlでどのような変更を行う必要があります..
質問する
1454 次
3 に答える
2
使用できます
doc.getNamedAnnotationSets().get("Original markups")
結果が得られない場合annotateParagraphs()
は、クラスのメソッドを
使用できますgate.corpora.TextualDocumentFormat
。
于 2013-01-01T19:55:02.773 に答える
0
これは私のために働いた:
- ゲートの初期化
- ゲート コントローラーの作成 (デフォルトは ANNIE)
- コーパスの作成、コントローラへのコーパスの設定、ゲートドキュメント(gateDoc)の作成、コーパスへの追加
- controller.execute();
次のコード
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 に答える