Doğal Dil İşleme (NLP) Nedir?

Doğal dil işleme insanların günlük hayatında kullandıkları dilleri (ingilizce, türkçe vs); bilgisayarın anlaması, işlemesi, yorum yapması, cümle kurması gibi işlemleri yapabilmesi; veya farklı doğal dilleri konuşan insanların aralarındaki etkileşimi arttırması için çözümler bulan bir bilim dalıdır. Dil bilimi, bilgisayar bilimi ve yapay zekanın bir alt dalı olan doğal dil işleme, kural tabanlı yaklaşımlar, istatiksel analiz, makine öğrenmesi ve derin öğrenme gibi alanları hibrit biçimde kullanmaktadır.

Teknoloji ve insan etkileşiminin artmasından kaynaklı olarak, blog yazıları ve sosyal medya paylaşımları gibi bir çok yazılı ve sesli veri üretilmektedir. Bu verilerin işlenmesi ve anlamlandırılabilmesi için bilgisayarların anlayacağı bir biçime sokulması gerekir; ve bu noktada da doğal dil işleme tekniklerinden faydalanılmaktadır. Özetle bu teknikler, insan dilini bilgisayarın anlayacağı formata çevirme işlemidir.

Banka sisteminde konuştuğumuz chatbot, yazım yanlışlarını düzeltilmesi, otomatik çeviri programları, mesaj yazarken telefonun sonraki kelimeyi tahmin etmesi vb uygulamalar günlük hayatta karşılaştığımız bir çok doğal dil işleme çözümünden bazılarıdır. Genel olarak, doğal dil işleme uygulama alanları aşağıdaki gibi gruplanabilir.

Yazım Denetimi (Spell Checking): yazılan bir cümlenin dil ve kelime bilgisi kontrolünün yapılmasıdır. Microsoft word ve grammarly’inin spell check uygulamaları buna örnek olarak verilebilir.

Ses Tanıma (Speech Recognition): makine öğrenmesi, yapay sinir ağları ve derin yapay sinir ağları gibi yöntemlerin kullanılarak ses dalgalarının anlamlı hale getirilmesidir. Google Asistan ve Siri örnek olarak verilebilir.

Metin Özetleme (Text Summurization): Uzun metinlerden özet bilgilerin çıkarılması işlemidir. QuillBot Summarizer buna örnek olarak verilebilir.

Bilgi Çıkarımı (Information Extraction): yapılandırılmamış veya yarı-yapılandırılmış metinlerden, otomatik bir şekilde yapılandırılmış bilgilerin çıkarılması işlemidir. Bu sayede, insan müdahalesi olmadan büyük veri otomatik olarak işlenmektedir.

Varlık İsmi Tanıma (Named Entity Recognition): bilgi çıkarımının bir alt dalıdır. Kişi, yer, zaman gibi önceden tanımlanmış yapıların metin içerisinden çıkarılmasıdır. Duygu analizi ve dil çevirimi (machine translation) gibi problemlerde kullanılmaktadır.

Dil Çeviri (Machine Translation): diller arasında otomatik çeviri yapılmasıdır. Örnek olarak google translate ve huawei translate verilebilir.

Duygu Analizi (Sentiment Analysis): belirli bir metin içerisindeki ruh hali ve duyguların belirlenmesidir.

Soru Cevaplama (Question Answering): sorulan sorulara anlamlı cevap verilebilmesidir.

Metin Sınıflandırma (Text Classification): bir metin içerisinde yer alan cümle ve kelimeleri kullanarak, önceden belirlenen etiketlere atanması işlemidir.

Doğal dil işlemede kullanılan veri kümeleri konuşma dillerine göre farklılık gösterir. Her dilin kendine özgü bir yapısı olduğundan, dillere yaklaşımlarda birbirinden farklıdır. Bu sebepten dolayı, yukarda bahsedilen işlemler yapılırken dilin yapısı da göz önünde bulundurulması gereken önemli bir etkendir.

Doğal Dil İşleme Adımları

Doğal dil işleme uygulamalarının yapılabilmesi için öncelikle, yapılandırılmamış dil verilerinin bilgisayarın anlayacağı formata dönüştürülmesi gerekmektedir. Metin verisi bilgisayara verilir ve cümlelerine ayrıştırılır; sonrasında kelimelere parçalama işlemi yapılır. Daha sonra da, parçalar arasındaki ilişkiler anlamlandırılmaya çalışılır. Bu adımlar sıra ile ele alanacak olursa:

1. Cümle Segmentasyonu (Sentence Segmentation)

Bir metni paragraf paragraf işlemek yerine cümle cümle işlemek kodlama açısından kolaylık sağlamaktadır. Bu sebepten dolayı, verilen bir metinde yapılması gereken ilk işlem cümlelerine ayırmaktır. Bir metini cümlelerine ayırmak için noktalama işaretlerini kullanmak, etkili ve basit bir yöntemdir. Ancak, noktalama işaretlerinin düzgün olmadığı durumlarda daha ileri ve karmaşık doğal dil işleme yöntemleri de kullanılmaktadır.

2. Kelime Bölütleme/Parçalama (Word Tokenization)

