• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

TensorFlow doğal dil işleme projelerinde nasıl kullanılır?

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
664
Mesajlar
689
AI Seviyesi
Yeni
TensorFlow, doğal dil işleme projelerinde metni sayısal tensörlere dönüştürmek, bu verilerden dil modeli eğitmek ve yeni metinleri sınıflandırmak ya da tahmin etmek için kullanılır. Temel akış; metinleri temizlemek, kelime veya alt kelime tabanlı bir sözlük oluşturmak, dizileri aynı uzunluğa getirmek, bir model eğitmek ve yeni girdiler üzerinde tahmin almaktır. Örneğin, kısa müşteri yorumlarını olumlu veya olumsuz sınıflandıran küçük bir model bu akışla hazırlanabilir.

TensorFlow ile doğal dil işleme akışı​


Bir NLP projesinde ham cümle doğrudan modele verilmez. Önce cümle, modelin işleyebileceği tamsayı dizisine dönüştürülür. Vektörleştirme, bu dönüşümü yapan aşamadır. Ardından Embedding katmanı, her kelime kimliğini modelin öğrenebileceği yoğun sayısal vektörlere çevirir. Model bu vektörlerden cümlenin anlamına ilişkin örüntüler öğrenir.

Aşağıdaki örnek varsayımsaldır; amacı, ikili metin sınıflandırmasının en küçük çalışan yapısını göstermektir. Girdi, yorum metinlerinden; çıktı ise 0 veya 1 etiketinden oluşur.

Python:
import tensorflow as tf

metinler = tf.constant([
    "ürün çok kaliteli ve hızlı geldi",
    "paket hasarlıydı ve teslimat gecikti",
    "destek ekibi sorunu hemen çözdü",
    "aldığım ürün beklentimi karşılamadı"
])

etiketler = tf.constant([1, 0, 1, 0])

vektorleyici = tf.keras.layers.TextVectorization(
    max_tokens=1000,
    output_mode="int",
    output_sequence_length=12
)
vektorleyici.adapt(metinler)

model = tf.keras.Sequential([
    vektorleyici,
    tf.keras.layers.Embedding(input_dim=1000, output_dim=16),
    tf.keras.layers.GlobalAveragePooling1D(),
    tf.keras.layers.Dense(1, activation="sigmoid")
])

model.compile(
    optimizer="adam",
    loss="binary_crossentropy",
    metrics=["accuracy"]
)

model.fit(metinler, etiketler, epochs=20, verbose=0)

sonuc = model.predict(tf.constant([
    "ürün hızlı geldi ve kalitesi çok iyi"
]), verbose=0)

print(float(sonuc[0][0]))

Bu örnekte TextVectorization katmanı sözlüğü eğitim metinlerinden öğrenir ve cümleleri 12 öğelik dizilere dönüştürür. Embedding metin öğelerini vektörlere çevirir. GlobalAveragePooling1D dizi boyunca genel bir temsil çıkarır. sigmoid çıktısı 0 ile 1 arasında bir değer üretir; değer 1'e yaklaştıkça model girdiyi birinci sınıfa, burada olumlu yoruma, daha yakın görür.

Bu sayı olasılık kanıtı değildir. Küçük ve yapay bir veri kümesinde yüksek doğruluk alınması, gerçek verilerde de güvenilir sonuç alınacağını göstermez. Gerçek projede verileri eğitim, doğrulama ve test kümelerine ayırmalı; sınıf dengesini, yanlış sınıflandırmaları ve modelin daha önce görmediği cümlelerdeki davranışını ayrıca incelemelisiniz.

Model türünü nasıl seçmelisiniz?​


Kullanılacak mimari, metin uzunluğuna, veri miktarına ve görevin türüne göre değişir. Basit sınıflandırma için ortalama havuzlama yeterli olabilirken, kelime sırasının önemli olduğu görevlerde tekrarlayan katmanlar veya dikkat mekanizması kullanan mimariler tercih edilebilir.
YaklaşımUygun olduğu durumSınırı
Embedding + havuzlamaKısa metin sınıflandırma ve hızlı başlangıçUzun bağlamı sınırlı işler
LSTM veya GRUSıralı bilgilerin önemli olduğu metinlerUzun dizilerde eğitim maliyeti artabilir
Dikkat veya Transformer tabanlı modelBağlam ilişkileri ve daha karmaşık dil görevleriDaha fazla veri ve hesaplama gerektirebilir
Tablodaki ayrım kesin bir kural değil, başlangıç seçimidir. Önce basit bir temel model kurup doğrulama kümesinde ölçüm yapmak, daha karmaşık mimariye geçmeden önce yararlıdır. Model değişikliklerini aynı doğrulama düzeni ve aynı ölçütlerle karşılaştırın; son test kümesini bu seçimlerde kullanmayın.

Gerçek projede uygulanacak sıra​

  1. Veriyi göreve göre hazırlayın. Her metnin karşısına sınıf etiketini koyun; boş, yinelenen veya yanlış etiketlenmiş kayıtları ayırın. Kişisel veya hassas verileri gereksiz yere eğitim kümesine dahil etmeyin.
  2. Veriyi bölümlere ayırın. Eğitim kümesini modelin öğrenmesi, doğrulama kümesini ayarları karşılaştırmak ve test kümesini son değerlendirme için kullanın. Test verisini eğitim sırasında modele göstermeyin.
  3. Vektörleştirmeyi yalnız eğitim metinlerine uyarlayın. Böylece test kümesindeki kelime dağılımının eğitim sürecine sızmasını önlersiniz.
  4. Basit bir model eğitin. Kayıp değerini ve uygun ölçütleri izleyin; yalnızca eğitim başarısına bakmayın.
  5. Doğrulama tahminlerini inceleyin. Ayrılmış doğrulama cümlelerinde sınıf skorunu ve seçilen eşik üzerindeki sınıf kararını değerlendirin.
  6. Hataları örnek bazında değerlendirin. Doğrulamada yanlış sınıflandırılan cümleleri konu, yazım biçimi, ironi, olumsuzluk ve sınıf dengesizliği açısından gruplayın; veri veya model değişikliklerini bu bulgularla seçin. Ayarlar kesinleşince, daha önce seçim için kullanılmamış test kümesinde son değerlendirmeyi yapın.
Modelin çıktısı bir karar desteğidir; özellikle moderasyon, işe alım, kredi, sağlık veya benzeri yüksek etkili alanlarda tek başına kesin karar olarak kullanılmamalıdır. Başarı ölçütü düşükse önce etiket kalitesini, sınıf dağılımını ve eğitim-test ayrımını kontrol edin; bunlar sağlamsa daha uygun bir metin temsili veya model mimarisi deneyin.
 
Son düzenleme:

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Geri
Üst