Kurs
Doğal dil işleme (NLP), makine öğrenmesini kullanarak metnin yapısını ve anlamını ortaya koyar ve böylece insanların bilgisayarlarla iletişim biçimini iyileştirir. Doğal dil işleme uygulamalarıyla kuruluşlar, metni analiz edip daha anlamlı bilgiler çıkararak üretkenliği artırabilir ve maliyetleri düşürebilir; bu da müşteri deneyimini iyileştirmeye yardımcı olur.
Doğal Dil İşleme (NLP) nedir?
Dilimizin incelikleri üzerine sık sık düşündüğümüz söylenemez. Bilgi ve anlam aktarmak için kelimeler, işaretler veya görseller gibi anlamsal ipuçlarına yaslanan sezgisel bir davranıştır. Dili öğrenmenin, tıpkı yürüme gibi içselleştirilebilir ve tekrarlanabilir bir davranış olduğu için ergenlikte daha kolay olduğu bazen söylenir. Ayrıca, diller katı kurallara uymaz ve çok sayıda istisna içerir.
Dil edinimi insanlar için doğal olsa da, yapılandırılmamış veri bolluğu, katı kuralların eksikliği ve somut bir bakış açısı ya da bağlamın bulunmayışı nedeniyle bilgisayarlar için son derece karmaşıktır. Yine de insanlar, iletişim kurmak ve görevleri yerine getirmek için giderek daha fazla bilgisayar sistemlerine güveniyor. Bu nedenle makine öğrenmesi (ML) ve yapay zekâ (AI) bu kadar çok ilgi ve popülerlik kazanıyor. Doğal dil işleme, AI’daki gelişmeleri takip ediyor. Bu iki terim fütüristik robotları çağrıştırsa da, doğal dil işlemenin halihazırda gündelik yaşamda basit uygulamaları var.
NLP, insan dilini yazıldığı ve/veya konuşulduğu şekliyle anlamaya odaklanan bir AI bileşenidir. Bunu yapmak için özel bilgisayar programları geliştirilir; tipik bir bilgisayarın, çok kesin, belirgin, yapılandırılmış ve yoruma kapalı bir programlama dilinde iletilen talimatlara ihtiyacı vardır. Ne yazık ki doğal insan dili kesin değildir, çok anlamlıdır ve kafa karıştırıcı olabilir. Bir programın kelimelerin anlamını kavrayabilmesi için, anlamı ve yapıyı analiz ederek kelimeleri anlaşılır kılan, belirli göndermeleri tanıyan ve ardından dili üreten algoritmaların kullanılması gerekir.
Doğal Dil İşlemenin (NLP) Farklı Teknikleri Nelerdir?
NLP algoritmaları, dilbilgisi kurallarına dayanarak cümlelerin anlamını değerlendirmek için çeşitli sözdizimsel ve anlamsal analizler yapar. Bunu şu yollarla gerçekleştirirler:
- Kelimeleri ve kelime gruplarını bölümlere ayırma ya da tüm cümlelerin dilbilgisini analiz etme.
- Metni gerçek zamanlı karşılaştırma yaparak anlam ve bağlamı belirlemek için mevcut veri tabanlarıyla kıyaslama.
- Makine öğrenmesi ve derin öğrenme tekniklerini kullanma yoluyla büyük miktarda etiketli veride ilgili korelasyonları belirleme.
Yaygın NLP teknikleri şunları içerir:
- Adlandırılmış Varlık Tanıma (NER): Kişi, yer, kuruluş adlarını vb. tespit eder.
- Duygu Analizi: Metnin olumlu, olumsuz veya nötr bir duygu taşıyıp taşımadığını belirler.
- Metin Özetleme: Uzun metinlerin özlü özetlerini üretir.
- Boyut/Özellik Çıkarma: Bir metin parçasındaki temel yönleri veya niyeti belirler.
- Konu Modellemesi: Büyük metin veri kümelerinde gizli temaları ve yapıları keşfeder.
Doğal Dil İşleme Neler Yapabilir?
NLP çok çeşitli uygulamalarda kullanılır. İşte en yaygın alanlardan bazıları.
Mesaj filtreleri
Mesaj filtreleri, çevrimiçi doğal dil işlemenin ilk temel uygulamalarından biridir. Bu teknik, başlangıçta belirli kelime veya ifadelere dayanarak istenmeyen iletileri tanımlayan spam filtrelerini oluşturmak için kullanıldı. Doğal dil işleme geliştikçe filtreler de gelişti.
Bu tekniğin en yaygın ve güncel uygulamalarından biri Gmail’in e-postaları sınıflandırmasıdır. Sistem, bir e-postayı içeriğine göre üç kategoriye (Ana, Sosyal Ağlar veya Tanıtımlar) ayırabilir. Bu sayede Gmail kullanıcıları gelen kutularını daha iyi yöneterek önemli e-postaları hızlıca görüp yanıtlayabilir.
Akıllı asistanlar
Apple Siri ve Amazon Alexa gibi akıllı asistanlar, konuşma kalıplarını tanımlamak, anlam çıkarmak ve faydalı yanıtlar önermek için ses tanımayı kullanır. Bugün, Siri’ye bir soru sormanın ve onun bizi anlayıp ilgili bir şekilde yanıt vermesinin normal gelmesi şaşırtıcı değildir. Benzer şekilde, termostat, ışıklar, araba vb. üzerinden Siri veya Alexa ile her gün etkileşim kurmaya alışıyoruz.
Artık Alexa ve Siri gibi asistanların, günlük yaşamımızda bize yardımcı olmak ve bazı görevleri yerine getirmek (ör. sipariş verme) için bağlamsal ipuçlarını yakalamasını bekliyoruz. Hatta esprili yanıtlarından ya da kendileri hakkında anlattıklarından keyif alıyoruz. Bizi tanıdıkça etkileşimlerimiz daha kişisel hale geliyor. New York Times’taki Why We May Soon Be Living in Alexa's World başlıklı makaleye göre, "Büyük bir değişim geliyor. Alexa büyük olasılıkla bu on yılın üçüncü büyük tüketici platformu olacak."
Arama sonuçları
Arama motorları, benzer arama davranışlarına veya kullanıcı niyetine göre alakalı sonuçlar göstermek için doğal dil işleme kullanır. Böylece herkes, özel bir beceriye sahip olmadan ihtiyacı olanı bulabilir.
Örneğin, bir sorgu yazmaya başladığınızda Google size popüler ilgili aramaları gösterir; ancak bunun ötesinde, sorgunuzun genel anlamını da, birebir ifadenin ötesinde, tanıyabilir. Google’a bir uçuş numarası yazarsanız durumunu görürsünüz. Bir hisse senedi kodu yazarsanız hisse raporu gelir. Bir matematik denklemi yazarsanız bir hesap makinesi görürsünüz. Aramanız çeşitli sonuçlar sunabilir; çünkü kullanılan doğal dil işleme tekniği, muğlak bir sorguyu belirli bir varlıkla ilişkilendirerek faydalı sonuçlar sunar.
Sezgisel yazma
Otomatik düzeltme, otomatik tamamlama ve sezgisel giriş gibi özellikler bugün akıllı telefonlarımızda o kadar yaygın ki onları kanıksıyoruz. Otomatik yazma ve sezgisel yazma, yazılanlara dayanarak bir kelimenin veya ifadenin sonunu önermeleri bakımından arama motorlarına benzer. Otomatik düzeltme bazen iletinizin genel anlamını iyileştirmek için bazı kelimeleri bile değiştirir.
Ayrıca bu işlevler sizinle birlikte evrilir. Örneğin sezgisel yazma, zamanla size özgü deyişlere uyum sağlar. Bu da bazen tamamen sezgisel girişe dayalı cümlelerle komik mesajlaşmalara yol açar. Sonuç şaşırtıcı derecede kişisel ve bilgilendirici olabilir ve zaman zaman medyanın ilgisini dahi çekmiştir.
Çeviri
Yabancı dil ödeviniz dil bilgisi hatalarıyla doluysa, öğretmeniniz muhtemelen doğal dil işleme teknolojisi kullandığınızı anlar. Ne yazık ki, cümle yapıları farklı olduğu için birçok dil doğrudan çeviriye uygun değildir; bu da çeviri hizmetleri tarafından bazen göz ardı edilmiştir. Ancak bu sistemler uzun yol kat etti.
Doğal dil işleme sayesinde çevrimiçi çeviri araçları daha doğru ve dilbilgisel olarak tutarlı çeviriler sunar. Bu nedenle, dilinizi konuşmayan biriyle iletişim kurmanız gerektiğinde son derece kullanışlıdırlar. Yabancı bir metni çevirmeniz gerekiyorsa, bu araçlar girilen metnin dilini bile tanıyabilir.
Dijital telefon aramaları
Bazı şirketleri aradığınızda büyük olasılıkla "Bu görüşme eğitim amaçlı kaydedilebilir" anonsunu duymuşsunuzdur. Bu kayıtlar eğitim amacıyla (ör. memnuniyetsiz bir müşteriyle yapılan görüşmenin analiz edilmesi) kullanılabilse de, genellikle doğal dil işleme sisteminin öğrenmesi ve gelişmesi için bir veri tabanında saklanır. Otomasyon sistemleri, müşteri aramalarını bir temsilciye veya çevrimiçi sohbet botuna yönlendirir; bu da taleplerine yanıt verecek ilgili bilgileri sağlar. Bu doğal dil işleme tekniği, büyük telefon operatörleri de dâhil olmak üzere birçok şirket tarafından hâlihazırda kullanılmaktadır.
Dijital telefon araması teknolojisi ayrıca bir bilgisayarın insan sesini taklit etmesine olanak tanır. Böylece kuaförden ya da servisten randevu almak için otomatik telefon aramaları planlamak mümkündür.
Veri analizi
Doğal dil yetenekleri artık analitik iş akışlarına entegre ediliyor. Nitekim giderek daha fazla BI sağlayıcısı, veri görselleştirmeleri için doğal dil arayüzü sunuyor. Daha akıllı görsel kodlama, örneğin verinin anlamsal özelliklerine bağlı olarak belirli bir görev için en iyi görselleştirmenin önerilmesini sağlar. Herkes, anahtar kelimeleri yorumlanan ve anlaşılan doğal dil ifadeleri veya soru kırıntıları kullanarak verileri keşfedebilir.
Dili kullanarak veri keşfi yapmak, veriyi daha erişilebilir kılar ve analitiği, genellikle BT analistleri ve geliştiricilerinden oluşan dar çevrenin ötesinde tüm kuruluşa açar.
Metin analitiği
Metin analitiği, çeşitli dilbilimsel, istatistiksel ve makine öğrenmesi tekniklerini kullanarak yapılandırılmamış metin verilerini analiz edilebilir verilere dönüştürür.
Duygu analizi, markalar için (özellikle büyük bir müşteri tabanında) göz korkutucu bir meydan okuma gibi görünebilir. Ancak, doğal dil işleme tabanlı bir araç genellikle müşteri etkileşimlerine (örneğin sosyal medyadaki yorumlar veya incelemeler ya da marka adının anılmaları) bakarak bunların ne olduğuna dair bir resim çıkarabilir. Ardından markalar, bu etkileşimleri analiz ederek pazarlama kampanyalarının etkinliğini değerlendirebilir veya müşteri sorunlarının seyrini izleyebilir. Böylece nasıl yanıt vereceklerine ya da hizmetlerini nasıl iyileştirip daha iyi bir deneyim sunacaklarına karar verebilirler.
Doğal dil işleme ayrıca, anahtar kelimeleri çıkararak ve yapılandırılmamış metin verilerindeki örüntüleri veya eğilimleri tanımlayarak metin analitiğine katkı sağlar. Başlıca NLP modelleri nelerdir?
NLP bir süredir var olsa da, özellikle önde gelen teknoloji şirketleri tarafından geliştirilen dönüştürücü tabanlı modeller ve büyük dil modellerinin yükselişiyle son dönemdeki ilerlemeler dikkat çekicidir. En gelişmiş modellerden bazıları şunlardır:
-
Dönüştürücü tabanlı modeller:
- BERT ve ALBERT (Google AI)
- RoBERTa (Meta/Facebook), StructBERT (Alibaba), DeBERTa (Microsoft), DistilBERT (Hugging Face)
- XLNet (Carnegie Mellon University), UniLM (Microsoft), Reformer (Google)
-
Büyük dil modelleri (LLM’ler):
- GPT-3, GPT-4 ve GPT-4 Turbo (OpenAI)
- Claude 3 (Anthropic)
- PaLM 2 ve Gemini 1.5 (Google DeepMind)
- LLaMA 2 (Meta)
- Mistral ve Mixtral (Mistral AI)
Bu eğitimde, BERT’in NLP için nasıl kullanıldığına daha yakından bakacağız.
Google BERT Nasıl Çalışır?
"Bidirectional Encoder Representations from Transformers" ifadesinin kısaltması olan BERT, Google AI tarafından yayımlanan bir modeldir. Bu yenilikçi teknik, doğal dil işlemeye (NLP) dayanır.
Algoritma, internet kullanıcılarının yaptığı sorguları anlamak için özünde makine öğrenmesi ve yapay zekâyı kullanır. Böylece, onların arama niyetlerini, yani kullandıkları doğal dili yorumlamaya çalışır.
Bu anlamda BERT, Google Home gibi kişisel sesli asistanlarla ilişkilidir. Araç, artık kullanıcının girdiği her bir kelimeye değil, tüm ifadeye ve içinde bulunduğu bağlama odaklanır. Bu, sonuçları iyileştirmek için yapılır. Kullanılan ortamdan bağımsız olarak karmaşık aramaları ele almakta daha etkilidir.
Daha somut olarak BERT, arama motorunun şunları yapmasını sağlar:
- Kelimelerin bağlamsal anlamını dikkate alarak ifadelerdeki belirsizlikleri gidermek;
- Özellikle uzun paragraflarda zamirlerin neyi karşıladığını anlamak;
- Eşadlılık (homonimi) sorunlarını çözmek;
- Takip eden cümleyi anlamak;
- Yanıtları doğrudan SERP’te (Arama Motoru Sonuç Sayfası) vermek...
Diğer uygulamalarda BERT şu konularda kullanılır:
- Soru-cevap;
- Görüş/duygu analizi;
- Cümle eşleştirme ve doğal dil çıkarımı;
- Saldırgan tweet’lerin tespiti.
Dolayısıyla, Google BERT’in etkisi, doğal bir şekilde yazılan en uzun sorguların yaklaşık %10’u üzerinde olacaktır.
Doğal dil işleme, kullanıcının yazdığı kelimelerin analizine odaklanır. Anahtar kelime, ondan önce ve sonra gelen kelimeler, sorguyu daha iyi anlamak için incelenir. Bu, "transformer"ların benimsediği analiz ilkesidir.
Algoritma, özellikle edatların anlamı etkilediği uzun kuyruklu aramalarda etkilidir. Öte yandan, Google tarafından zaten iyi anlaşılan jenerik sorgularda etkisi daha azdır. Bu nedenle diğer anlama araçları işlevsel kalır.
Sorgu düzensiz ya da kesin biçimde oluşturulmuş olsun, arama motoru yine de onu işleyebilir. Ancak daha yüksek verim için daha uygun terimler kullanmak daha iyidir.
Bağlam, BERT’in yaptığı analizde önemli bir rol oynar. Makine çevirisi ve dil modellemesi optimize edilir. Nitelikli metin üretiminde de önemli iyileşmeler gözlemlenir.
Bu modeli kullanmak için önce gerekli kütüphane ve paketleri içe aktaralım:

