NLP — Adım Adım Öğrenme Rehberi: Part | 4

Tarık Kaan Koç
Nane & Limon
Published in
8 min readFeb 19, 2024

Word Meaning, Word Embedding, Word2Vec, BOW (Bag of Words), TF-IDF (Term Frequency-Inverse Document Frequency), Text Similarity, Dist Similarity

Sevgili okurlar, serimizin dördüncü bölümüne hoş geldiniz! 🌈 Bu seferki yolculuğumuzda, NLP’nin büyüleyici dünyasında bir adım daha ileri gidiyor ve metinlerimizi nasıl daha anlamlı hale getireceğimizi keşfedeceğiz. Kelime anlamlarından başlayıp, ‘Word Embedding’, ‘Text Vectors’, ‘Word2Vec’, ‘BOW (Bag of Words)’, ‘TF-IDF (Term Frequency-Inverse Document Frequency)’ gibi önemli konseptlere kadar uzanacağız. Ayriyeten ‘Text Similarity’ ve ‘Dist Similarity’ konularına yüzeysel olarakda değineceğiz... Hazırsanız, 4. part yolculuğuna başlayalım!

Not: Bu yazı dizisini gönüllü olarak hazırlıyoruz, dolayısıyla diğer bölümlerin ne zaman yayınlanacağı konusunda net bir tarih veremiyoruz. Müsaitlik durumumuza göre hazırlayıp yayınlayacağız. Amacımız, Türkçe kaynakları zenginleştirerek bu alanda bilgi paylaşımına katkıda bulunmak. 🙏🌿🍋

İyi okumalar dilerim ve sabrınız için teşekkür ederim!

Word Meaning & Word Embedding

Word Meaning Kelime anlamı, bir kelimenin veya ifadenin taşıdığı düşünce veya kavramı belirtir ve dilin temel taşlarından biridir. Doğal Dil İşleme (NLP) sistemlerinin, bir dilin nüanslarını ve zenginliklerini anlamasının yolu, kelimeleri hem izole edilmiş biçimlerde hem de geniş bağlamlar içinde doğru bir şekilde analiz etmekten geçer. Bu analiz, semantik (anlam) ve pragmatik (kullanım) boyutları içerir ve kelimelerin anlamlarının doğru bir şekilde işlenmesi, makinelerin dilimizi anlamasında kritik bir role sahiptir. Anlamların doğru tanımlanması ve işlenmesi, chatbotlardan metin analizine, makine çevirisinden sesli asistanlara kadar birçok NLP uygulamasının temelidir.

Word Embedding’in Rolü

Word Embedding’in kullanılmasının ana sebebi, makinelerin insan dilini anlamasındaki zorluklardır. Makine öğrenimi algoritmaları ve derin öğrenme mimarileri, ham metni veya dizeleri doğrudan işleyemez; sayısal formatta girdilere ihtiyaç duyarlar. Word Embedding, kelimeleri ve ifadeleri bu sayısal forma dönüştürerek, bilgisayarların dilin karmaşıklığını ve nüanslarını anlamasına yardımcı olur. Ayrıca, One-Hot Encoding gibi daha basit temsillerin aksine, Word Embedding semantik ilişkileri öğrenebilir ve bu sayede metinle ilgili daha derin analizler yapılmasına olanak tanır. Yani anlayacağınız, NLP’deki derin öğrenme tekniklerinin en güçlü uygulamalarından biridir. Kelimelerin belge içindeki bağlamını, semantik benzerliğini, diğer kelimelerle olan ilişkilerini anlama yeteneği ile ön plana çıkar. Kelime anlamını derinlemesine işlemenin ötesine geçerek, kelimelerin çok boyutlu vektör uzaylarında temsil edilmesini sağlar ve bu sayede kelimeler arasındaki anlam ilişkilerini ve bağlamlarını matematiksel olarak modellememize olanak tanır. (Böylece, ‘kral’ ve ‘kraliçe’ veya ‘adam’ ve ‘kadın’ gibi kelimeler arasındaki ilişkiler, vektör uzayında benzerliklerle ifade edilebilir.) — Burada net anlayabilmeniz için aşağıdaki içeriği mutlaka seyretmenizi öneririm:

