NLP

Doğal Dil İşleme NLP Nedir, Nerelerde Kullanılır?

Doğal dil işleme nedir? Doğal dil işleme nerelerde kullanılır? Doğal dil kulanımı.

Her gün kullandığımız çeviri programlarının, ses tanıma uygulamalarının, spam mail analizi yapan araçların hangi prensiplere göre çalıştığını hiç merak ettiniz mi? Peki otomatik metin düzeltme araçlarının, chatbot pencerelerinin nasıl bizi  bu kadar kolay bir şekilde anladığını öğrenmek ister miydiniz? Eğer cevabınız evet ise gelin yapay zekanın önemli bir alt dalı olan doğal dil işleme (NLP) alanını beraber inceleyelim.

 

Doğal dil işleme NLP nedir?

Doğal dil işleme (NLP), insan dilinin belirli yöntemler kullanılarak makinenin anlayabileceği bir yapıya dönüştürülmesidir. Bu dönüşüm aşamasının sonucunda istatistiksel işlemler yapabileceğimiz dönüştürülmüş veriler elde etmiş olacağız. Belirli yöntemler ve yaklaşımlar olsa bile bir Doğal dil işleme (NLP) projesi yapılırken metinlerdeki verilerin önem düzeyi projeden projeye değişecektir. Hangi verilerin hangi projelerde daha önemli olduğuna çalışmayı yapan veri bilimci karar verir.  Doğal dil işleme projelerindeki en temel amaçlar, işlem yoğunluğunun fazla olduğu durumlarda zamanı verimli kullanmak ve maliyeti azaltmaktır. Aynı zamanda pek çok şirketin kullandığı canlı destek pencereleri sayesinde müşteriler kesintisiz hizmet alabilmekte ve müşteri memnuniyeti artmaktadır. Doğal dil işleme projelerinin kullanım alanları tabii ki bu kadarla kısıtlı değildir. Her sektörde müşteri analizi yapma konusunda da nlp yaklaşımı sıklıkla kullanılmaktadır. Müşteri yorumları üzerinde yapılan analiz çalışmaları sayesinde müşteriye uygun ürünler kolaylıkla tespit edilebilmekte ve müşteri memnuniyetinde artış sağlanabilmektedir. Pek çok sektöre entegre olmuş olsa bile Doğal dil işleme halen gelişmekte ve üzerine çalışmalar yapılmakta olan bir alandır. Gelecekte de şu anda olduğu gibi pek çok yeni alanda iletişimi kolaylaştıracak ve işlerin hızlanmasına, kalitenin artmasına önemli katkılarda bulunacaktır. Doğal dil işleme prensiplerini beraber inceleyerek bu alanı daha da yakından tanıyalım.

 

Doğal dil işleme (NLP) nasıl çalışır?

Doğal dil işleme çalışmalarında genel prensip metin içinden anlamlı küçük parçalar oluşturmak ve bu sayede metni istatistiksel verilere dönüştürmektir.  Bu aşamadaki önemli noktalardan birisi metni küçük parçalara bölerken hangi adımların takip edileceğidir. Bir diğer önemli nokta ise proje için hangi verilerin anlamlı olduğunun tespit edilmesidir.  Verilerin anlamlılık düzeyi projeden proje belirli düzeyde farklılık gösterir. Bir proje için çok önemli olan veriler, ifadeler başka bir proje için anlam ifade etmeyebilir ve projenin kalitesini düşürebilir. Elde edilen özelliklerin kalitesi ve proje ile uyum düzeyi yapılan çalışmanın sonucunu doğrudan etkileyecektir.Bu sebeple projeye başlamadan önce, yapılacak proje için hangi verilerin önemli olduğu dikkatlice araştırılmalı ve bu doğrultuda sonraki aşamalara geçilmelidir. Proje için gereksinimleri karşılayan özellikler tespit edildikten sonra bu özellikler metin içinden elde edilir ve analiz sürecinde bu veriler kullanılır.

Doğal dil işleme projelerinin aşamalarını inceleyerek devam edelim.

