this must be simple but I'm missing it somehow. I have the code:

import nltk

f=open('...\\t.txt','rU')
raw=f.read()
tokens = nltk.word_tokenize(raw)
print nltk.pos_tag(tokens)

which returns for instance:

"[('processes', 'NNS'), ('a', 'DT'), ('sequence', 'NN'), ('of', 'IN'), ('words', 'NNS')]

I was wondering how I could just collected solely all 'NN' for example or all 'DT' AND 'IN' instead of every member of the string.

thanks in advance

有帮助吗?

解决方案

You can extract only the tags you want with a list comprehension, e.g.:

>>> tags = nltk.pos_tag(tokens)
>>> dt_tags = [t for t in tags if t[1] == "DT"]
>>> dt_tags
[('a', 'DT')]
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top