2016-01-09 97 views
1

所以在NLTK,我們可以指定POS標籤的正則表達式來提取文本塊作爲斯坦福NLP:如何獲得大塊

sentence = [("the", "DT"), ("little", "JJ"), ("yellow", "JJ"), 
... ("dog", "NN"), ("barked", "VBD"), ("at", "IN"), ("the", "DT"), ("cat", "NN")] 

grammar = "NP: {<DT>?<JJ>*<NN>}" 

cp = nltk.RegexpParser(grammar) 
result = cp.parse(sentence) 
print(result) 
(S 
    (NP the/DT little/JJ yellow/JJ dog/NN) 
    barked/VBD 
    at/IN 
    (NP the/DT cat/NN)) 

是否有可能做這樣的事情使用斯坦福NLP?我想要做的是使用stanford POS tagger來標記我的文本,因爲我發現它比nltk的tagger更準確。我想,一旦我有了標記的句子,無論如何我都可以使用上面的代碼。斯坦福大學的NLP是否還提供了一些開箱即用的功能來創建文本塊?

此外,我知道nltk 3提供了斯坦福NLP支持。那麼如何將兩者結合起來以獲得大塊文本呢?我寧願在python中這樣做。

+1

請參閱https://github.com/alvations/nltk_cli – alvas

回答

1

如果您知道要作爲塊的模式,可以使用TokensRegex來對它們進行羣集。