Python 过滤特定词性NLTK

Python 过滤特定词性NLTK,python,filter,nltk,pos-tagger,Python,Filter,Nltk,Pos Tagger,这一定很简单,但不知怎的我错过了。我有密码: import nltk f=open('...\\t.txt','rU') raw=f.read() tokens = nltk.word_tokenize(raw) print nltk.pos_tag(tokens) 例如,它返回: “[('processs','NNS'),('a','DT'),('sequence','NN'),('of','IN'),('words','NNS')] 我想知道我怎么能只收集所有的'NN'例如,或者所有的'

这一定很简单,但不知怎的我错过了。我有密码:

import nltk

f=open('...\\t.txt','rU')
raw=f.read()
tokens = nltk.word_tokenize(raw)
print nltk.pos_tag(tokens)
例如,它返回:

“[('processs','NNS'),('a','DT'),('sequence','NN'),('of','IN'),('words','NNS')]

我想知道我怎么能只收集所有的'NN'例如,或者所有的'DT'和'IN'而不是字符串的每个成员


提前感谢

您可以通过列表理解仅提取您想要的标签,例如:

>>> tags = nltk.pos_tag(tokens)
>>> dt_tags = [t for t in tags if t[1] == "DT"]
>>> dt_tags
[('a', 'DT')]

很好,如果我想在nltk.pos_标记(标记)中找到DTs和NNS标记2=[t代表t如果t[1]==“NNS”]标记2是的,您甚至可以为每种类型创建一个带有标记的字典:
all_标记={tag tag:[t代表t,如果t[1]==tag]代表[“DT”,“NNS”,…]中的标记