Ardından Large Movie Review Dataset’ini indirelim ve çıkartalım, sonra da dizin yapısını inceleyelim.

Etiketli bir tf.data.Dataset oluşturmak için aşağıda gösterildiği gibi text_dataset_from_directory kullanacağız. Sonra, validation_split argümanını kullanarak eğitim verilerini %80:%20 oranında bölüp bir doğrulama kümesi oluşturacağız.

Doğrulama ve eğitim bölümlerinin çakışmaması için validation_split kullanırken bir rastgele tohum (seed) belirtmek önemlidir.
Bir sonraki adım, TensorFlow Hub’dan hangi BERT modelini yükleyip ince ayar yapmak istediğinizi seçmek olacak; ince ayarlı modelinizi bir araya getirmek için hub.KerasLayer’ı kullanabilirsiniz. Ardından, ön işleme modelini biraz metin üzerinde deneyip çıktıyı görelim.

Sonraki adımda, ön işleme modeli, bir önceki adımlarda seçtiğiniz BERT modeli, bir yoğun katman (dense) ve bir Dropout katmanından oluşan basit bir model kuracaksınız.

Şimdi, modelinizin ön işleme modelinin çıktısıyla çalışıp çalışmadığını kontrol edebilirsiniz.

Burada bir kayıp fonksiyonu gerekir; ikili sınıflandırma problemiyle uğraştığımız için losses.BinaryCrossentropy kayıp fonksiyonunu seçeceğiz.

