斯坦福大学NLP:如何获得大块头

时间:2016-01-09 03:19:16

标签: python regex nltk stanford-nlp

所以在nltk中,我们可以指定POS标签的正则表达式来提取文本块

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)) 

是否可以使用stanford nlp做这样的事情?我想做的是使用stanford POS标签来标记我的文本,因为我发现它比nltk的标记更准确。我猜一旦我有标记的句子,我仍然可以使用上面的代码。斯坦福NLP仍然提供开箱即用的东西来创建大量的文本吗?

另外,我知道nltk 3提供stanford NLP支持。那么如何将两者结合起来获取文本块呢?我更喜欢在python中这样做。

1 个答案:

答案 0 :(得分:2)

如果您知道要将其视为块的模式,则可以使用TokensRegex对其进行聚类。