Wordnet nedir?
Wordnet, bir NLTK külliyat okuyucusudur, İngilizce için sözlü bir veritabanıdır. Kelimelerin, eş anlamlıların veya zıtlıkların anlamlarını bulmak için kullanılabilir. Bunu anlam odaklı bir İngilizce sözlüğü olarak tanımlayabiliriz. Aşağıdaki komutla içe aktarılır:
from nltk.corpus import wordnet as guru
İstatistikler , İngilizce WordNet'e dahil 155287 kelime ve 117659 eş anlamlı seti olduğunu ortaya koymaktadır .
WordNet ile kullanılabilen farklı yöntemler dir (guru) yazarak bulunabilir.
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__oc__, __form' __ge__ ',' __getattr__ ',' __getattribute__ ',' __gt__ ',' __hash__ ',' __init__ ',' __le__ ',' __lt__ ',' __module__ ',' __name__ ',' __ne__ ',' __new__ ',' __uce__ ' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']
Wordnet'te bulunan bazı özellikleri anlayalım:
Synset : Aynı zamanda eşanlamlı kelime kümesi veya eşanlamlı kelimeler koleksiyonu olarak da adlandırılır. Bir örneğe bakalım
from nltk.corpus import wordnetsyns = wordnet.synsets("dog")print(syns)
Çıktı:
[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')]
Sözcüksel İlişkiler : Bunlar karşılıklı olan anlamsal ilişkilerdir. {X1, x2,… xn} ile {y1, y2,… yn} arasında bir ilişki varsa, {y1, y2,… yn} ve {x1, x2,… xn} arasında da bir ilişki vardır. Örneğin, eşanlamlı, zıt anlamlıların veya hipermilerin zıttıdır ve hiponim, sözcüksel kavramın bir türüdür.
Wordnet kullanarak "aktif" kelimesinin eş anlamlı ve zıt anlamlılarını bulmak için python kullanarak bir program yazalım.
from nltk.corpus import wordnetsynonyms = []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))
Kodun çıktısı:
{'dinamik', 'dövüş', 'savaşa hazır', 'active_voice', 'active_agent', 'katılımcı', 'canlı', 'aktif'} - Eşanlamlı
{'sabit', 'pasif', 'sessiz', 'pasif_voice', 'soyu tükenmiş', 'hareketsiz', 'pasif'} - Antonym
Kodun açıklaması
- Wordnet bir külliyattır, bu nedenle ntlk.corpus'tan içe aktarılır.
- Hem eşanlamlı hem de zıt anlamlıların listesi boş alınır ve bu liste,
- Active kelimesinin eşanlamlıları modül eş anlamlılarında aranır ve eşanlamlılar listesine eklenir. Aynı işlem ikincisi için tekrarlanır.
- Çıktı yazdırılır
Sonuç:
WordNet, büyük bir arama motoru tarafından kullanılan sözcüksel bir veritabanıdır. WordNet'ten, belirli bir kelime veya kelime öbeği hakkındaki bilgiler şu şekilde hesaplanabilir:
- eşanlamlı (aynı anlama sahip kelimeler)
- hypernyms (Bir özellik sınıfını belirtmek için kullanılan genel terim (yani, yemek bir kahvaltıdır), hiponimler (pirinç bir öğündür)
- holonimler (proteinler, karbonhidratlar yemeğin bir parçasıdır)
- meronimler (yemek, günlük gıda alımının bir parçasıdır)
WordNet ayrıca koordinat terimleri, türevler, duyular ve daha fazlası hakkında bilgi sağlar. Herhangi iki kelime arasındaki benzerlikleri bulmak için kullanılır. Aynı zamanda ilgili kelimenin sonuçları hakkında bilgi de tutar. Kısaca veya özetle, bir Sözlük veya Eş Anlamlılar Sözlüğü olarak ele alınabilir. Wordnet'te daha derine inildiğinde, aşağıdaki gibi toplam dört alt ağa bölünmüştür:
- İsim
- Fiil
- Sıfat
- Zarf
Yapay zeka alanında metin analizi için kullanılabilir. Wordnet'in yardımıyla, yazım denetimi, dil çevirisi, Spam algılama ve daha pek çok şey için külliyatınızı oluşturabilirsiniz.
Aynı şekilde, bu külliyatı kullanabilir ve onu bazı dinamik işlevler için biçimlendirebilirsiniz. Bu tıpkı sizin için külliyat yapmaya hazır gibidir. Kendi tarzınızda kullanabilirsiniz.