2016-01-09 94 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来对它们进行群集。