I need to classify words into their parts of speech. Like a verb, a noun, an adverb etc.. I used the
nltk.word_tokenize() #to identify word in a sentence
nltk.
This will work
for sent in chunked_sentences:
for chunk in sent:
if hasattr(chunk, "label"):
print(chunk.label())
Below is my code:
chunks = ne_chunk(postags, binary=True)
for c in chunks:
if hasattr(c, 'node'):
myNE.append(' '.join(i[0] for i in c.leaves()))
I agree with bdk
sent3[2].node
O/P - 'NE'
I think there is no function in nltk to do it.Above solution will work but for reference you can check here
for looping problem you can do :-
for i in range(len(sent3)):
if "NE" in str(sent3[i]):
print sent3[i].node
I have executed this in nltk and it works fine..
This answer may be off base, and in which case I'll delete it, as I don't have NLTK installed here to try it, but I think you can just do:
>>> sent3[2].node
'NE'
sent3[2][0]
returns the first child of the tree, not the node itself
Edit: I tried this when I got home, and it does indeed work.
Now sent3[2].node is outdated.
use sent3[2].label() instead