Doğal Dil İşleme Nedir?
DOĞAL DİL İŞLEME NEDİR?
NLP (Natural Language Processing), Türkçe ismiyle Doğal Dil İşleme (DDİ), yapay zekanın altında yer alan ve amacı insanların ürettiği doğal dilin işlenebilmesi, anlaşılabilmesi, analiz edilerek çıktılara dönüştürülebilmesi olan araştırma alanıdır.
Günlük hayatta sıkça başvurduğumuz akıllı asistanlar, dil çeviri uygulamaları, çağrı merkezlerinde kullanılan IVR (sesli yanıt ) uygulamaları arkasında Doğal Dil İşleme teknolojilerini barındırmaktadır.
Bunlarla beraber en önemli kullanım alanlarını, Müşteri Memnuniyeti Analizi, Chatbot Analizi, Sosyal Medya Analizi, Anlamsal Arama gibi çalışmalar oluşturmaktadır.
DİL BİLİMİNİN ALANLARI
Bir doğal dile ait tüm çalışmalar dil bilimince 6 başlıkta değerlendirilmektedir.

Fonetik (Phonetics)
İnsanların dili konuşurken ne gibi sesler kullandıkları, bu seslerde ne gibi örüntüler bulunduğu ile ilgilenen alan

Fonoloji (Phonology)
Dili meydana getiren ses birliktelikleri ile ilgilenen alan

Morfoloji (Morphology)
Dildeki kelimelerin yapılarını inceleyen, anlam ifade eden en küçük kısmından (kökünden) itibaren hangi eklerle ve hangi durumlarda nasıl anlamlar kazandığı ile ilgilenen alan

Söz Dizimi (Syntax)
Cümle yapıları ile, sözcük grupları veya cümleler oluşurken kelimelerin hangi dizilimlerle bir araya gelebileceği ile ilgilenen alan

Anlam Bilim (Semantics)
Cümleler, cümle ögeleri, kelimeler, hatta kelime kökleri/eklerinin ve bunların bir araya geliş durumlarının anlamı nasıl etkilediği ile ilgilenen alan

Edim Bilim (Pragmatics)
Niyetin ve bağlamın ifadenin anlamı üzerindeki etkisi ve ifadelerin dilin kullanımı sırasında kazandığı anlamlar ile ilgilenen alan