Word2Vec: Kelimeler Arasındaki Anlam İlişkilerini Modelleme

Word2Vec, yukarıda bahsedilen Word Embedding’in en popüler yöntemlerinden biridir ve kelimeleri çok boyutlu vektör uzaylarında temsil ederek, bu kelimeler arasındaki anlam ilişkilerini ve bağlamlarını matematiksel olarak modellememize olanak tanır. Mikolov ve ekibi tarafından geliştirilen bu model, derin öğrenme tekniklerini kullanarak, büyük metin korpusları üzerinde kelimelerin semantik ve pragmatik özelliklerini öğrenir. Word2Vec’in temelinde, kelimelerin kullanım bağlamlarından yola çıkarak semantik benzerliklerini çıkarabilme yeteneği yatar. Word2Vec, iki farklı model aracılığıyla çalışır: Continuous Bag of Words (CBOW) ve Skip-Gram. CBOW modeli, bir kelimenin bağlamındaki kelimelerden (yani, çevresindeki kelimelerden) o kelimenin kendisini tahmin etmeye çalışır. Diğer yandan, Skip-Gram modeli tam tersi bir yaklaşım sergiler ve bir kelimenin kendisinden, o kelimenin bağlamındaki kelimeleri tahmin etmeye çalışır. Her iki model de, kelimelerin vektör temsillerini, kelimeler arasındaki ilişkileri yansıtacak şekilde ayarlamak için eğitilir.

Aşağıdaki yazı sizlere güzel bir bakış açısı sunacaktır mutlaka inceleyiniz:

Hazır Embedding Modelleri: OpenAI ve Hugging Face Örnekleri

Word2Vec gibi kendi kelime gömme (embedding) modellerinizi eğitmenin yanı sıra, pek çok proje ve araştırma için hazır embedding modellerini kullanmak hem zaman hem de kaynak açısından oldukça verimli olabilir. Bu bağlamda, OpenAI ve Hugging Face gibi platformlar, çeşitli dillerde ve farklı görevler için önceden eğitilmiş modeller sunarlar. Bu modeller, geniş veri kümeleri üzerinde eğitilmiş ve genel veya spesifik dillerin nüanslarını anlamada uzmanlaşmıştır. Örneğin, OpenAI’nin sunduğu “text-embedding-ada-002” gibi modeller, metni anlamlı sayısal vektörlere dönüştürerek geniş bir yelpazede NLP görevlerinde kullanılabilir. Bu modeller, metin sınıflandırma, duygu analizi, metin özetleme ve daha fazlası için kullanılabilir temel yapıtaşları sunar. Ayrıca Hugging Face’in model havuzunda, farklı dillerde ve farklı NLP görevlerinde kullanılmak üzere tasarlanmış binlerce önceden eğitilmiş model bulunmaktadır.

Hazır Modellerin Avantajları

  • Zaman ve Kaynak Tasarrufu: Farklı görevler ve diller için çeşitli modellerin bulunması, projenize en uygun çözümü seçme esnekliği sunar. Önceden eğitilmiş modeller, sıfırdan model eğitmek için gereken zamanı ve kaynakları önemli ölçüde azaltır. Hugging Face ve OpenAI gibi platformlar, bu modellere kolay erişim sağlar ve entegrasyonu basitleştirir. Ya da kendiniz ilgili use-case’e göre fine-tune edebilirsiniz. Bu yüzden, bir model eğitmek yerine açık kaynak veya özel hizmet sunan kuruluşların modellerini tercih etmenizde fayda vqr.

Ne Zaman Kendi Modelinizi Eğitmeli?

  • Özel İhtiyaçlar: Eğer çalıştığınız dil veya alan için uygun bir önceden eğitilmiş model bulunmuyorsa, kendi modelinizi eğitmeniz gerekebilir. Ya da proje özelinde çok spesifik terminoloji veya dil yapısı gerekiyorsa, kendi modelinizi eğitmeniz gerekebilir.

