2012-06-03 67 views

回答

0

我不知道你的意思是什麼,但如果你使用ANNIE,你可以把每個段落放在一個單獨的標籤。 我用standAloneAnnie.java

http://gate.ac.uk/wiki/code-repository/src/sheffield/examples/StandAloneAnnie.java

如果用戶輸入

What is your name, ,some text sometext 

Sometext sometext sometext 

其結果將是

<paragraph>What is your name, ,some text sometext</paragraph> 

<paragraph>Sometext sometext sometext</paragraph> 

您可以爲每個單詞獲取更多標籤,如人物,位置,句子或標記。

如果用戶輸入例如

在哪裏吃飯在吉隆坡。赫爾頓酒店

其結果將是一個包含

<paragraph> 
     <Sentence> 
     <Token>Where</Token> 
     <Token>To</Token> 
     <Token> 
     <Unknown>Dine</Unknown> 
     </Token> 
     <Token>In</Token> 
     <Lookup> 
     <Location> 
     <Token>Kuala</Token> 
     <Token> 
     <Lookup>Lumpur</Lookup> 
     </Token> 
     </Location> 
     </Lookup> 
     <Token> 
     <Split>.</Split> 
     </Token> 
     </Sentence> 

     <Sentence> 
     <Organization> 
     <Token>Helton</Token> 
     <Token> 
     <Lookup> 
     <Lookup>Hotel</Lookup> 
     </Lookup> 
     </Token> 
     </Organization> 
     </Sentence> 

    </paragraph> 

目前我正在試圖讓同義詞,但未能如願:( 我想要的結果,包括其他選項,如爲一個xml文件上面這句話,我想結果有 佳餚 - >晚餐,食品,吃,餐廳

2

您可以使用

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

如果它沒有給出任何結果,您可以使用類 gate.corpora.TextualDocumentFormat的方法annotateParagraphs()

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); 
          }