Doğal Dil İşleme (NLP) Nedir? Kullanım Alanları Nelerdir? - Artiwise

Doğal Dil İşleme Nedir?

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ş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 SEGMENTTION, SENTENCE BOUNDARY DETECTION)

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.

Ö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 REMOVAL)

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.
Previous
Next

DOĞAL DİL İŞLEME KULLANIM ALANLARI

Doğal dil işleme çalışma hayatında ve günlük hayatta hepimizi ilgilendirebilen pek çok aktif kullanım alanına sahiptir.

SINIFLANDIRMA

(CLASSIFICATION)

Metinlerin belirli konulara göre gruplanması için yapılan çalışmaların tamamıdır. Güdümlü (supervised) sınıflandırma yöntemlerinde gruplar önceden belirlenir ve her gruba ait belirli sayıda veri kümesi elle işaretlenir, ardından bu eğitim verisi ile model eğitilir. Güdümsüz (unsupervised) yöntemlerde ise istenen grup sayısı verilerek ilgili algoritmanın verileri kendi çıkarımlarına göre en uygun gruplara ayırması beklenir. Sınıflandırma çalışmaları pek çok alana uygulanabilir olduğu için NLP ve diğer veri bilimi alanlarında en sık kullanılan çalışmadır.
DUYGU ANALİZİ

(SENTIMENT ANALYSIS)

Metinlerin ifade ettikleri duyguya göre sınıflandırılması işlemidir. Duygular pozitif, negatif, nötr gibi 3 gruba ayrılabileceği gibi, kullanım alanına göre sevinç, üzüntü, öfke, hayal kırıklığı vb. gibi alternatif gruplara da ayrılabilir. Dil modelinin dili yeterince anlamamasından veya dil modelinin kullanılmamasından kaynaklı olarak ironiler, değillemeler (iyi değil, yok yok, kötü sayılmaz) gibi insan gözüyle rahat anlaşılan duygu durumlarının algoritma tarafından anlaşılamaması gibi durumlar klasik duygu analizi çalışmalarında en sık karşılaşılan problemlerdir. Duygu analizi diyaloglarda yapıldığı durumlarda ise duygu değişimlerinin tespiti, karşı tarafın konuşmasının bir sonraki konuşma üzerinde yarattığı duygusal etkinin analizi mevcut algoritmaların en zayıf yanıdır.
MAKİNE ÇEVİRİSİ

(MACHINE TRANSLATION)

Bir dilde yazılmış metnin başka bir dile bilgisayar algoritmaları ile çevrilmesidir. Makine çevirisi algoritmalarında aralarında çeviri yapılacak iki dili ve iki dil arasındaki ilişkileri sistemin anlaması gerekmektedir. Bu durum sayesinde makine çevirisi için eğitilen modeller dil modeli olarak da kullanılabilmektedir. Makine çevirisi modellerinin eğitimi için iki veya daha fazla dilde aynı metnin çevirilerinden oluşan paralel veri setleri kullanılır.
YAPAY METİN ÜRETME

(TEXT GENERATION)

Bir konu üzerine bulunan mevcut verilerden çıkarımlar yaparak makinenin aynı konu üzerine daha önce görülmemiş metinler üretmesidir. Bu üretim işlemi yapılırken verilerin kullanılacağı görevde sorun yaratacak yanlış bilgi içermiyor olması, doğal dil yapısının doğru kurulması ve üretilen verinin birebir kopya olmaması en önemli noktalardır. Yapay metin üretme, NLP görevleri için yeterli sayıda eğitim verisi bulunmadığı durumlarda veri sayısını arttırmak için sıklıkla kullanılan bir yöntemdir.
BENZERLİK

(SIMILARITY)

Arama motorları (search engines) başta olmak üzere pek çok alanda kullanımı bulunan benzerlik analizi birden fazla metnin benzerlik oranlarını ölçerek en alakalı metinleri bulmayı veya metinleri benzerliklerine göre gruplandırmayı sağlar. Benzerlik algoritmaları aynı zamanda daha mikro düzeyde yazım hatalarının düzeltilmesi gibi temel görevlerde de kullanılmaktadır. Bu tarz karakter bazlı benzerlik algoritmalarında genellikle hatalı yazlmış bir kelimenin sözlükte bulunan adaylardan hangi kelimeye en çok benzediği, içerdiği harflere harf ekleme, çıkarma veya değiştirme işlemleri yapıldığında en az kaç işlem ile diğer kelimeye ulaşılabildiği hesaplanarak ölçülür. Bu işlemlerde kelime uzunluğu, karakterin bilgisayar klavyesinde yanlışlıkla yakındaki bir harfle karıştırılmış olma ihtimali gibi durumlar da dikkate alınmaktadır. Birden fazla metni kıyaslayan algoritmalara geri dönersek istatistiksel çalışan benzerlik algoritmaları genellikle metin içinde geçen Ngramların örtüşme oranlarına göre bir benzerlik oranı hesaplar. Son zamanlarda kullanımı popüler olan kelime vektörleri bu alanda yapılan çalışmalarda terimsel olarak örtüşmese de anlamsal olarak örtüşen metinler için daha doğru benzerlik skorları hesaplanmasına katkı sağlamıştır.
ÖZETLEME

(SUMMARIZATION)

Bir metnin önemli noktaları belirtecek ve bilgi eksikliğine neden olmayacak şekilde kısaltılması işlemidir. Özetleme algoritmalarının bir kısmı paragraf içinde önemli cümlelerin aynen filtrelenmesi şeklinde, bir kısmı ise tüm paragrafın algoritma tarafından anlaşılıp dil modelleri desteği ile önemli kısımların yorumlanarak özgün bir veya birkaç cümle olarak kısaltılması şeklinde çalışmaktadır.
İSİMLENDİRİLMİŞ VARLIK TESPİTİ

(NAMED ENTITY RECOGNITION)

Metin içerisinde geçen varlıkların belirlenmesi işlemidir. Tespit edilmeye çalışılan varlıklar özel isimler, yer isimleri, organizasyon isimleri, tarihler, para birimleri gibi pek çok farklı gruptan seçilebilir.

Ö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

NİYET TESPİTİ

(INTENT RECOGNITION)

Chatbot'lar ve akıllı asistanlar başta olmak üzere pek çok alanda önemli işlev gören niyet tespiti bir metinde bulunan ifadenin pragmatik analizini yaparak metin sahibinin bu ifade ile ne ifade etmeye çalıştığını veya ne elde etmek istediğini ortaya çıkarır.
OTOMATİK YANITLAMA

(QUESTION ANSWERING)

Sorulan bir soruyu anlayıp ilgili cevabı konu ile ilgili sağlanmış dokümanlardan çıkartıp doğal dile çevirerek sunan bir sistemdir. Bu sistemlerde sorunun yanıtlanması işlemi şu aşamaların her birinin doğru bir şekilde tamamlanmasını gerektirir: Soruda öğrenilmek istenen bilginin anlaşılması Bu bilgiyi elde etmek için aranması gereken keywordlerin belirlenmesi Eldeki dokümanlarda arama algoritmasının çalıştırılması Arama sonucu elde edilen dokümandan istenilen bilgi ile ilgili bölgelerin belirlenmesi Belirlenen bu bölgelerdeki ifadelerin soruya cevap olacak şekilde doğal dil ifadesine dönüştürülmesi
Previous
Next