Mencari kata-kata di Wordnet
Apa itu Wordnet?
Wordnet adalah basis data leksikal bahasa Inggris yang besar, yang dibuat oleh Princeton. Ini adalah bagian dari korpus NLTK. Kata benda, kata kerja, kata sifat dan kata keterangan semuanya dikelompokkan ke dalam set synset, yaitu sinonim kognitif. Di sini setiap set synset mengungkapkan arti yang berbeda. Berikut adalah beberapa kasus penggunaan Wordnet -
- Ini dapat digunakan untuk mencari definisi sebuah kata
- Kita dapat menemukan sinonim dan antonim dari sebuah kata
- Hubungan dan persamaan kata dapat dieksplorasi menggunakan Wordnet
- Disambiguasi pengertian kata untuk kata-kata yang memiliki banyak kegunaan dan definisi
Bagaimana cara mengimpor Wordnet?
Wordnet dapat diimpor dengan bantuan perintah berikut -
from nltk.corpus import wordnet
Untuk perintah yang lebih ringkas, gunakan yang berikut ini -
from nltk.corpus import wordnet as wn
Contoh sinkronisasi
Sinonim adalah pengelompokan kata-kata sinonim yang mengungkapkan konsep yang sama. Saat Anda menggunakan Wordnet untuk mencari kata, Anda akan mendapatkan daftar instance Synset.
wordnet.synsets (kata)
Untuk mendapatkan daftar Synsets, kita dapat mencari kata apapun di Wordnet dengan menggunakan wordnet.synsets(word). Misalnya, dalam resep Python berikutnya, kita akan mencari Synset untuk 'anjing' bersama dengan beberapa properti dan metode Synset -
Contoh
Pertama, impor wordnet sebagai berikut -
from nltk.corpus import wordnet as wn
Sekarang, berikan kata yang ingin Anda cari Synset-nya -
syn = wn.synsets('dog')[0]
Di sini, kami menggunakan metode name () untuk mendapatkan nama unik untuk synset yang dapat digunakan untuk mendapatkan Synset secara langsung -
syn.name()
Output:
'dog.n.01'
Selanjutnya, kita menggunakan metode definition () yang akan memberi kita definisi dari kata -
syn.definition()
Output:
'a member of the genus Canis (probably descended from the common wolf) that has
been domesticated by man since prehistoric times; occurs in many breeds'
Metode lain adalah contoh () yang akan memberi kita contoh yang terkait dengan kata -
syn.examples()
Output:
['the dog barked all night']
Contoh implementasi lengkap
from nltk.corpus import wordnet as wn
syn = wn.synsets('dog')[0]
syn.name()
syn.definition()
syn.examples()
Mendapatkan Hypernyms
Synsets diatur dalam struktur seperti pohon pewarisan Hypernyms mewakili istilah yang lebih abstrak sementara Hyponymsmewakili istilah yang lebih spesifik. Salah satu hal penting adalah bahwa pohon ini dapat ditelusuri hingga ke hypernym root. Mari kita pahami konsepnya dengan bantuan contoh berikut -
from nltk.corpus import wordnet as wn
syn = wn.synsets('dog')[0]
syn.hypernyms()
Keluaran
[Synset('canine.n.02'), Synset('domestic_animal.n.01')]
Di sini, kita bisa melihat bahwa canine dan domestic_animal adalah hypernyms dari 'dog'.
Sekarang, kita dapat menemukan hiponim dari 'dog' sebagai berikut -
syn.hypernyms()[0].hyponyms()
Keluaran
[
Synset('bitch.n.04'),
Synset('dog.n.01'),
Synset('fox.n.01'),
Synset('hyena.n.01'),
Synset('jackal.n.01'),
Synset('wild_dog.n.01'),
Synset('wolf.n.01')
]
Dari output di atas, kita dapat melihat bahwa 'dog' hanyalah salah satu dari banyak hiponim 'domestic_animals'.
Untuk menemukan root dari semua ini, kita dapat menggunakan perintah berikut -
syn.root_hypernyms()
Keluaran
[Synset('entity.n.01')]
Dari keluaran di atas, kita dapat melihat bahwa ia hanya memiliki satu root.
Contoh implementasi lengkap
from nltk.corpus import wordnet as wn
syn = wn.synsets('dog')[0]
syn.hypernyms()
syn.hypernyms()[0].hyponyms()
syn.root_hypernyms()
Keluaran
[Synset('entity.n.01')]
Lemma di Wordnet
Dalam ilmu linguistik, bentuk kanonik atau bentuk morfologi suatu kata disebut lemma. Untuk menemukan sinonim dan antonim dari sebuah kata, kita juga dapat mencari lemma di WordNet. Mari kita lihat caranya.
Menemukan Sinonim
Dengan menggunakan metode lemma (), kita dapat menemukan jumlah sinonim dari sebuah Synset. Mari kita terapkan metode ini pada synset 'dog' -
Contoh
from nltk.corpus import wordnet as wn
syn = wn.synsets('dog')[0]
lemmas = syn.lemmas()
len(lemmas)
Keluaran
3
Output di atas menunjukkan 'anjing' memiliki tiga lemma.
Mendapatkan nama lemma pertama sebagai berikut -
lemmas[0].name()
Output:
'dog'
Mendapatkan nama lemma kedua sebagai berikut -
lemmas[1].name()
Output:
'domestic_dog'
Mendapatkan nama lemma ketiga sebagai berikut -
lemmas[2].name()
Output:
'Canis_familiaris'
Sebenarnya, Synset mewakili sekelompok lemma yang semuanya memiliki arti yang sama sementara lemma mewakili bentuk kata yang berbeda.
Menemukan Antonim
Di WordNet, beberapa lemma juga memiliki antonim. Misalnya, kata 'baik' memiliki total 27 sinet, di antaranya, 5 memiliki lemma dengan antonim. Mari kita cari antonimnya (ketika kata 'good' digunakan sebagai kata benda dan ketika kata 'good' digunakan sebagai kata sifat).
Contoh 1
from nltk.corpus import wordnet as wn
syn1 = wn.synset('good.n.02')
antonym1 = syn1.lemmas()[0].antonyms()[0]
antonym1.name()
Keluaran
'evil'
antonym1.synset().definition()
Keluaran
'the quality of being morally wrong in principle or practice'
Contoh di atas menunjukkan bahwa kata 'baik', bila digunakan sebagai kata benda, memiliki antonim pertama 'jahat'.
Contoh 2
from nltk.corpus import wordnet as wn
syn2 = wn.synset('good.a.01')
antonym2 = syn2.lemmas()[0].antonyms()[0]
antonym2.name()
Keluaran
'bad'
antonym2.synset().definition()
Keluaran
'having undesirable or negative qualities’
Contoh di atas menunjukkan bahwa kata 'baik', jika digunakan sebagai kata sifat, memiliki antonim pertama 'buruk'.