2013-07-26 86 views
2

我有一些要求是從java中使用stanford nlp的解析文本中獲取有意義的單詞。 我正在嘗試以下示例代碼。如何從文本中使用stanford nlp獲取有意義的單詞in java

import edu.stanford.nlp.trees.*; 
    import edu.stanford.nlp.ling.HasWord; 
    import edu.stanford.nlp.parser.lexparser.LexicalizedParser; 
    public class Demo 
    { 
    public static void main(String args[]) 
     { 
    LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser"); 
    lp.setOptionFlags(new String[]{"-maxLength", "80","-retainTmpSubcategories"}); 
       String sent = "my name is arjun"; 
       Tree parse = (Tree) lp.apply(sent); 
       List taggedWords = parse.taggedYield(); 
       System.out.println(parse.toString()); 
    } 
    } 

輸出:

​​

所需的輸出:

name,arjun. 

怎麼辦this.please建議我。

謝謝。

回答

2

確定您感興趣的詞組級別,並僅輸出TaggedWord的詞部分。

從你唯一的例子來看,你似乎對單個名詞(NN)和形容詞(JJ)或ADJP(形容詞短語)感興趣。 (雖然根據你的例子,同樣有效的答案是,「顯示以[a]或[n]開頭的所有單詞或長度大於2的所有單詞)。

您不應該使用toString版本;而是檢查解析樹中的標記值。

相關問題