1) Doğal dil işleme Projelerindeki Veri Ön İşleme Aşamaları Nelerdir?

Bu aşamada metin üzerinde bazı değişiklikler ve dönüşümler uygulanarak metnin daha kullanılabilir olması sağlanır. Bu aşamada website uzantıları, e-mail adresleri, noktalama işaretleri gibi verileri metinden uzaklaştırabiliriz. Proje için önemliyse metinde kaç tane mail adresi ya da kaç tane website adresi bulunduğu gibi bilgilerin sayısal olarak verisetine eklenmesi yararlı bir işlem olacaktır.

a) Yazım Hatalarını Düzeltme İşlemi

Metinlerdeki kelimeler yanlış yazılmış olabilir. Yazım hatalarının düzeltilmesi doğal dil işleme projeleri için önemlidir ve sonucu doğrudan etkilemektedir. Bazı projelerde yazım hataları ekstra önem kazanabilir. Örneğin spam mail tespiti yapılan bir çalışmada kaç kelimede yazım hatası olduğu önemli bir göstergedir. Kelimeleri düzeltmeden önce kaç kelimede hata olduğunu tespit edip proje için kullanmak yararlı olabilmektedir.

b) Tokenleştirme İşlemi Nedir?

Tokenleştirme, metni anlamlı parçalara bölme işlemidir. Örnek vermek gerekirse uzun bir metni kelimelere ayırma işlemi bir tokenleştirme işlemidir. Tokenleştirme işleminden sonra oluşan veriler kontrol edilmelidir. Bölme işlemi bazen istediğimiz gibi olmayabilir. Kontrol ederek olası hataları gözlemlemek proje sonucunu iyileştirecektir.

c) Etkisiz Kelimeleri (Stop Words) Uzaklaştırma İşlemi Nedir?

Anlam ya da duygu ifade etmeyen bazı kelimeler (şey, yani, ve, ya da gibi kelimeler) projede fayda sağlamıyor olabilir. Projeye başlarken bu kelimeleri uzaklaştırmak avantajlı olacaktır. Bu kelimeler uzaklaştırılmadan önce kelimelerin projeye katkı sağlayıp sağlamadığına dikkat edilmelidir. Metnin olumlu bir metin mi olumsuz bir metin mi olduğunu anlamaya çalıştığımız bir projede "ben", "o", "ya da", "gibi",  "falan" benzeri kelimeler projeye katkı sağlamayacaktır. Bunlar olumlu ya da olumsuz bir anlam içermemektedir. Kullanıcıların yaptığı yorumlardan kişilik analizi yaptığımız bir projede ise işler belli oranda değişecektir. Stopwords olsa bile belli kelimelerin kullanımı kişilik tahmin etme aşamasında işimizi kolaylaştıracaktır. Bu sebeple kelimeleri uzaklaştırmadan önce dikkatlice düşünmemiz gerekmektedir.

d) Lemmatization ve Stemming Yöntemleri Nedir?

Kelimeler cümle içinde genellikle türetilmiş şekilde bulunurlar. İstatistiksel veriler çıkarmaya çalıştığımızda bu kelimelerin kök haline ulaşmak isteyebiliriz. "Kitaplar" kelimesi ile "Kitabı" kelimesi farklı şekilde kullanılsa da aynı kelimeyi ifade ederler. Kelimeleri kök haline döndürme işlemi Lemmatization ve stemming işlemleridir. 

Bu aşamalardan sonra "Part-of-speech tagging" ismiyle de bilinen yöntem kullanılabilir. Bu yöntemde kelimelerin türlerinin (isim, sıfat, fill vb.) ne olduğu tespit edilir. Kelimeler türlerine göre sınıflandırılacağı gibi bazı projelerde cümlelerde hangi türden kaç tane kelimenin olduğunun ve bu kelimelerin cümledeki konumlarının tespit edilmesi de yeterli bir veri olacaktır. 

