NLTK WordNet: Temukan Sinonim dari NLTK WordNet di Python

Apa itu Wordnet?

Wordnet adalah pembaca korpus NLTK, basis data leksikal untuk bahasa Inggris. Wordnet dapat digunakan untuk mencari arti kata, sinonim atau antonim. Wordnet dapat didefinisikan sebagai kamus bahasa Inggris yang berorientasi semantik. Wordnet diimpor dengan perintah berikut:

from nltk.corpus import wordnet as guru

Temukan Sinonim dari NLTK WordNet di Python

Statistik mengungkapkan bahwa ada 155287 kata dan 117659 sinonim set disertakan dengan WordNet bahasa Inggris.

Berbagai metode yang tersedia dengan WordNet dapat ditemukan dengan mengetik dir(guru)

['_LazyCorpusLoader__Args', '_lazyCorpusLoader__kwargs', '_lazyCorpusLoader__Load', '_lazyCorpusLoader__name', '________________________________________________Te' __ '__' __ '__' __ '__' __ __ __ __ __ '__' __ '__' doc__ ',' __eq__ ',' __format__ ',' __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']

Mari kita pahami beberapa fitur yang tersedia dengan wordnet:

Sinset: Disebut juga kumpulan sinonim atau kumpulan kata-kata sinonim. Mari kita periksa sebuah contoh

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

Keluaran:

[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')]

Hubungan Leksikal: Ini adalah hubungan semantik yang saling berbalas. Jika terdapat hubungan antara {x1,x2,…xn} dan {y1,y2,…yn} maka terdapat pula hubungan antara {y1,y2,…yn} dan {x1,x2,…xn}. Misalnya Sinonim adalah kebalikan dari antonim atau hipernim dan hiponim adalah jenis konsep leksikal.

Mari kita menulis program menggunakan ular sanca untuk menemukan sinonim dan antonim kata “aktif” menggunakan 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))

Keluaran kode:

{'dinamis', 'bertarung', 'siap tempur', 'suara_aktif', 'agen_aktif', 'berpartisipasi', 'hidup', 'aktif'} — Persamaan Kata

{'statif', 'pasif', 'tenang', 'suara_pasif', 'punah', 'tidak aktif', 'tidak aktif'} — Antonim

Keluaran kode program Wordnet

Penjelasan kode

  1. Wordnet adalah sebuah korpus, jadi diimpor dari ntlk.corpus
  2. Daftar sinonim dan antonim dianggap kosong yang akan digunakan untuk penambahan
  3. Sinonim dari kata aktif dicari di synsets modul dan ditambahkan dalam daftar sinonim. Proses yang sama diulangi untuk yang kedua.
  4. Keluaran dicetak

Kesimpulan

WordNet adalah database leksikal yang telah digunakan oleh banyak orang mesin pencari. Dari WordNet, informasi tentang suatu kata atau frase dapat dihitung seperti

  • sinonim (kata-kata yang mempunyai arti yang sama)
  • hypernyms (Istilah umum yang digunakan untuk menunjuk pada suatu kelas spesifik (yakni, makanan adalah sarapan), hiponim (nasi adalah makanan)
  • holonim (protein, karbohidrat adalah bagian dari makanan)
  • meronyms (makanan adalah bagian dari asupan makanan sehari-hari)

WordNet juga menyediakan informasi tentang istilah koordinat, turunan, pengertian, dan banyak lagi. Ini digunakan untuk menemukan persamaan antara dua kata. Ini juga menyimpan informasi tentang hasil kata terkait. Singkatnya, seseorang dapat memperlakukannya sebagai Kamus atau Tesaurus. Lebih dalam lagi di wordnet, ini dibagi menjadi empat subnet total seperti

  1. Kata benda
  2. Kata kerja
  3. Kata sifat
  4. kata keterangan

Hal ini dapat digunakan di bidang kecerdasan buatan untuk analisis teks. Dengan bantuan Wordnet, Anda dapat membuat korpus untuk pemeriksaan ejaan, terjemahan bahasa, deteksi Spam, dan banyak lagi.

Dengan cara yang sama, Anda dapat menggunakan korpus ini dan membentuknya agar menjalankan beberapa fungsi dinamis. Ini seperti korpus siap pakai untuk Anda. Anda dapat menggunakannya sesuai keinginan Anda.