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.

  • 🧩 Metin okuyucu: WordNet, nltk.corpus'tan içe aktarılır ve İngilizce'nin anlamsal odaklı bir sözlüğü olarak işlev görür.
  • 🔁 Eş anlamlı kümeler: Eş anlamlı kelimeler kümesi, "köpek" kelimesi için verilen sekiz anlam gibi, eş anlamlı kelimelerin bir koleksiyonudur.
  • 🔗 Sözcüksel ilişkiler: Karşılıklı anlamsal bağlantılar, eş anlamlıları, zıt anlamlıları, üst kavramları ve alt kavramları birbirine bağlar.
  • 🧪 Eş anlamlılar ve zıt anlamlılar: tuvaletping "over synsets and lemmas" bir kelimenin tüm eş anlamlı ve zıt anlamlılarını toplar.
  • ???? hiyerarşi: Üst kavramlar, alt kavramlar, bütün kavramlar ve alt kavramlar kelimeleri isim, fiil, sıfat ve zarf alt gruplarına ayırır.
  • 🤖 Yapay zekanın faydaları: WordNet, yazım hatalarını düzeltme, çeviri ve spam tespiti gibi metin analizi görevlerini yerine getirir.

NLTK WordNet

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.

SSS

WordNet, İngilizce için bir NLTK metin okuyucusu ve sözcük veritabanıdır. Anlam odaklı bir sözlük gibi çalışır ve basit aramalarla bir kelimenin anlamını, eş anlamlılarını ve zıt anlamlılarını bulmanızı sağlar. Python emreder.

Eş anlamlı kelime kümesi anlamına gelen synset, aynı kavramı paylaşan kelime grubudur. wordnet.synsets("köpek") çağrısı, "köpek" kelimesinin her bir farklı anlamını temsil eden çeşitli synset'ler döndürür.

wordnet.synsets(word) üzerinde döngü oluşturun, ardından her bir synset'in lemma'larını (lemma.name()) yineleyin. Eş anlamlıları toplamak için lemma.antonyms()'ı, zıt anlamlıları toplamak için ise lemma.antonyms()'ı ekleyin.ping set() fonksiyonundaki sonuçlar yinelenen girdileri kaldırır.

Üst kavram (hypernym), daha geniş ve genel bir terimdir (yemek, kahvaltının üst kavramıdır), alt kavram (hyponym) ise daha spesifik bir terimdir (pirinç, yemeğin alt kavramıdır). WordNet, bunları birbirine bağlayarak bir "is-a" hiyerarşisi oluşturur.

İngilizce WordNet, yaklaşık 117,659 eş anlamlı kelime kümesine ayrılmış yaklaşık 155,287 kelime içermektedir. Veritabanı, her biri kendi alt ağında saklanan dört sözcük türünü (isimler, fiiller, sıfatlar ve zarflar) kapsamaktadır.

Yapay zekada WordNet, kelime anlamı belirsizliğinin giderilmesi, yazım düzeltme, dil çevirisi ve spam tespiti gibi metin analizi görevlerini destekler. Yapılandırılmış ilişkileri, makine öğrenimi modellerine yalnızca ham belirteçlerden daha zengin dilsel özellikler kazandırır.

Evet. Yapay zeka ve makine öğrenimi süreçleri, yol benzerliği ve Wu-Palmer benzerliği gibi WordNet benzerlik ölçütlerini kullanır. İki eşanlamlı kümenin ne kadar yakın olduğunu, üst kavram ve alt kavram hiyerarşisinde aralarındaki en kısa yolu ölçerek puanlarlar.

Normal bir sözlük tanımları alfabetik olarak listeler. WordNet ise bunun yerine kelimeleri anlamsal eş anlamlı kümeler ve sözcüksel ilişkiler yoluyla birbirine bağlar, bu nedenle makinelerin programatik olarak gezebileceği birleşik bir sözlük ve eş anlamlılar sözlüğü gibi davranır.

Bu yazıyı şu şekilde özetleyin: