NLTK WordNet: NLTK WordNet'ten Eş Anlamlıları Bulun Python
⚡ Akıllı Özet
WordNet, İngilizce için isimleri, fiilleri, sıfatları ve zarfları eş anlamlı kelime kümeleri halinde gruplandıran bir sözcük veritabanı ve NLTK metin okuyucusudur. Python Programlar, doğal dil işleme için eş anlamlıları, zıt anlamlıları, üst kavramları ve kelime anlamlarını arar.

Wordnet nedir?
WordNet WordNet, İngilizce için bir sözcük veritabanı olan NLTK metin okuyucusudur. Kelimelerin anlamını, eş anlamlısını veya zıt anlamlısını bulmak için kullanılabilir. İngilizcenin anlamsal odaklı bir sözlüğü olarak tanımlanabilir. WordNet aşağıdaki komutla içe aktarılır:
from nltk.corpus import wordnet as guru
WordNet hazır bir metin kümesi olarak sunulduğu için, onu bir kez yükleyip kendiniz herhangi bir sözlük oluşturmanıza gerek kalmadan kelime ilişkilerini sorgulamaya hemen başlayabilirsiniz.
NLTK WordNet'ten Eş Anlamlıları Bulun Python
İstatistikler var olduğunu ortaya koyuyor 155287 kelime ve 117659 eşanlamlı İngilizce WordNet ile birlikte gelen setler. WordNet ile kullanılabilen farklı yöntemlere ty komutuyla ulaşılabilir.ping dir(guru), metin okuyucusu tarafından sunulan her yükleyici özniteliğini ve yardımcı yöntemi listeler.
Synset: Buna aynı zamanda eş anlamlı kelimeler kümesi veya eş anlamlı kelimeler koleksiyonu da denir. Bir örneğe bakalım.
from nltk.corpus import wordnet syns = 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. Eğer {x1,x2,…xn} ve {y1,y2,…yn} arasında bir ilişki varsa, o zaman {y1,y2,…yn} ve {x1,x2,…xn} arasında da bir ilişki vardır. Örneğin, eş anlamlı, zıt anlamlının karşıtıdır; üst kavramlar ve alt kavramlar ise bir tür sözcüksel kavramdır.
kullanarak bir program yazalım. Python WordNet kullanarak "aktif" kelimesinin eş anlamlısını ve zıt anlamlısını bulmak.
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))
Kodun çıktısı:
{'dynamic', 'fighting', 'combat-ready', 'active_voice', 'active_agent', 'participating', 'alive', 'active'} -- Synonym
{'stative', 'passive', 'quiet', 'passive_voice', 'extinct', 'dormant', 'inactive'} -- Antonym
Kodun açıklaması:
- WordNet bir metin derlemi olduğundan, nltk.corpus paketinden içe aktarılır.
- Eş anlamlı ve zıt anlamlı kelimeler için iki liste boş olarak alınacak ve ekleme işlemi için kullanılacaktır.
- "Aktif" kelimesinin eş anlamlıları, synsets yöntemi kullanılarak aranır ve eş anlamlılar listesine eklenir. Aynı işlem zıt anlamlıları da toplar.
- Çıktı şu şekilde yazdırılır: Python Yinelenen girişlerin otomatik olarak kaldırılması için ayarlar yapılır.
WordNet, eş anlamlı ve zıt anlamlı kelimelerin ötesinde, üst kavramları (daha geniş terimler), alt kavramları (daha spesifik terimler), bütünsel kavramları ve alt kavramları da ortaya koyarak, tek bir sorguyla bir kelimeyi tüm bir "is-a" hiyerarşisinin içine yerleştirmeyi mümkün kılar. Bu ilişkiler, WordNet'i yazım denetleyicileri, dil çevirisi, spam tespiti ve yapay zekadaki diğer metin analizi görevleri için pratik bir sözlük haline getirir.
