AI-For-Beginners/translations/tr/lessons/5-NLP
Pikachú 5d34bc4eb8 Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00
..
13-TextRep Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00
14-Embeddings Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00
15-LanguageModeling Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00
16-RNN Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00
17-GenerativeNetworks Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00
18-Transformers Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00
19-NER Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00
20-LangModels Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00
README.md Add support documentation and translations for various lessons 2025-02-12 16:09:04 +00:00

README.md

Doğal Dil İşleme

NLP görevlerinin özetini gösteren bir doodle

Bu bölümde, Doğal Dil İşleme (NLP) ile ilgili görevleri ele almak için Sinir Ağlarını kullanmaya odaklanacağız. Bilgisayarların çözmesini istediğimiz birçok NLP sorunu bulunmaktadır:

  • Metin sınıflandırması, metin dizileri ile ilgili tipik bir sınıflandırma problemidir. Örnekler arasında e-posta mesajlarını spam ve spam olmayan olarak sınıflandırmak veya makaleleri spor, iş, siyaset vb. kategorilere ayırmak yer alır. Ayrıca, sohbet botları geliştirirken, genellikle bir kullanıcının ne demek istediğini anlamamız gerekir; bu durumda niyet sınıflandırması ile ilgileniyoruz. Niyet sınıflandırmasında genellikle birçok kategori ile başa çıkmamız gerekir.
  • Duygu analizi, bir cümlenin anlamının ne kadar olumlu/olumsuz olduğunu karşılık gelen bir sayıya (bir duyguya) atfetmemiz gereken tipik bir regresyon problemidir. Duygu analizinin daha gelişmiş bir versiyonu, cümlenin tamamına değil, farklı kısımlarına (aspektlere) duygu atfettiğimiz aspekt bazlı duygu analizi (ABSA) olarak bilinir; örneğin, Bu restoranda mutfağı beğendim, ama atmosfer berbat.
  • Adlandırılmış Varlık Tanıma (NER), metinden belirli varlıkları çıkarma problemine atıfta bulunur. Örneğin, Yarın Paris'e uçmam gerekiyor ifadesinde yarın kelimesinin TARİH'e, Paris kelimesinin ise LOKASYON'a karşılık geldiğini anlamamız gerekebilir.
  • Anahtar kelime çıkarımı, NER'ye benzer, ancak cümlenin anlamı için önemli kelimeleri otomatik olarak, belirli varlık türleri için ön eğitim yapmadan çıkarmamız gerekir.
  • Metin kümeleme, benzer cümleleri bir araya gruplamak istediğimizde yararlı olabilir; örneğin, teknik destek konuşmalarındaki benzer talepler.
  • Soru yanıtlama, bir modelin belirli bir soruyu yanıtlayabilme yeteneğine atıfta bulunur. Model, bir metin parçası ve bir soru alır ve sorunun yanıtının bulunduğu metindeki yeri sağlaması gerekir (veya bazen yanıt metnini oluşturması).
  • Metin Üretimi, bir modelin yeni metin oluşturabilme yeteneğidir. Bu, bazı metin istemleri temelinde bir sonraki harf/kelimeyi tahmin eden bir sınıflandırma görevi olarak düşünülebilir. GPT-3 gibi gelişmiş metin üretim modelleri, istek programlama veya istek mühendisliği gibi bir teknik kullanarak sınıflandırma gibi diğer NLP görevlerini çözebilir.
  • Metin özetleme, bir bilgisayarın uzun metni "okumasını" ve birkaç cümlede özetlemesini istediğimiz bir tekniktir.
  • Makine çevirisi, bir dilde metin anlayışının ve diğer bir dilde metin üretiminin bir kombinasyonu olarak görülebilir.

Başlangıçta, çoğu NLP görevi geleneksel yöntemlerle, örneğin dilbilgileri kullanılarak çözülüyordu. Örneğin, makine çevirisinde, başlangıç cümlesini bir sözdizim ağaçına dönüştürmek için ayrıştırıcılar kullanılıyordu, ardından cümlenin anlamını temsil etmek için daha yüksek düzeyde anlamsal yapılar çıkarılıyordu ve bu anlam ile hedef dilin dilbilgisine dayanarak sonuç üretiliyordu. Günümüzde birçok NLP görevi, sinir ağları kullanılarak daha etkili bir şekilde çözülmektedir.

