2016-09-26 87 views
0

我在Python上使用了帶有NLTK的StanfordParser。它給了我下面的輸出:如何使用斯坦福分析器從NLTK獲取POS標籤?

(ROOT 
    (S 
     (NP (NNP Python)) 
     (VP (VBZ is) (NP (DT a) (JJ lovely) (NN language))) 
     (. !))) 

但我想有這樣的名單:

[['Python', 'NNP'], ['is', 'VBZ'], ['a', 'DT'], ['lovely', 'JJ'], ['language', 'NN']] 

我希望所有的名詞詞組。我該怎麼辦?

+0

如果您只需要POS標籤,則不需要運行解析器,因爲POS標籤是解析的預處理步驟。看看NLTKs POS標籤,例如。 [StanfordPOSTagger](http://www.nltk.org/api/nltk.tag.html#module-nltk.tag.stanford)。 – lenz

+0

@lenz StanfordPagagger不給我名詞短語。 –

+0

在您的示例輸出中沒有名詞短語。我建議你首先弄清楚你需要什麼,然後發佈一個新問題,並在這裏刪除這個問題(通過編輯的問題陳述在這個網站上被忽略)。 – lenz

回答

0

在這裏你可以看到是NLTK樹木方法:http://www.nltk.org/_modules/nltk/tree.html

這很可能會做到這一點:

parser = StanfordParser(model_path="lib/englishPCFG.ser.gz") 
parsed = parser.raw_parse("update Office 365") 
next(parsed).pos() 

返回: [( '更新', 'VB'),('辦公室'','NNP'),('365','NNP')]