Verileri temizledik. Bazı istatistiksel değerler elde ettik. Peki bitti mi ön işleme aşaması? Henüz değil! Sırada doğal dil işleme projelerinde kullanılan bir kaç yöntemden bahsedeceğim.

⇒ Vektörleştirme Yöntemi Nedir?

Bu yöntem ile cümlelerdeki kelimeler sayılara dönüştürülür.  Bu işlem sonucunda kelime ve cümlelerin kesişiminden oluşan bir matris ortaya çıkar ve kelimeler makine için daha anlamlı yapılara dönüşürler. Matristeki veriler kelimelerin cümlelerde kaç kere geçtiğini gösteren değerlerdir. Bir örnekle bu yöntemi inceleyelim.Count Vectorizer ile ilgili örnek resim. Doğal dil işleme vektörleştime yöntemi

Kelimelerin hangi cümlelerde kaç kere geçtiğini içeren bu matris doğal dil işleme projelerinde sık kullanılan bir yöntemdir.

⇒ TF- IDF Yöntemi Nedir?

Bu yöntemde de bir matris ortaya çıkar. Count-vectorizer ile benzer bir yöntem olsa da temelde bir farklılık vardır. Bu yöntem kullanılırken kelimelerin sayısı değil sıklığı dikkate alınır. Önce formülü inceleyelim ve bir örnek ile formülü anlayalım.

 

tf-idf yöntemi formülü

Göründüğü kadar karışık değil. İncelemeye başlayalım.

Cümle1 = "Bugün eve geç geldi"

Cümle2 = "İşe geç geldi"

Cümle3 = "İşe yeni başladı"

"Geldi" kelimesinin ilk cümledeki tf-ıdf değerini bulalım.

Tf değeri, kelimenin cümlede geçme oranıdır. 4 kelimeden 1 i "geldi" kelimesi olduğu için tf = 0.25 tir. Idf değeri ise cümleler arası bir orandır. Toplam cümle sayısını, "geldi" kelimesinin geçtiği cümle sayısına bölerek işe başlıyoruz. 

Cümle sayısı = 3,

"Geldi" kelimesini içeren cümle sayısı = 2,

Oran = 3/2 dir.

Bu oranın logaritmasını aldığımızda ıdf değerini bulacağız. Bunun için hesap makinesini kullanmamız yeterli olacaktır. log(3/2) = 0.176 dır. Çok güzel! Tf ve ıdf değerlerini bulduk. Son aşama ise bu değerleri çarpmaktır. 

Td-Idf = 0.176 * 0.25 = 0.044 tür. Uzun bir işlem olsa da zor bir işlem değildir. Ayrıca bu değerleri tabii ki tek tek hesaplamayacağız. Bu işlemi çok kolay bir şekilde bir kaç satırlık kod ile yapabileceğiz. Bu yöntem sonucunda bir matris oluşacak ve kelimeler makine için anlamlı hale gelecektir.. 

⇒ Varlık İsmi Tanıma (Named Entity Recognition) Yöntemi Nedir?

Bu yöntem temelde kelimeleri sınıflandırmayı amaçlar. Kelimeleri "isim", "sıfat" şeklinde sınıflandırabileceğimizi incelemiştik. Benzer şekilde kelimeleri "yer bilgisi", "tarih bilgisi" gibi gruplara ayırarak projelerimizde kullanabiliriz. Bu yöntem nlp projelerinde "Named Entity Recognition" olarak bilinir.

⇒ Duygu (Sentiment) Analizi Nedir?

Bu yöntem de kelimeleri sınıflandırmayı amaçlar fakat kelimelere farklı bir açıdan yaklaşır. Kelimeleri pozitif, negatif ve nötr olmak üzere üç grupta sınıflandırır. Bu sınıflandırma da nlp projeleri için çok önemli bir yaklaşımdır.

Bu yaklaşımlara ek olarak başka yöntemler de projeye göre denenebilir. Buradaki temel amaç metindeki verileri anlamlı sayılara dönüştürmektir. Buradaki yöntemlerin uygun olanları kullanılarak oluşturulmuş yeni veri seti ile sonraki aşama olan modelleme aşamasına geçilebilir.