Birçok klasik NLP yöntemi, Doğal Dil İşleme Araç Takımı (NLTK) Python kütüphanesinde uygulanmıştır. Farklı NLP görevlerinin NLTK kullanılarak nasıl çözülebileceğini kapsayan harika bir NLTK Kitabı çevrimiçi olarak mevcuttur.

Kursumuzda, genellikle NLP için Sinir Ağlarını kullanmaya odaklanacağız ve gerektiğinde NLTK kullanacağız.

Daha önce, sinir ağlarını tablo verileri ve görüntülerle başa çıkmak için kullanmayı öğrendik. Bu veri türleri ile metin arasındaki ana fark, metnin değişken uzunlukta bir dizi olmasıdır; oysa görüntüler durumunda girdi boyutu önceden bilinir. Konvolüsyonel ağlar girdi verilerinden kalıpları çıkarabilirken, metindeki kalıplar daha karmaşıktır. Örneğin, birçok kelime için öznenin olumsuzluğunun ayrılmasının rastgele olması mümkündür (örneğin, Portakalları sevmiyorum, vs. O büyük renkli lezzetli portakalları sevmiyorum), ve bu hala bir kalıp olarak yorumlanmalıdır. Bu nedenle, dili ele almak için tekrarlayan ağlar ve dönüştürücüler gibi yeni sinir ağı türlerini tanıtmamız gerekir.

Kütüphaneleri Yükle

Bu kursu çalıştırmak için yerel Python yüklemesi kullanıyorsanız, NLP için gerekli tüm kütüphaneleri aşağıdaki komutları kullanarak yüklemeniz gerekebilir:

PyTorch için

pip install -r requirements-torch.txt

TensorFlow için

pip install -r requirements-tf.txt

TensorFlow ile NLP'yi Microsoft Learn üzerinde deneyebilirsiniz.

GPU Uyarısı

Bu bölümde, bazı örneklerde oldukça büyük modelleri eğiteceğiz.

  • GPU Destekli Bilgisayar Kullanın: Büyük modellerle çalışırken bekleme sürelerini azaltmak için not defterlerinizi GPU destekli bir bilgisayarda çalıştırmanız önerilir.
  • GPU Bellek Kısıtlamaları: Bir GPU'da çalışmak, özellikle büyük modelleri eğitirken GPU belleğinin tükenmesi durumlarına yol açabilir.
  • GPU Bellek Tüketimi: Eğitim sırasında tüketilen GPU belleği miktarı, minibatch boyutu gibi çeşitli faktörlere bağlıdır.
  • Minibatch Boyutunu Küçültün: GPU bellek sorunlarıyla karşılaşırsanız, kodunuzda minibatch boyutunu azaltmayı düşünebilirsiniz.
  • TensorFlow GPU Bellek Salımı: Eski TensorFlow sürümleri, bir Python çekirdeği içinde birden fazla modeli eğitirken GPU belleğini doğru bir şekilde serbest bırakmayabilir. GPU bellek kullanımını etkili bir şekilde yönetmek için TensorFlow'u yalnızca gerektiğinde GPU belleği ayıracak şekilde yapılandırabilirsiniz.
  • Kod Dahil Etme: TensorFlow'un GPU bellek tahsisini yalnızca gerektiğinde artırması için not defterlerinize aşağıdaki kodu ekleyin:
physical_devices = tf.config.list_physical_devices('GPU') 
if len(physical_devices)>0:
    tf.config.experimental.set_memory_growth(physical_devices[0], True) 

Klasik ML perspektifinden NLP hakkında daha fazla bilgi edinmek isterseniz, bu dersler dizisine göz atın.

Bu Bölümde

Bu bölümde şunları öğreneceğiz:

ıklama:
Bu belge, makine tabanlı yapay zeka çeviri hizmetleri kullanılarak çevrilmiştir. Doğruluğa özen göstersek de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayın. Yerel dilindeki orijinal belge, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilmektedir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.