получить лемму слова с помощью Wordnet - PullRequest
3 голосов
/ 22 июля 2011

Как я могу получить лемму для данного слова, используя Wordnet.Я не могу найти в документации WordNet то, что я хочу.http://wordnet.princeton.edu/wordnet/man/wn.1WN.html

Например, для слова "книги" я хочу получить "книгу", пепел => пепел, бронирование => книга, яблоки => яблоко .... и т. Д.

Я хочу добиться этого, используя Wordnet в командной строке, и я не могу найти точные параметры для получения такого случая.

Решение php также очень помогло бы, потому что я первоначально намеревался использовать php API Wordnet, но, кажется, текущий на их сайте не работает.

Ответы [ 4 ]

2 голосов
/ 11 июля 2012

Morphy - морфологический процессор, родной для WordNet. Интерфейсы WordNet заставляют Морфи лемматизировать слово как часть процесса поиска (например, вы запрашиваете «просветленный», он возвращает результаты как для «просветленного», так и через Морфи «просветить»).

Интерфейсы не включают функцию, которая позволяет пользователю напрямую обращаться к Morphy, поэтому использование его в командной строке возможно только в том случае, если вы пишете свою собственную программу с использованием одного из API-интерфейсов WordNet. Вы можете найти документацию для Морфи на сайте WordNet.

Насколько я могу судить, PHP-интерфейс все еще доступен, хотя вам может понадобиться использовать WordNet 2.x.

2 голосов
/ 12 июля 2012

Если вы можете использовать другой инструмент, попробуйте TreeTagger .

1 голос
/ 24 июля 2011

Я не уверен, что WordNet реализует его изначально. В NLTK есть Morphy, который точно делает то, что вы хотите, но он реализован на Python. Вы можете написать небольшую программу на Python, которая будет принимать ввод из командной строки и возвращать лемму.

Поиск 'Morphy' по следующей ссылке: http://nltk.googlecode.com/svn/trunk/doc/api/nltk.corpus.reader.wordnet.WordNetCorpusReader-class.html

nltk.WordNetLemmatizer () также делает эту работу. Ищите «Лемматизация» по следующей ссылке: http://nltk.googlecode.com/svn/trunk/doc/book/ch03.html

Сайт НЛТК: http://www.nltk.org/

0 голосов
/ 05 октября 2016

WordNetLemmatizer в библиотеке nltk сделает то, что вам нужно. Вот код Python3:

#!Python3 -- this is lemmatize_s.py
import nltk
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize
print ("This program will lemmatize your input until you ask for it to 'end'.")
while True:
    sentence = input("Type one or more words (or 'end') and press enter:")
    if (sentence == "end"):
        break
    tokens = word_tokenize(sentence)
    lemmatizer = WordNetLemmatizer()
    Output=[lemmatizer.lemmatize(word) for word in tokens]
    print (Output);

Запуск этого из командной строки:

eyeMac2016:james$ python3 lemmatize_s.py
This program will lemmatize your input until you ask for it to 'end'.
Type one or more words  (or 'end') and press enter:books ashes
['book', 'ash']
Type one or more words  (or 'end') and press enter:end
eyeMac2016:james$ 
...