Получить лемму слова, используя wordnet
Как я могу получить лемму для данного слова, используя Wordnet. Я не могу найти в документации WordNet то, что я хочу. http://wordnet.princeton.edu/wordnet/man/wn.1WN.html
Например, для слова "книги" я хочу получить "книгу", пепел => пепел, бронирование => книга, яблоки => яблоко.... и т. Д.
Я хочу добиться этого с помощью Wordnet в командной строке, и я не могу найти точные параметры, чтобы получить такой случай.
Решение php также очень помогло бы, потому что я изначально намеревался использовать php API Wordnet, но кажется, что текущий на их сайте не работает.
4 ответа
Если вы можете использовать другой инструмент, попробуйте TreeTagger.
Морфи является морфологическим процессором, родным для WordNet. Интерфейсы WordNet заставляют Морфи лемматизировать слово как часть процесса поиска (например, вы запрашиваете "просветленный", он возвращает результаты как для "просветленного", так и через Морфи "просветить").
Интерфейсы не включают в себя функцию, которая позволяет пользователю напрямую обращаться к Morphy, поэтому использование его в командной строке возможно только в том случае, если вы пишете свою собственную программу с использованием одного из API-интерфейсов WordNet. Вы можете найти документацию для Morphy на сайте WordNet.
Насколько я могу судить, интерфейс PHP все еще доступен, хотя вам может понадобиться использовать WordNet 2.x.
Я не уверен, что 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/
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$