2) Doğal Dil İşleme Projelerinde Model Kurma Aşaması

Bu aşama elde ettiğimiz verileri yapay zekaya dönüştürme aşamasıdır. Bu aşamayla birlikte, oluşturduğumuz verileri kullanarak tahminler oluşturan, iletişime geçen modeller oluşturmaya çalışırız. Oluşturduğumuz modeli optimize ederek en iyi sonucu almaya çalışırız. Bu modelleri oluştururken makine öğrenmesi ve istatistiksel teknikleri beraber kullanırız. Bir sonraki gönderide örnek bir çalışma yaparak nlp projelerini daha detaylı bir şekilde inceleyeceğiz.

Doğal Dil İşleme Projeleri Nelerdir? 

1) Doğal Dil İşleme ile Metinlerin Sınıflandırılması

Metinlerin olumlu, olumsuz şeklinde sınıflandırılarak yapılan duygu durumu (sentiment) analizi, maillerin spam olarak sınıflandırılması, mesajı yazanın kadın mı erkek mi olduğunun tespiti doğal dil işleme projelerine örnektir.

2) Doğal Dil İşleme ile Chatbot Yapımı

Neredeyse kullandığımız tüm sitelerde bulunan mesaj kutuları, doğal dil işleme ile oluşturulan projelerin en önemli örnekleridir. Kullanıcıdan gelen mesajın konusunu, içeriğini ve bağlamını anlayarak uygun cevabı üretmeye çalışan bu teknoloji doğal dil işleme çalışmaları ile hızlı bir şekilde gelişmektedir.

3) Doğal Dil İşleme ile Metinlerin Değiştirilmesi, Kısaltılması, Uzatılması

Metinlerin benzerini oluşturan, metinleri özetleyen ya da metinleri uzatarak yazıya yeni cümleler ekleyen teknolojilerin tamamı doğal dil işleme projelerinin olumlu bir sonucudur. Chatbot teknolojisi ile benzer mantığa sahip bu projelerde doğal dil işleme ile metinler incelenir, metnin konusu ve içeriği anlaşılarak yeni metin oluşturulur.

4) Doğal Dil İşleme ile Metinden Sese (Text to Speech), Sesten Metine (Speech to Text) ve Dilden Dile Çeviri

Hepimizin sürekli kullandığı çeviri programları, televizyonda ve pek çok film platformunda gördüğümüz otomatik alt yazı çalışmaları, sesleri bir dilden diğer dile otomatik çeviren programlar Doğal dil işleme projelerinin hayatımızın ne kadar içinde olduğunun çok önemli bir göstergesidir. 

Her gün kullandığımız arama motorları, Chatgpt gibi daha pek çok yazılım ile doğal dil işleme hayatımızın pek çok alanında yer almaktadır. Bu önemli alanı öğrenmek ve takip etmek isterseniz aşağıdaki hesaplardan beni takibe alabilirsiniz.

Linkedin: www.linkedin.com/in/mustafabayhan/
Medium: medium.com/@bayhanmustafa

Buraya kadar sıkılmadan okuduğun için 


Yazar Hakkında

Mustafa Bayhan

Merhaba ben Mustafa Bayhan. Veri analizi, veri görselleştirme, raporlama ve finansal analiz gibi veriyle yakından ilgili alanlarda çalışmalar yapan bir Endüstri mühendisiyim. Verilerin analiz edilmesi ve yönetilmesi konusunda çalışmalar yapmaktayım. Veriler üzerindeki hakimiyetim farklı sektörler üzerinde projeler geliştirebilmeme olanak sağlıyor. Kendimi sürekli geliştirmeyi ve öğrendiklerimi paylaşmayı seviyorum. Yeni fikirlerle tanışmak ve bu fikirleri hayata geçirmek beni her zaman mutlu ediyor. Benimle ilgili detaylı bilgi için hakkımda sayfamı ziyaret edebilirsiniz.



0 Yorumlar


Yorum Yapmak İster misiniz?