NLTK WordNet: Найдите синонимы из NLTK WordNet в Python

Что такое Ворднет?

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

from nltk.corpus import wordnet as guru

Найдите синонимы из NLTK WordNet в Python

Статистика показывает, что есть 155287 слов и 117659 синонимов. наборы, включенные в английский WordNet.

Различные методы, доступные в WordNet, можно найти, набрав dir(guru)

['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__form в__', ' __ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']

Давайте разберемся с некоторыми функциями, доступными в wordnet:

Синсет: Его также называют набором синонимов или набором слов-синонимов. Давайте проверим пример

from nltk.corpus import wordnet
syns = wordnet.synsets("dog")
print(syns)

Вывод:

[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]

Лексические отношения: Это семантические отношения, которые взаимны. Если существует связь между {x1,x2,…xn} и {y1,y2,…yn}, то существует также связь между {y1,y2,…yn} и {x1,x2,…xn}. Например, синоним — это противоположность антонима, а гиперонимы и гипонимы — это тип лексического понятия.

Давайте напишем программу, используя питон найти синоним и антоним слова «активный» с помощью Wordnet.

from nltk.corpus import wordnet
	synonyms = []
	antonyms = []

	for syn in wordnet.synsets("active"):
		for l in syn.lemmas():
			synonyms.append(l.name())
			if l.antonyms():
				 antonyms.append(l.antonyms()[0].name())

	print(set(synonyms))
	print(set(antonyms))

Вывод кода:

{'динамический', 'боевой', 'боевой', 'active_voice', 'active_agent', 'участвующий', 'живой', 'активный'} — Синоним

{'статичный', 'пассивный', 'тихий', 'passive_voice', 'вымерший', 'спящий', 'неактивный'} — Антоним

Код программы Wordnet Вывод

Пояснение к коду

  1. Wordnet — это корпус, поэтому он импортируется из ntlk.corpus.
  2. Список синонимов и антонимов считается пустым и будет использоваться для добавления.
  3. Синонимы слова активный ищутся в синсетах модуля и добавляются в список синонимов. Тот же процесс повторяется для второго.
  4. Вывод распечатан

Заключение

WordNet — это лексическая база данных, которая используется крупными Поисковая система. Из WordNet можно вычислить информацию о данном слове или фразе, например:

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

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

  1. Имя существительное
  2. глагол
  3. Имя прилагательное
  4. Наречие

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

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