BOW (Bag of Words): Metin Verisinin Makine Öğrenimi İçin Dönüştürülmesi

Makine öğrenimi algoritmaları, metin gibi yapılandırılmamış verileri doğrudan işleyemezler çünkü bu algoritmalar sayısal girdilere dayanır. Bu nedenle, metin verilerini algoritmaların anlayabileceği bir formata dönüştürmek gereklidir. İşte burada Bag-of-Words (BoW) modeli devreye girer. BoW modeli, metin verisini makine öğrenimi algoritmaları için kullanılabilir özelliklere çeviren basit fakat güçlü bir yöntemdir.

BoW modeli, bir metni kelimelerin varlığına ve sıklığına göre bir vektör setine dönüştürür. Bu modelde, metnin yapısı veya kelime sırası gibi bilgiler göz ardı edilir; sadece kelime türleri ve bunların metindeki frekansları önemlidir. Bu yaklaşım, metni sayısal bir forma dönüştürerek makine öğrenimi modellerinin metin sınıflandırma, duygu analizi gibi görevlerde kullanılmasını sağlar.

BoW Modeli Nasıl Çalışır?

  1. Tokenizations: Metin, bireysel kelimelere veya tokenlere ayrılır.
  2. Kelime Dağarcığının Oluşturulması: Tüm dokümanlardaki benzersiz kelimelerin bir listesi oluşturulur.
  3. Vektörleştirme: Her doküman, kelime dağarcığındaki kelimelerin dokümandaki varlığı ve sıklığına göre bir vektöre dönüştürülür.

Örnek

Dört cümlelik basit bir metin düşünelim:

  1. “Kedi bahçede.”
  2. “Köpek bahçede.”
  3. “Kedi ağacın altında.”
  4. “Köpek kediyi izliyor.”

Bu cümleleri kullanarak BoW modelini adım adım uygulayalım:

  • Adım 1: Tokenleştirme ve Kelime Dağarcığının Oluşturulması Kelime dağarcığımız şu kelimelerden oluşur: “kedi”, “bahçede”, “köpek”, “ağacın”, “altında”, “izliyor”.
  • Adım 2: Vektörleştirme Her cümle, kelime dağarcığındaki kelimelerin varlığı ve sıklığına göre bir vektöre dönüştürülür.

— Cümle 1 için vektör: [1, 1, 0, 0, 0, 0] (“kedi” ve “bahçede” var, diğerleri yok)

— Cümle 2 için vektör: [0, 1, 1, 0, 0, 0] (“köpek” ve “bahçede” var)

— Cümle 3 için vektör: [1, 0, 0, 1, 1, 0] (“kedi”, “ağacın”, ve “altında” var)

— Cümle 4 için vektör: [1, 0, 1, 0, 0, 1] (“kedi”, “köpek”, ve “izliyor” var)

Sonuç olarak Bag-of-Words, metin verisini makine öğrenimi algoritmalarının işleyebileceği sayısal formata dönüştürme konusunda basit ve etkili bir çözümdür. Ancak, modelin sınırlılıklarını göz önünde bulundurarak, projenizin gereksinimlerine en uygun ön işleme tekniklerini seçmek önemli. Çünkü BoW modeli, kelimelerin sırasını ve cümle yapısını göz ardı eder, bu da bazı durumlarda anlam kaybına yol açabilir. Kelime dağarcığı büyüdükçe, vektörlerin boyutu da artar, bu da modelin karmaşıklığını ve hesaplama maliyetini artırabilir.

TF-IDF (Term Frequency-Inverse Document Frequency)

