2017-02-21 33 views
2

我最近發現了斯坦福NLP解析器,它看起來相當神奇。我目前有一個工作實例在我們的項目中運行,但面臨下面提到的2個問題。Java,Stanford NLP:從解析器中提取特定的語音標籤

  1. 如何可以解析文本,然後從解析的數據提取特定的語音標籤,例如,我怎樣才能從句子只提取NNPSPRP
  2. 我們的平臺使用英語和德語,因此總有可能使用英語或德語。我如何適應這種情況。謝謝。

代碼:

private final String PCG_MODEL = "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"; 

    private final TokenizerFactory<CoreLabel> tokenizerFactory = PTBTokenizer.factory(new CoreLabelTokenFactory(), "invertible=true"); 

public void testParser() { 
    LexicalizedParser lp = LexicalizedParser.loadModel(PCG_MODEL); 
     String sent="Complete Howto guide to install EC2 Linux server in Amazon Web services cloud."; 
     Tree parse; 
     parse = lp.parse(sent); 

     List taggedWords = parse.taggedYield(); 
     System.out.println(taggedWords); 
} 

上述例子的作品,但你可以看到我加載的英文資料。謝謝。

+0

這裏指 - http://nlp.stanford.edu/software/pos-tagger-faq.shtml –

+0

@SrikanthA:謝謝,從點24,我明白有語言錯誤的後備機制。關於第一個問題的任何想法。謝謝。 –

回答

0

對於查詢1,我不認爲stanford-nlp可以選擇提取特定的POS標籤。

但是,使用自定義訓練模型,我們可以實現相同。我曾嘗試類似的要求NER - 名稱實體識別自定義模型。

+0

謝謝。對於Query-2,我是否正確回答了德語,還是必須首先進行語言檢測? –

+0

對於查詢-2,你可能不得不看這個 - http://stackoverflow.com/questions/29290107/detecting-language-using-stanford-nlp和http://nlp.stanford.edu/software/corenlp- faq.shtml#語言。 注 - 我沒有嘗試過多種語言,但看看上面的鏈接是否有幫助 –

1

試試這個:

for (Tree subTree: parse) // traversing the sentence's parse tree 
    { 
     if(subTree.label().value().equals("NNPS")) //If the word's label is NNPS 
     { //Do what you want } 
    }