2010-11-11 4 views
0

Есть ли какой-либо пакет в python nltk, который может создавать все разные части речевых слов для данного слова. Например, если я даю add (глагол), тогда он должен производить добавление (существительное), additive (adj) и так далее. Может ли кто-нибудь сообщить мне об этом?Извлечение разных слов POS для данного слова в python nltk

ответ

0

У NLTK есть много умных вещей, скрывающихся, поэтому может быть прямой способ сделать это. Однако, я думаю, вам, возможно, придется написать свой собственный код для работы с базой данных WordNet.

2

Есть два варианта я могу думать с верхней частью моей головы:

Вариант один перебрать образец POS-тегами и просто корпуса построить это отображение себя. Это дает вам теги POS, которые связаны с определенным словом в корпусах.

Вариант второй состоит в том, чтобы построить скрытую маркерную марку POS-метки на корпусах, а затем проверить значения модели. Это дает вам теги POS, которые связаны с определенным словом в корпусах плюс их априорные вероятности, а также некоторые другие статистические данные.

В зависимости от вашего прецедента, может быть лучше другого. Я бы начал с варианта один, так как это быстро и просто.

0

Это может быть то, что вы ищете:

from nltk.corpus import wordnet 

add = wordnet.synsets('add', 'v') 

add 
>>> 
[Synset('add.v.01'), 
Synset('add.v.02'), 
Synset('lend.v.01'), 
Synset('add.v.04'), 
Synset('total.v.02'), 
Synset('add.v.06')] 

lemma = add[0].lemmas[0] 

lemma 
>>> Lemma('add.v.01.add') 
lemma.derivationally_related_forms() 
>>> [Lemma('addition.n.02.addition'), Lemma('linear.a.01.additive')] 
Смежные вопросы