TF-IDF, metin işlemede kelimenin hem dokümanda ne kadar sık geçtiğini (TF) hem de tüm dokümanlar içinde ne kadar nadir olduğunu (IDF) dikkate alarak bir kelimenin önemini belirleyen bir yöntemdir. Bu, kelimenin dokümandaki ağırlığını, sıklığına ve nadirliğine göre ayarlar. Böylece, sık geçen ancak genel olarak önemsiz kelimelerin (örneğin, “ve”, “bir”) etkisi azaltılırken, dokümanı özgün kılan kelimelere daha yüksek ağırlık verilir.

TF-IDF ve Bag-of-Words (BoW) yöntemi arasındaki temel fark, TF-IDF’in kelimenin sadece dokümandaki varlığını değil, aynı zamanda o kelimenin tüm doküman koleksiyonu içindeki nadirliğini de dikkate almasıdır. BoW, metni kelimelerin varlığına göre bir vektöre dönüştürürken, kelimenin dokümanlar arasındaki dağılımını göz ardı eder.

Word Embedding ile TF-IDF arasındaki fark ise daha derindir. Word Embedding, kelimeleri anlamlandırılmış vektörler olarak temsil eder ve kelimeler arasındaki semantik ilişkileri yakalar. Bu, makine öğrenimi modellerinin kelimelerin bağlamını ve anlamını daha iyi anlamasını sağlar. TF-IDF ise metin içindeki kelimelerin önemini sayısal bir değerle ifade eder, ancak kelimelerin anlamsal ilişkilerini doğrudan modellemez.

Kısacası, TF-IDF, BoW’un sıklık tabanlı yaklaşımını geliştirirken, Word Embedding daha zengin semantik ilişkileri modelleme yeteneği ile metin işlemenin daha ileri seviyesini temsil eder. Her iki yöntem de metin verisini makine öğrenimi algoritmaları için işlenebilir formata dönüştürmek için kullanılır, ancak farklı ihtiyaç ve hedeflere hizmet ederler.

Aşağıdaki yazıyı ve videoya mutlaka göz atmanızı öneririm:

Metin Benzerliği ve Mesafe Benzerliği

Metin işlemede, özellikle doğal dil işleme (NLP) alanında, metinler arasındaki benzerliği ve farklılıkları ölçmek önemli bir görevdir. Bu görev, metin sınıflandırma, öneri sistemleri, metin kümeleme ve çoğaltılan içeriği tespit etme gibi birçok uygulamada temel bir bileşendir. Metin benzerliği (Text Similarity) ve mesafe benzerliği (Distance Similarity), bu ölçümlemeleri gerçekleştirmek için kullanılan iki ana yöntemdir.

Metin Benzerliği (Text Similarity)

Metin benzerliği, iki veya daha fazla metin arasındaki benzerliğin sayısal bir değerle ifade edilmesidir. Bu değer, genellikle 0 ile 1 arasında bir skala üzerinde ölçülür; 1, iki metnin tamamen benzer olduğunu, 0 ise hiçbir benzerlik olmadığını gösterir. Metin benzerliği hesaplama yöntemleri arasında kosinüs benzerliği, Jaccard benzerliği ve Levenshtein mesafesi (bir tür düzenleme mesafesi) bulunur.

Kosinüs Benzerliği: Bu yöntem, iki metni vektör olarak temsil eder ve bu vektörler arasındaki açının kosinüsünü alarak benzerliği hesaplar. Kosinüs benzerliği, metinlerin yönlerinin benzerliğine odaklanır ve büyüklüklerini göz ardı eder, bu da onu sıklık tabanlı özellikler için uygun hale getirir.

Jaccard Benzerliği: İki metin kümesinin kesişiminin birleşimine bölünmesiyle hesaplanır. Bu yöntem, yalnızca metinlerdeki benzersiz kelimelerin varlığını dikkate alır ve sıklıkları göz ardı eder.

Mesafe Benzerliği (Distance Similarity)

Mesafe benzerliği, iki metin arasındaki “mesafeyi” ölçer ve bu mesafe ne kadar küçükse, metinler o kadar benzer kabul edilir. Mesafe benzerliği, genellikle düzenleme mesafesi veya Levenshtein mesafesi olarak adlandırılan bir metrik ile hesaplanır.

