NLTK WordNet: Temukan Sinonim dari NLTK WordNet di Python
⚡ Ringkasan Cerdas
WordNet adalah basis data leksikal dan pembaca korpus NLTK untuk bahasa Inggris yang mengelompokkan kata benda, kata kerja, kata sifat, dan kata keterangan ke dalam synset, sehingga memungkinkan Python Program-program tersebut mencari sinonim, antonim, hipernim, dan makna kata untuk pemrosesan bahasa alami.
Apa itu Wordnet?
WordNet WordNet adalah pembaca korpus NLTK, sebuah basis data leksikal untuk bahasa Inggris. Ia dapat digunakan untuk menemukan arti kata, sinonim, atau antonim. Dapat didefinisikan sebagai kamus bahasa Inggris yang berorientasi semantik. WordNet diimpor dengan perintah berikut:
from nltk.corpus import wordnet as guru
Karena WordNet dikirimkan sebagai korpus yang sudah jadi, Anda dapat memuatnya sekali dan langsung mulai menanyakan hubungan antar kata tanpa perlu membuat kamus sendiri.
Temukan Sinonim dari NLTK WordNet di Python
Statistik mengungkapkan bahwa ada 155287 kata dan 117659 sinonim Set yang disertakan dengan English WordNet. Berbagai metode yang tersedia dengan WordNet dapat ditemukan dengan mengetikkanping dir(guru), yang mencantumkan setiap atribut loader dan metode pembantu yang diekspos oleh pembaca korpus.
Synset: Ini juga disebut himpunan 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 relasi semantik yang bersifat timbal balik. Jika ada relasi antara {x1,x2,…xn} dan {y1,y2,…yn}, maka ada juga relasi antara {y1,y2,…yn} dan {x1,x2,…xn}. Misalnya, sinonim adalah lawan kata dari antonim, sedangkan hipernim dan hiponim adalah jenis konsep leksikal.
Mari kita menulis program menggunakan Python untuk menemukan sinonim dan antonim dari 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:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym
Penjelasan kodenya:
- WordNet adalah sebuah korpus, jadi diimpor dari paket nltk.corpus.
- Dua daftar untuk sinonim dan antonim dianggap kosong, yang akan digunakan untuk penambahan.
- Sinonim dari kata “aktif” dicari menggunakan metode synsets dan ditambahkan ke daftar sinonim. Proses yang sama juga dilakukan untuk mengumpulkan antonim.
- Output dicetak sebagai Python mengatur agar entri duplikat dihapus secara otomatis.
Selain sinonim dan antonim, WordNet juga menampilkan hipernim (istilah yang lebih luas), hiponim (istilah yang lebih spesifik), holonim, dan meronim, sehingga satu kueri dapat menempatkan sebuah kata di dalam seluruh hierarki "is-a". Hubungan-hubungan ini menjadikan WordNet sebagai tesaurus praktis untuk pemeriksa ejaan, penerjemahan bahasa, deteksi spam, dan tugas analisis teks lainnya dalam kecerdasan buatan.

