WordNet — это английский словарь, который является частью Natural Language Tool Kit (NLTK) для Python. Это обширная библиотека, созданная для упрощения обработки естественного языка (NLP). Некоторые основные функции будут рассмотрены в этой статье. Чтобы начать использовать WordNet, вы должны сначала импортировать его:
из nltk.corpus import wordnet
Synsets and Lemmas
В WordNet похожие слова сгруппированы в набор, известный как Synset (сокращение от Synonym-set ). У каждого Synset есть имя, часть речи и номер. Слова в Synset известны как Леммы .
Получение Synsets
Функция wordnet.synsets ( 'word')
возвращает массив , содержащий все наборы Synset, относящиеся к слову, переданному ему в качестве аргумента.
Пример:
print(wordnet.sysnets('room'))
Вывод:
[Synset (‘room.n.01’), Synset (‘room.n.02’), Synset (‘room.n.03’), Synset (‘room.n.04’), Synset (‘board.v.02’)]
- Метод вернул пять наборов Synset; четыре имеют имя ‘room’ и являются существительными , а имя последнего — ‘board’ и является глаголом . Вывод также предполагает, что слово « room » имеет в общей сложности пять значений или контекстов.
Получение определения Synset
Используя definition ()
, можно дополнительно изучить отдельный Synset для определения общего для всех Леммы в нем. Этот метод возвращает строку , которая является общим определением. Это можно сделать двумя способами:
- Мы можем использовать массив, возвращаемый
synsets ('word')
, и получить доступ к одному из его элементов. :
syn_arr = wordnet.synsets ('room') syn_arr [0] .definition ()
Вывод:
область внутри здания, ограниченная стенами, полом и потолком
- Или передайте имя Synset, его часть речи и его номер в
synset ()
, а затем используйтеdefinition ()
:
wordnet.synset('room.n.02').definition()
Вывод:
пространство для движения
Получение всех лемм Synset
Аналогично, lemma_names ()
можно использовать двумя способами для возврата массива всех имен лемм:
print (syn_arr [1] .lemma_names ()) # orprint (wordnet.synset ('board.v.02'). lemma_names ())
Вывод:
[u’room ‘, u’way’, u ‘elbow_room’]
[u’board ‘, u’room’]
Гипонимы
А Гипоним является специализацией Synset. Его можно рассматривать как дочерний (или производный) класс при наследовании. Функция hyponyms ()
возвращает массив, содержащий все наборы Synset, которые являются гипонимами данного набора Synset:
print (wordnet.synset (' calendar.n.01 '). hyponyms ())
Вывод:
[Synset (‘ lunar_calendar.n.01 ‘), Synset (‘ lunisolar_calendar.n.01 ‘), Synset (‘ solar_calendar.n.01 ‘)]
Hypernyms
A Hypernym — это обобщение Synset (т. е. противоположность Hyponym). hypernyms ()
:
print (wordnet.synset ('solar_calendar.n.01 ') .hypernyms ())
Вывод:
[Synset (‘ calendar.n.01 ‘)]
- Посетите официальный сайт NLTK для получения более подробной информации.