Levenshtein Mesafesi: İki metin arasındaki en az düzenleme (ekleme, silme, değiştirme) sayısını ifade eder. Bu mesafe, iki metin arasındaki farklılıkların bir ölçüsü olarak kullanılır ve özellikle yazım hatalarının tespiti ve düzeltilmesi gibi alanlarda kullanışlıdır.

Sonuç olarak, Metin benzerliği ve mesafe benzerliği, metinler arasındaki ilişkileri anlamak ve çeşitli NLP görevlerinde kullanmak için kritik öneme sahip yöntemlerdir. Her bir yöntemin kendine has avantajları ve kullanım alanları vardır, ve uygulamanın gereksinimlerine göre en uygun olanın seçilmesi gerekir.

Ödev

Bu ödev, Doğal Dil İşleme (NLP) alanındaki temel teknikler ve kavramlar hakkında kapsamlı bir anlayış geliştirmenize yardımcı olacak bir dizi görev içermektedir. Ödeviniz, Word Meaning, Word Embedding, Word2Vec, Bag of Words (BoW), TF-IDF (Term Frequency-Inverse Document Frequency), Text Similarity ve Distance Similarity konularını kapsayacak şekilde tasarlanmıştır.

Görevler:

  1. Word Embedding Uygulaması:
  • Herhangi bir açık kaynaklı Word Embedding modelini kullanarak, seçtiğiniz üç kelimenin vektör temsillerini elde edin.
  • Bu vektörler arasındaki kosinüs benzerliğini hesaplayın ve sonuçları analiz edin.
  • İsteyen embedding based “sentiment analysis” çalışmasıda yapabilir.

2. Word2Vec Deneyi:

  • Bir Word2Vec modeli kullanarak, seçtiğiniz bir kelime için en yakın kelimeleri bulun. Bu kelimelerin semantik benzerliklerini ve ilişkilerini gözden geçirin.

3. BoW ve TF-IDF Karşılaştırması:

  • Aynı doküman seti üzerinde hem BoW hem de TF-IDF vektörleştirme yöntemlerini uygulayın. Her iki yöntemin sonuçlarını karşılaştırın ve hangi durumlarda birinin diğerine göre daha avantajlı olduğunu gözlemleyin.

4. Metin Benzerliği ve Mesafe Benzerliği Analizi:

  • İki kısa metin parçası seçin ve aralarındaki metin benzerliğini hem kosinüs benzerliği hem de Jaccard benzerliği kullanarak hesaplayın. Aynı metinler için Levenshtein mesafesini hesaplayın ve sonuçları karşılaştırın.

Sonuç:

4. Part’ta, Doğal Dil İşleme’nin tekniklerine yüzeysel olarak değindik. Word Meaning, Word Embedding, Word2Vec, BoW, TF-IDF, Text Similarity ve Distance Similarity konularını yüzeysel olarak ele aldığımızı unutmayın. Ancak, gerçek dünya verileri ve projeleri üzerinde çalışmak, bu tekniklerin derinlemesine anlaşılmasında kritik öneme sahiptir. Önerim, her bir teknik üzerine daha fazla pratik yapmanız ve konu hakkında daha derinlemesine okumalar yapmanız yönündedir. Bu süreç, sadece teorik bilgileri pekiştirmekle kalmaz, aynı zamanda NLP’nin zenginliğini ve uygulama alanlarını da keşfetmenize olanak tanır.

Bu rehber serisinin devamını sabırsızlıkla bekleyin…! 🙏🌿🍋

Sonraki bölümlerde NLP’nin daha teknik yönlerine ve uygulamalarına odaklanarak, bu büyüleyici alanın daha da derinliklerine ineceğiz. 🌍💫

Yolculuğunuzda başarılar ve keyifli öğrenmeler dilerim! 🙏🌍

Bana linkedin üzerinden ulaşabilirsiniz. 🦋

--

--