Лемматизация POS-помеченных слов с помощью NLTK?

У меня POS помечены некоторые слова с помощью nltk.pos_tag(), поэтому им даны теги дерева. Я хотел бы lemmatize эти слова, используя известные теги POS, но я не уверен, как это сделать. Я смотрел на Wordnet lemmatizer, но я не уверен, как преобразовать теги POS дерева в теги, принятые lemmatizer. Как я могу выполнить это преобразование просто, или есть лимитатор, который использует теги treebank?

Ответы

Ответ 1

Словатонный леммамер знает только четыре части речи (ADJ, ADV, NOUN и VERB), и только правила NOUN и VERB делают что-то особенно интересное. Существительные части речи в наборе меток treebank начинаются с NN, все теги глаголов начинаются с VB, теги прилагательных начинаются с JJ, а теги наречия начинаются с RB. Таким образом, преобразование из одного набора меток в другое довольно просто, что-то вроде:

from nltk.corpus import wordnet

morphy_tag = {'NN':wordnet.NOUN,'JJ':wordnet.ADJ,'VB':wordnet.VERB,'RB':wordnet.ADV}[penn_tag[:2]]