Cümlelere ayırma işleme tamamlandıktan sonra, kelimelere bölütleme işlemi yapılır. Burada ilgili cümle noktalama işaretleri ve boşluklar yardımıyla parçalara ayrılır. İngilizce gibi diller için bu işlem basittir. Ancak her dilin farklı bir yapısı olduğu unutulmamalıdır ve bazı dillerde kelime parçalama işlemi zor bir adım olabilmektedir.

3. Sözcük Türü Tahmini (Part of Speech Prediction)

Burada amaç her kelimenin isim, sıfat, zarf gibi türlerden hangisine ait olduğunu tespit etmektir. Çünkü bir cümledeki kelimenin türünü bilmek o cümleyi anlamak için önemli bir adımdır. Bu işlemde kelimenin türünü belirlemek için ilgilli kelime ve yanındaki bir kaç kelime; önceden eğitilmiş bir sınıflandırma modeline verilir. Bu model önceden türleri etiketlenmiş olan binlerce kelime grubuyla beslenmiştir ve ilgili kelimenin türünü belirlemek için eğitilmiştir. Bu model sayesinde, her kelimenin türü bulunur ve işlem tamamlanır.

4. Kök Çözümleme (Text Lemmatization)

Bir bilgisayar metin ile çalışırken, her iki kelimeninde aynı kavramı belirtiğini bilmelidir. Yani, kelimenin yalın halini bulması gerekmektedir. Örneğin “kitap” kelimesi bir cümlede “kitaplar”, “kitaplarım”, “kitabım”, “kitap”, “kitaplarımız” gibi bir çok farklı şekilde yer alabilir. Özünde bu ifadelerin hepsi aynıdır, fakat yazım farklılığından dolayı bilgisayar bu ifadelerin hepsini farklı bir kelime olarak değerlendirir. Bu gibi durumlarda kelimenin kökü bulunmalıdır ve farklı çekimler tek bir kelime ile ifade edilmelidir. Bizim örneğimizde tüm kitap çekimleri kitap olarak ifade edilebilir ve bu sayede bilgisayar bu kelimelerin aynı şeyi ifade ettigini anlar.

Bu işlem dillerin yapılarına göre çok farklılık göstermektedir. Bazı dillere göre kolay bir işlem iken, bazılarına göre çok zordur. Örneğin ingilizcede kelime çekimlerinin farklılığı; çoğul eki getirildiğinde (child-children, mouse-mice) veya fiil çekimlerinin zamana göre farklılığından (take-took-taken) kaynaklanmaktadır. Bu gibi farklılıklar sınırlı sayıda olduğu için İngilizce de kök çözümleme işlemi nispeten daha basittir. Ancak Türkçedeki “kitap” örneğinde olduğu gibi, bir kelimenin çok farklı çekimleri olabilir. Yapım ve çekim ekleri de işin içine girdiğinde bu iş çok karmaşık hale gelir ve programlanabilir bir mantık ile kök bulma işlemi oldukça zor hale gelir. Özetle, bir çok adımda olduğu gibi kök çözümleme işlemi de, dilden dile farklılık gösteren bir adımdır.

5. Gereksiz Kelime Belirleme (Stopwords)

Bir cümlenin anlamaya çalışırken içerisindeki her kelime bilgisayar açısından anlamlı olmayabilir. Örneğin Türkçe için “ve”, “ama”, “ile”, “de”, ”da”; İngilizce için “and”, “the”, “a”, “is” kelimeleri bir cümle için gereksiz kelime olarak görülmektedir. Bu kelimeler cümleler içerisinde çok sayıda bulunmakta ve tek başına bir anlam ifade etmemektedir. Bu sebepten dolayı, gereksiz kelimelerin filtrelenmesi o cümlenin bilgisayar tarafından anlaşılmasını kolaylaştırmaktadır.

6. Bağlılık Analizi (Dependency Parsing)

Bağlılık analizi, bir dilin gramer yapısnı kullanarak verilen cümledeki kelimeler arasındaki ikili ilişkileri bulmaktır. Bu işlem yapılırken kelimeler “bağlanılan” (head) ve “bağlanan” (dependent) olmak üzere iki kısma ayrılmaktadır. Bir insan veya program yardımıyla bir cümledeki “bağlanan” ve “bağlanılan” kısımlarının belirlenmesi ile bağlılık analizi tamamlanır. Burada amaç cümleyi bilirli bir kalıba sokmaktır. Bu yöntem Türkçe gibi esnek cümle yapısına sahip dillerde gramer yapısını belirli bir formata dönüştürmektedir. Örneğin Türkçe de devrik cümle yapısı vardır ve aynı anlama gelen bir cümle hem devrik hem de normal şekilde yazılabilir. Bağlılık analizi yapılmayan bir durumda, bu iki cümle bilgisayar için farklı anlamlara gelir ve yanlış öğrenmiş olur. Bağlılık analizine tabi tutulduğu durumda ise, dizilişi farklı olan bu iki cümle aynı formata dönüştürülür ve bilgisayar tarafından aynı şekilde anlaşılır.

Yukarıda bahsedilen adımlar doğal dil işlemede ön işlemler olarak uygulanmaktadır. Bu işlemlerin çoğu dillere göre farklılık göstermekte, bazı dilllere göre çok zorlu olurken bazılarında basit uygulamalar olarak karşımıza çıkmaktadır. Metinler bu ön işlemlerden geçirildikten sonra, asıl uygulama alanlarında kullanılmak üzere hazır hale gelirler ve beklenen çözüme göre işlenirler.