Использование NLTK и WordNet;как я могу преобразовать простой глагол времени в его причастие в настоящем, прошлом или прошлом? - PullRequest
28 голосов
/ 20 сентября 2010

Используя NLTK и WordNet , как я могу преобразовать простой глагол времени в форму настоящего, прошедшего или прошедшего причастия?

Например:

Я хочу написать функцию, которая выдала бы мне глагол в ожидаемой форме следующим образом.

v = 'go'
present = present_tense(v)
print present # prints "going"

past = past_tense(v)
print past # prints "went"

Ответы [ 4 ]

19 голосов
/ 21 сентября 2010

Я думаю, что вам нужна библиотека NodeBox :: Linguistics . Это делает именно это:

print en.verb.present("gave")
>>> give
18 голосов
/ 07 ноября 2014

С помощью NLTK это также можно сделать. Это может дать основную форму глагола. Но не точное время, но это все еще может быть полезным. Попробуйте следующий код.

from nltk.stem.wordnet import WordNetLemmatizer
words = ['gave','went','going','dating']
for word in words:
    print word+"-->"+WordNetLemmatizer().lemmatize(word,'v')

Вывод:

gave-->give
went-->go
going-->go
dating-->date

Взгляните на вопрос переполнения стека NLTK Лемматизатор WordNet: разве он не должен лемматизировать все сгибы слова?

8 голосов
/ 17 января 2018

Для Python3:

git clone https://github.com/clips/pattern
cd pattern
git fetch
git checkout development
pip install mysqlclient
python setup.py install

тогда

from pattern.en import conjugate, lemma, lexeme,PRESENT,SG
print (lemma('gave'))
print (lexeme('gave'))
print (conjugate(verb='give',tense=PRESENT,number=SG)) # he / she / it

выходы

give ['give', 'gives', 'giving', 'gave', 'given'] gives

Спасибо @Agargara за указание и авторам Pattern за их прекрасную работу, иди поддержи их;

0 голосов
/ 24 июня 2011

JWI (библиотека WordNet от MIT) также имеет основатель (WordNetStemmer), который преобразует различные морфологические формы слова типа («написано», «пишет», «написано») в их базовую форму.Кажется, это работает только для существительных (как множественное число) и глаголов, хотя.

Происхождение слов в Java с помощью WordNet и JWNL также показывает, как выполнить этот вид обработки с помощью JWNL, другой библиотеки Wordnet на основе Java:

...