İnce ayar için, BERT’in başlangıçta eğitildiği aynı optimize ediciyi kullanalım: "Adaptive Moments" (Adam). Bu optimize edici, tahmin kaybını en aza indirir ve ağırlık bozunumu (weight decay) ile düzenlileştirme yapar; bu yaklaşıma AdamW da denir.

Önceden oluşturduğunuz classifier_model’i kullanarak modeli kayıp, metrik ve optimize edici ile derleyebilirsiniz.

Seçtiğiniz BERT modelinin karmaşıklığına bağlı olarak modelinizin eğitimi daha az ya da daha çok zaman alabilir.

Şimdi, modelimizin performansını kayıp ve doğruluk değerlerini kontrol ederek değerlendireceğiz.

Eğitim ve doğrulama kümeleri için kayıp ve doğruluğu çizdirmek isterseniz history nesnesini kullanabilirsiniz:

Yukarıdaki adımların tümü bu notebook’ta ayrıntılandırılmıştır. Bu adımları uygulayabilir ve listedeki her BERT modeli için çıktıları görmek üzere kodu çalıştırabilirsiniz.
Sonuç
Doğal dil işleme dijital dünyada zaten yerini almış durumda. Şirketler ve sektörler faydalarını keşfedip benimsedikçe uygulamaları katlanarak artacaktır. İnsan müdahalesi daha karmaşık iletişim sorunları için hayati olmaya devam ederken, doğal dil işleme günlük müttefikimiz olacak; önce küçük görevleri yönetip otomatikleştirecek, teknoloji ilerledikçe giderek daha karmaşıklarını da üstlenecektir.
NLP’nin nasıl çalıştığını ve nasıl kullanılacağını öğrenmek için Python ile NLP için Derin Öğrenme kursumuza göz atın.
SSS
BERT, GPT modellerinden nasıl farklıdır?
BERT, çift yönlü dil anlayışı için tasarlanmıştır; yani bir cümledeki bir kelimenin tam bağlamını dikkate alır. Buna karşılık, GPT modelleri (ör. GPT-4) otoregresiftir; kelimeleri soldan sağa tahmin eder ve metin üretimi için optimize edilmiştir.
BERT’in bazı yaygın kullanım alanları nelerdir?
BERT yaygın olarak şu amaçlarla kullanılır:
- Duygu analizi
- Adlandırılmış varlık tanıma (NER)
- Soru yanıtlama (ör. Google Arama’yı destekleme)
- Metin özetleme
- Dil çevirisi
BERT’i ince ayar yapmak için güçlü bir GPU’ya ihtiyacım var mı?
Evet, BERT’i ince ayar yapmak genellikle derin öğrenme modellerinin eğitimindeki hesaplama yoğunluğu nedeniyle bir GPU gerektirir. Ancak, önceden eğitilmiş BERT sürümleri birçok NLP görevi için asgari hesaplama kaynağıyla kullanılabilir.
BERT’e alternatif olarak hangi modeller vardır?
BERT’i temel alan veya onunla rekabet eden çeşitli modeller şunlardır:
- ALBERT (Google AI): BERT’in daha hafif ve verimli bir sürümü
- RoBERTa (Meta): Daha fazla eğitim verisiyle optimize edilmiş bir BERT sürümü
- DistilBERT (Hugging Face): Daha küçük ve daha hızlı bir BERT sürümü
- GPT modelleri (OpenAI): Metin üretimi için optimize edilmiş otoregresif modeller
Kendi NLP projelerimde BERT’i nasıl kullanmaya başlayabilirim?
BERT ile başlamanız için:
- Hugging Face’in Transformers kütüphanesini kullanarak önceden eğitilmiş BERT modellerini yükleyin.
- BERT’i veri kümeniz üzerinde PyTorch veya TensorFlow ile ince ayar yapın.
- TensorFlow Hub modelleri gibi Google’ın BERT tabanlı API’leri ile deney yapın.