DOĞAL DİL İŞLEME (NLP) ADIMLARI
Doğal dil işleme nedir sorusunun cevabını öğrendikten sonra doğal dil işleme adımlarından da bahsetmek önemli olacaktır. Doğal dil işlenirken günlük kullanımda olan bir ifade veya metnin sistematik kurallı bir metne çevrilmesi için pek çok aşamadan geçirilmesi gerekmektedir.
KONUŞMAYI YAZIYA DÖNÜŞTÜRME (SPEECH-To-TEXT)
Ses kaydı olarak elde edilen bir ifadenin yazılı biçime döndürülmesidir. Yazıya dönüştürme algoritmalarında NLP alanının desteği sinyal işleme algoritmalarının tespit ettiği sesleri dil modeli üzerinde işleyerek en seslerle oluşturulabilecek en olası kelime ve cümleleri oluşturmaktır. Konuşmayı yazıya dönüştürmede NLP kullanımına şu tarz durumlar örnek olarak verilebilir:
Yazıldığı şekilde okunmayan dillerde aynı seslerle telaffuz edilebilir kelimeler içinden cümle akışına göre en uygun anlamlı kelimenin seçilmesi,
Yazıldığı şekilde okunan dillerde algılanan sesler belirli bir kelimeye tekabül etmiyorsa veya bulunan kelime metnin anlamsal uyumunu bozuyorsa benzerlik algoritmalarından da destek alınarak en uygun olası kelimenin seçilmesi,
Konuşmanın kalitesinin kelimelerin çıkışlarını sinyal işleme algoritmalarıyla ayırt etmeye yetmediği durumlarda, harfler dizisinin en uygun noktalardan bölünerek sıralı kelimeler haline getirilmesi
DİL TESPİTİ (LANGUAGE DETECTION)
Bir metnin hangi dilde yazılmış olduğunun otomatik tespit edilmesidir.
Bu işlemin yapılabilmesi için yaygın kullanılan çeşitli yöntemlerden bazıları alttaki gibidir:
Dil biliminin çıkarımsadığı dil kuralları kullanılarak metnin hangi dil olduğunun kural tabanlı bir sistemle belirlenmesi
Bir dile ait çok sayıda veriden oluşan bir veritabanında ngram analizi yapılarak test edilecek veride geçen kelime ve kelime gruplarının bu dilde kullanılanlarla uyumunun ölçülerek skorlanması
Yapay zeka algoritmaları yardımıyla her dil bir sınıf olacak şekilde eğitilen modellerin kullanımı
Ngram analizi, bir metin içinde art arda gelen kelimeler veya harfer dizisinin sıklıklarını dikkate alarak genellikle metin içinde hangi örüntülerin sıklıkla geçtiğini belirlemek için yapılan analizlerde kullanılır. Ngramlar aynı zamanda kelime dizilimlerinin önemli olduğu bazı NLP görevlerinde terim olarak kelimeler yerine kullanılır. N-gram kelimesindeki N kelime sayısını ifade eder. Mesela 1gram analizinde ‘bulaşık’ ve ‘makine’ kelimeleri ayrı ayrı dikkate alınırken 2gram analizinde ‘bulaşık makinesi’ ikilisinin ayrı bir anlamı ve kullanım alanı olduğu bilgi olarak eğitilecek modele otomatik olarak aktarılmış olur. Kullanım alanına bir örnek verecek olursak da 1gramlarla sadece terimin geçip geçmediğini dikkate alan bir duygu modeli eğitildiğinde ‘kötü değil’ ifadesi olumsuz olarak sınıflandırılacakken 2gramlar bu eğitimde terim olarak kullanılsa bu ifadenin bütün olarak olumlu anlamı olduğu rahatça model tarafından anlaşılabilecektir.
KARAKTER DÜZELTME (DEASCIFICATION)
Türkçe karakter kullanılmadan yazılmış ifadelerdeki bu karakterlerin doğru Türkçe versiyonları ile değiştirilmesidir. Bu işlem yapılırken Türkçe’nin yapısal özelliklerinden faydalanılmaktadır. Dilimizde bulunan en temelleri küçük ünlü uyumu, benzeşme vb. Olan yapısal kurallara uyum kontrol edilerek karakterlerde düzenleme yapılması en genel yöntemdir. Bu kurallara ek olarak metnin akışının da dikkate alınmasıyla yazım düzeltme gibi daha genel kullanımlı algoritmalar ortaya çıkmaktadır.
YAZIM DÜZELTME (SPELLING CORRECTION)
Yazım hatalarının otomatik olarak tespit edilip düzeltilmesidir. Bu düzenlemelerde genellikle benzerlik algoritmaları ve dil modelleri kullanılmaktadır.
Dil modelleri (Language Models) bir dilin yapay bir görev ile derin öğrenme methodlarınca eğitilerek dil içindeki kelime, kelime grubu ve cümlelerin akışının makineye öğretilmesiyle oluşan hazır modellerdir. Bu modeller genellikle bir sonraki kelimenin veya bir sonraki cümlenin tahmin edilmesi veya cümle içinde maskelenmiş verilerin tahmin edilmesi gibi görevler ile eğitilir. Bu görevlerle yapılan eğitimlerde sistem görevi başarıyla tamamlamak için tüm kelime ve cümleler arasındaki bağlantıları kendince anlamış olmalıdır. Bu yapı oluşturulduktan sonra pek çok NLP görevinde yardımcı olarak rol alabilir.”
Yazım düzeltme algoritmalarında da dil modelleri o zamana kadar gelen kelimelere göre bir sonraki muhtemel kelime için öneriler oluşturabilir. Ve bu öneriler içinden benzerlik algoritmasıyla hatalı yazıma en benzer olan öneri kullanılabilir.
CÜMLE BÖLÜTLEME (SENTENCE SEGMENTATION)
Paragraf veya daha büyük bir bütün olarak bulunan metni cümlelere veya kullanım alanına göre fikir belirten daha küçük bölgelere (opinion unit) ayırma işidir.
Bu konuda yapılan çalışmalar başlangıçta kural tabanlı olarak, noktalama ve büyük harf kullanımı, söz dizimi yapısına uyum gibi analizlerle çözümler üretmiştir. Fakat bu yöntemler özellikle günümüzde git gide artan kuralsız sosyal medya, müşteri yorumu gibi verilerde yüksek başarı sağlayamamıştır. Bu konuda yapılan daha güncel çalışmalar daha çok güdümlü makine öğrenmesi yöntemleri ve dil modelleri ile cümleyi anlamsal olarak bölmeye önem veren derin öğrenme modelleri ile yapılmaktadır.
KÜÇÜK HARFE DÖNÜŞTÜRME (LOWERCASE CONVERTER)
Büyük harf kullanımının önemli olmadığı durumlarda kelimelerin ortaklaşmasını daha rahat yakalayabilmek için tüm harfleri küçük harfe çevirir. En basit işlemlerden olan bu adımda bile dil parametresine dikkat edilmezse beklenmedik hatalar çıkabilir.
<p> Ör: Irmak -> İngilizce küçük harfe çevirme -> irmak
-> Türkçe küçük harfe çevirme -> ırmak
TERİMLERE AYIRMA (TOKENIZATION)
Metni kullanım amacına göre işlenebilir birimlere böler. Bu bölümler bazen kelimeler, bazen cümleler bazen de paragraflar veya tam ters yönde heceler vs olabilir. Kullanım alanlarının çoğunda anlam kelimelerin kullanımı ile belirlendiği için kelimeler terim olarak kullanılmaktadır. Kelimelere ayırma işlemi yapılırken yine ilgili göreve göre bileşik kelimelerin ayrılması, alfanumerik olmayan karakterlerin dahil edilmesi gibi durumlarda göreve özel karar verilmesi gerekebilir.
GEREKSİZ KELİME AYIKLAMA (STOPWORDS REMOVAL)
Yapılacak analizlerde bir katkı sağlamayan ve çok sık geçtiği için analizlerde öne çıkan kelimelerin ayıklanması işlemidir. (ör: ve, ama, bir, şey…)
Bu kelimelerin ayıklanması özellikle veri içinde kelime bazlı bilgi çıkartılması gerektiği durumlarda önemlidir. Gereksiz kelimelerin ayıklanmadan analizlere dahil edilmesi durumunda Ngram analizlerinde özellikle gereksiz kelimelerin araya girmesinden dolayı Ngramların sıklıkları doğru bir şekilde ölçülemeyebilir. Veya kelimelerin sadece varlıkları ile öğrenen modellerde konu ile ilgisi olmayan gereksiz kelimelerin metne eklenmesi atanacak sınıfı beklenmedik şekilde değiştirebilir.
İSTENMEYEN ÖRÜNTÜ AYIKLAMA (UNWANTED PATTERN)
Metnin kaynağına veya içeriğine bağlı olarak ortaya çıkıp metinlere anlamsal katkı sağlamayan örüntülerin ayıklanması işlemidir. (web sitesi linkleri, twitter etiketleri, hex karakterler vb.)
Özellikle internet sitelerinden otomatik olarak çekilen verilerde istenmeyen karakterler sıklıkla karşılaşılan bir durumdur. Bu verilerin ayıklanması sürecinde genellikle belirli örüntüleri yakalayan kurallar oluşturulmakla beraber terimlerin sıklıkları ve anlamasal analizleri yapılarak bu örüntülerin tespitinin de otomatikleştirildiği algoritmalar kullanımdadır.
NORMALİZASYON (TEXT NORMALIZATION)
Metin içinde aynı anlamı paylaşan fakat cümle içindeki durumuna bağlı olarak farklı çekim veya yapım eki almış kelimelerin kullanım alanına göre ortaklaştırılmasını sağlayan adımlardır. Burada verilerin ortaklaştırılması, veri seyrekliği (data sparsity) nedeniyle algoritmaların veriyi yeterince gruplayıp anlamlandıramadığı durumlarda uygulandığında oldukça faydalı olmaktadır. Eğer kelimelerin cümle içinde kullanımı ek bir bilgi kaynağı değilse normalizasyon adımlarının uygulanması mevcut bir problem olmasa bile veri kalitesini arttırarak ilgili görevdeki başarıyı da arttıracaktır.
Gövdeleme (Lemmatization) kelimeyi çekim eklerinden ayıklayarak en geniş köküne indirger. Yapım eklerini ayıklamayarak aynı kökten de olsa anlamsal farklılıkları olan kelimelerin ayırt edilebilirliklerini korumaktadır.”
Köke İndirgeme (Stemming) ise kelimeyi çekim ve yapım eklerinden tamamen ayıklayarak aynı anlamın en küçük köküne indirger.”
CÜMLE ÖGELERİNİ BELİRLEME (PART OF SPEECH TAGGING)
Cümle içindeki kelime veya kelime gruplarının cümlenin hangi öğesine hangi görevle bağlı olduğu bilgisi ile etiketlenmesidir. Bu işlem için dil içindeki söz dizimi kuralları kullanılabildiği dil modelleri veya kelime vektörlerinin yardımıyla eğitilen güdümlü öğrenme algoritmaları da sıklıkla bu işlem için kullanılmaktadır.
MORFOLOJİK ANALİZ (MORPHOLOGICAL ANALYSIS)
Kelimeleri tipine göre (isim, fiil, sıfat vb) sınıflandırarak cümledeki olası kullanım görevinin tespitine yardımcı olur. Bu bilgi özellikle varlık tanıma gibi kelimenin tipi ile yakından ilgili olan tasklarda çok önemlidir. Bu analiz için mevcut pek çok kural tabanlı sistem vardır. Bu sistemler dil üzerindeki söz dizimi kurallarına ek olarak dile ait sözlüklerden de faydalanarak kelimeleri gruplandırabilmektedir. Bu sistemlerin zayıf yanı ise kural tabanlı olarak olası anlamlardan hangisinin metne uygun olduğunun çözümlenememesidir. Bu çözümlemenin yapılabilmesi için genellikle morfolojik analiz algoritmaları kelime anlam çözümlemesi algoritmaları ile beraber çalıştırılır.
KELİME ANLAM ÇÖZÜMLEMESİ (WORD SENSE DISAMBIGUATION)
Metinde kullanılan kelimelerin olası anlamları arasında doğru anlamın seçilmesi işlemidir. Bu işlemin sağlıklı işletilebilmesi için kullanılacak algoritmada sağlam bir dil modeli bulunması önemlidir. Alternatif olarak söz dizimleri ile de kelime tipine göre seçim yapan algoritmalar bulunmakla beraber genel başarıları dil modeli kullanan sistemlere göre zayıf kalmaktadır.
Örnek: Yüz verdik tepemize çıktılar. Numaram beş yüz on. Sporcuyu daha hızlı yüzsün diye yüreklendirmeye çalıştılar.
Mesela yukarıdaki metinlerde yüz kelimesi farklı anlamlarda kullanılmıştır. Bu anlamların birbirinden ayrılması kelime anlam çözümlemesinin konusudur.
ÖZDEŞLİK ÇÖZÜMLEME (COREFERENCE RESOLUTION)
Bir metinde aynı varlığa gönderme yapan tüm ifadelerin belirlenmesi işlemidir.
Örnek: Ahmet Kerim’den kapıyı açmasını istedi. O da ayağa kalkıp kapıyı açtı.
Mesela yukarıdaki metinde “O” zamiri ile belirtilen kişinin Ahmet mi Kerim mi olduğu bilgisinin çıkarılması özdeşlik çözümlemenin konusudur.

DOĞAL DİL İŞLEME KULLANIM ALANLARI
Doğal dil işleme nedir? Doğal dil işleme adımları nelerdir? sorularının cevaplarından sonra sıra doğal dil işleme kullanım alanlarında. Doğal dil işleme çalışma hayatında ve günlük hayatta hepimizi ilgilendirebilen pek çok aktif kullanım alanına sahiptir.
(CLASSIFICATION)
(SENTIMENT ANALYSIS)
(MACHINE TRANSLATION)
(TEXT GENERATION)
(SIMILARITY)
(SUMMARIZATION)
(NAMED ENTITY RECOGNITION)
Örnek: Ali ve Ayşe 10 Ocak'ta Bursa'da Kiraz Eğlence Merkezi'nin organize ettiği kampa katılmak için 100 TL ödediler.İsim: Ali, Ayşe Tarih: 10 Ocak Lokasyon: Bursa Organizasyon : Kiraz Eğlence Merkezi Para Birimi: 100 TL
(INTENT RECOGNITION)
(QUESTION ANSWERING)