Вам стоит взглянуть на Natural Language Toolkit , который предназначен именно для такого рода вещей.
См. Этот раздел руководства: Категоризация и пометка слов - вот выдержка:
>>> text = nltk.word_tokenize("And now for something completely different")
>>> nltk.pos_tag(text)
[('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something', 'NN'),
('completely', 'RB'), ('different', 'JJ')]
"Здесь мы видим, что и - это CC, координирующее соединение; сейчас и полностью - это RB или наречия; для - это IN, предлог; что-то - это NN, существительное; отличается - это JJ, прилагательное. "