Caroline Eppright | İçerik Stratejisti | 25 Mart 2021
Doğal dil işleme (NLP) yapay zekanın (AI) bir koludur ve bilgisayarların, insan dilini kavramasını, üretmesini ve idare etmesini sağlar. Doğal dil işleme, doğrul dil metni veya sesi ile verileri sorgulama özelliğine sahiptir. Buna aynı zamanda "dil girdisi" de denir. Pek çok tüketici muhtemelen farkında bile olmadan NLP ile etkileşime geçmiştir. Örneğin, Oracle Dijital Asistan (ODA), Siri, Cortana veya Alexa gibi sanal asistanların ardındaki temel teknoloji NLP'dir. Bu sanal asistanlara sorular sorduğumuzda, asistanların hem kullanıcının talebini anlayıp hem de doğal bir dille yanıt vermesini sağlayan NLP'dir. NLP hem yazılı metin hem konuşma için geçerlidir ve tüm dillerde uygulanabilir. NLP destekli araçlara ilişkin diğer örnekler arasında web arama, istenmeyen e-posta filtreleri, otomatik metin veya konuşma çevirisi, belge özetleme, duygu analizi ve dil bilgisi/yazım denetimi yer alır. Örneğin, kimi e-posta programları mesaj içeriğine göre uygun yanıt önerilerinde bulunabilir. Bu programlar, mesajınızı okumak, analiz etmek ve yanıtlamak için NLP teknolojisinden faydalanır.
Genel manada NLP ile eşanlamlı olarak kullanılan birkaç adet daha terim bulunur. Doğal dil anlayışı (NLU), bilgisayarları kullanarak insan dilini anlama ve doğal dil oluşturma (NLG) ise üretme anlamına gelir. NLG, bir duruma ilişkin sözlü açıklama özelliğine sahiptir. Buna aynı zamanda "grafik dil bilgisi" olarak bilinen bir kavram yardımıyla anlamlı bilgileri özetleyerek metne dönüştüren "dil çıktısı" da denir.
Uygulamada NLU, NLP anlamında kullanılır. Bilgisayarların, tüm dillerin yapısını ve anlamını kavrayarak geliştiricilerin ve kullanıcıların doğal cümleler ve iletişimlerle bilgisayarlarla etkileşime geçmesine olanak sağlayan anlayıştır. Bilgisayarlı dilbilimi (CL) insan dillerinin işleme dayalı özelliklerini inceleyen bilimsel bir alandır. NLP ise insan dilini anlayan, üreten veya idare eden bilgisayarlı oluşumlar inşa etmekle ilgilenen bir mühendislik disiplinidir.
NLP çalışmaları 1950'li yıllarda dijital bilgisayarların icadından kısa bir süre sonra başlamıştır ve NLP hem dilbilim hem yapay zekadan yararlanır. Ancak son birkaç yılda gerçekleşen büyük atılımlar, yapay zekanın bir kolu olan ve verilerden öğrenen ve genelleştirme yapan sistemleri geliştiren makine öğrenimi sayesinde elde edilmiştir. Derin öğrenme makine öğreniminin büyük veri kümelerinden çok karmaşık örüntüleri öğrenebilen bir çeşididir. Yani web kaynaklı veri kümelerinden doğal dil karmaşıklıklarını öğrenmek için idealdir.
Rutin görevleri otomatikleştirme: Sohbet robotları NLP ile desteklendiğinde, günümüzde insan temsilcilerin gerçekleştirdiği çok sayıda rutin görevi yerine getirerek çalışanların daha zorlu ve ilginç görevlerde yer alması için uygun zemini oluşturabilir. Örneğin, sohbet robotları ve Dijital Asistanlar çok çeşitli kullanıcı taleplerini anlayabilir, bunları kurumsal veritabanındaki uygun girişlerle eşleştirebilir ve kullanıcı için uygun yanıtı formüle edebilir.
Aramayı iyileştirme: NLP bağlama göre kelime anlamlarını netleştirerek (örneğin, "taşıyıcı" kelimesi biyomedikal ve endüstriyel bağlamlarda farklı anlamlara gelir), eşanlamlı kelimeleri eşleştirerek (örneğin, "otomobil" aramasında içinde "araba" geçen belgeleri getirerek) ve morfolojik varyasyonları göz önünde bulundurarak (İngilizde dışındaki sorgularda önemlidir) belge ve SSS için anahtar sözcük aramalarını iyileştirebilir. Etkili NLP destekli akademik arama sistemleri doktorlar, avukatlar ve diğer uzmanlar için ilgili en son araştırmalara erişimi kayda değer düzeyde iyileştirebilir.
Arama motoru optimizasyonu: NLP içeriğinizi optimize etmek üzere aramaları analiz ederek işletmenizin online aramalarda üste çıkması için harika bir araçtır. Arama motorları sonuçlarını sıralamak için NLP'den faydalanır ve bu teknikleri nasıl etkili bir şekilde kullanacağınızı bilmek rakipleriniz arasından öne çıkmanızı kolaylaştırır. Bu sayede işletmeniz için daha yüksek düzeyde görünürlük elde edersiniz.
Büyük belge koleksiyonlarını analiz etme ve düzenleme: Belge kümeleme ve konu modelleme gibi NLP teknikleri kurumsal raporlar, haber makaleleri veya bilimsel belgeler gibi büyük belge koleksiyonlarında içerik çeşitliliğini anlama görevini basitleştirir. Bu teknikler sıklıkla yasal keşif amaçlarıyla kullanılır.
Sosyal medya analizleri: NLP müşteri incelemelerini ve sosyal medya yorumlarını analiz ederek yüksek hacimli bilgiler konusunda daha iyi bir kavrayış edinmenizi sağlayabilir. Duygu analizi, sosyal medya yorumlarındaki olumlu ve olumsuz yorumları belirleyerek müşteri duyguları konusunda gerçek zamanlı olarak doğrudan ölçüm sağlar. Bu, zaman içerisinde büyük kazanımlar elde edilmesini sağlayabilir. Örneğin, müşteri memnuniyetinde ve gelirde artış sağlanabilir.
Pazar içgörüleri: İşletmenizin müşterilerinin dilini analiz etmek üzere NLP'den faydalanarak müşterilerinizin isteklerine daha hakim olur ve aynı zamanda müşterilerinizle nasıl iletişim sağlayabileceğinizi daha iyi anlarsınız. İlgiye yönelik duygu analizi, sosyal medyadaki belirli ilgiler veya ürünler ile ilişkili duyguyu (örneğin, "klavye harika ama ekran parlaklığı çok düşük") tespit ederek ürün tasarımı ve pazarlama için doğrudan uygulanabilir bilgiler sunar.
İçeriği yönetme: İşletmeniz yüksek hacimlerde kullanıcı veya müşteri yorumu alıyorsa NLP, sözcüklerin yanı sıra yorumların tonunu ve amacını da analiz ederek kaliteyi ve nezaketi sürdürmek amacıyla dile getirilenleri düzenlemenize olanak sağlar.
NLP çok çeşitli iş süreçlerinde, özellikle e-postalar, anketler, sosyal medya konuşmaları vb. gibi yüksek hacimli yapılandırılmamış metinlerde basitleştirme ve otomatikleştirme sağlar. İşletmeler NLP sayesinde verilerini daha iyi analiz ederek doğru kararlar alabilir. NLP uygulamalarına ilişkin birkaç örnek:
NLP için makine öğrenimi modelleri: Daha öncesinde modern NLP'nin yoğun bir şekilde makine öğrenimi adı verilen bir yapay zeka yaklaşımını temel aldığından bahsetmiştik. Makine öğrenimi, bir veri kümesindeki örnekleri genelleştirerek tahminler yapar. Bu veri kümesine eğitim verileri adı verilir ve makine öğrenimi algoritmaları, bir hedef görevi gerçekleştiren makine öğrenimi modeli oluşturmak üzere bu eğitim verilerinde eğitilir.
Örneğin, duygu analizi eğitim verileri duygu içeren cümlelerden oluşur (örneğğin, olumlu, olumsuz veya nötr duygu). Bir makine öğrenimi algoritması bu veri kümesini okur ve cümleleri girdi olarak alıp duygularını getiren bir model üretir. Cümleleri veya belgeleri girdi olarak alıp bu girdi için bir etiket getiren bu tür modellere belge sınıflandırma modeli adı verilir. Belge sınıflandırıcıları, bahsettikleri konulara göre belgeleri sınıflandırmak için de kullanılabilir (örneğin, spor, finans, siyaset vb. olarak).
Başka bir model ise belgelerdeki varlıkları tanımak ve sınıflandırmak için kullanılır. Model, belgedeki her bir sözcük için ilgili sözcüğün bir varlık ifadesi olup olmadığını ve varlık ifadesiyse ne tür bir varlıktan bahsedildiğini tahmin eder. Örneğin, "XYZ Şirketinin hisseleri dün 28 ABD Doları karşılığında işlem gördü" cümlesinde "XYZ Şirketi" bir şirket varlığı, "28 ABD Doları" bir para birimi tutarı ve "dün" ise bir tarihtir. Varlık tanıma için eğitim verileri her bir sözcüğün, hangi tür varlıklarla ilgili ise o şekilde etiketlendiği bir metin koleksiyonudur. Girdideki her bir sözcük için bir etiket üreten bu tür modellere dizi etiketleme modeli adı verilir.
Diziden diziye modelleri NLP'de kullanılan model ailesinin en yeni üyelerinden biridir. Diziden diziye (veya seq2seq) modeli tüm cümleyi veya belgeyi girdi olarak alır (tıpkı belge sınıflandırıcıdaki gibi) ancak çıktı olarak bir cümle veya başka bir dizi (örneğin, bir bilgisayar programı) üretir. (Belge sınıflandırıcı ise çıktı olarak yalnızca tek bir sembol üretir.) Seq2seq modellerinin örnek uygulamaları arasında örneğin İngilizce bir cümleyi girdi olarak alıp çıktı olarak Fransızca cümlesini getiren makine çevirisi, belge özetleme (çıktı, girdinin bir özetidir) ve semantik ayrıştırma (girdi, İngilizce bir sorgu veya taleptir ve çıktı ise talebi uygulayan bir bilgisayar programıdır) yer alır.
Derin öğrenme, ön eğitimli modeller ve transfer öğrenme: Derin öğrenme NLP'de en yaygın kullanılan makine öğrenimi türüdür. 1980'li yıllarda araştırmacılar, nöral ağlar geliştirdi. Bu nöral ağlarda, çok sayıda ilkel makine öğrenimi modeli tek bir ağda birleşir. Beyin ile benzer bir şekilde basit makine öğrenimi modelleri kimi zaman "nöronlar" olarak nitelendilir. Bu nöronlar katmanlar halinde düzenlenir ve derin nöral ağ, birçok katmanı içerir. Derin öğrenme, derin nöral ağ modellerini kullanan makine öğrenimidir.
Karmaşıklıkları nedeniyl ebir derin nöral ağın eğitimi için çokça veri ve bu verilerin işlenmesi için çokça bilgi işlem gücü ve zamanı gerekir. Modern derin nöral ağ NLP modelleri, Vikipedi ve webden alınan veriler gibi çeşitli kaynaklardan eğitilir. Eğitim verileri, 10 GB veya daha büyük boyutta olabilir ve derin nöral ağın yüksek performanslı bir kümede eğitimi için bir hafta ya da daha uzun süre gerekebilir. (Araştırmacılar, daha da büyük veri kümelerinden daha da derin modellerin eğitilmesinin daha yüksek performans gösterdiğini bulmuştur. Dolayısıyla daha da büyük veri kümelerinden daha ada büyük modellerin eğitilmesi konusunda bir yarış söz konusudur.)
Derin Nöral Ağların kapsamlı veri ve bilgi işlem gereklilikleri, kullanışlılıklarını ciddi ölçüde sınırlıyor gibi görünebilir. Ancak transfer öğrenme, eğitimli bir derin nöral ağın yeni bir görevi gerçekleştirmek üzere çok daha az eğitim verisi ve bilgi işlem eforu ile daha fazla eğitilebilmesini sağlar. En basit transfer öğğrenme türü, ince ayar olarak adlandırılır. Temelde önce modeli büyük bir genel veri kümesinde (örneğin, Vikipedi) eğitip ardından modeli gerçek hedef görev etiketli çok daha küçük bir göreve özgü veri kümesinde eğitmek ("ince ayar") demektir. Şaşırtıcı olsa da ince ayar veri kümeleri, yalnızca yüzlerce ve hatta onlarca eğitim örneğinden oluşacak şekilde son derece küçük olabilir ve ince ayar eğitimi, tek bir CPU'da dakikalar içinde gerçekleştirilebilir. Transfer öğrenme, derin öğrenme modellerinin şirket genelinde dağıtımını kolaylaştırır.
Artık farklı dil, veri kümesi ve ön eğitim görevi kombinasyonlarında eğitilmiş ön eğitimli derin öğrenme modelleri sunan kapsamlı bir sağlayıcı ekosistemi var. Bu ön eğitimli modeller indirilebilir ve modellere, çok çeşitli hedef görevler için ince ayar uygulanabilir.
Yapay zeka mükemmeliyet merkezi (CoE) kurmanın NLP teknolojileriyle başarınızı nasıl artırabileceğini öğrenin. E-kitabımız, gelişmiş makine öğrenimi modellerini kullanarak CoE ve etkili bir şekilde oluşturma ipuçları sağlar.
Belirteçlere ayırma: Belirteçlere ayırma ham metni (örneğin, bir cümleyi veya belgeyi) sözcükler ya da alt sözcük parçaları gibi belirteç dizisine ayırır. Belirteçlere ayırma genellikle NLP işleme ardışık düzenindeki ilk adımdır. Belirteçler, daha sonraki işlemede atomik birimler olarak kabul edilen, yaygın olarak yinelenen metin dizileridir. Bunlar sözcükler, biçimbirim adı verilen alt sözcük birimleri (örneğin, "na-" gibi önekler ya da "-yor" gibi sonekler), hatta bağımsız karakterler olabilir.
Sözcük torbası modelleri: Sözcük torbası modelleri belgeleri, sıralanmamış belirteç ya da sözcük koleksiyonları olarak işleme alır (torba bir kümeye benzer ancak her bir öğenin kaç kez göründüğünü takip etmesiyle farklıdır). Sözcük torbası modelleri, sözcük sırasını tamamıyla yoksaydığından "sanat toplum için" ile "toplum sanat için" cümlesini karıştıracaktır. Ancak sözcük torbası modelleri sıklıkla arama motorları gibi büyük bilgi getirme görevlerinde verimlilik sağlamak amacıyla kullanılır. Daha uzun belgelerle en gelişmişe yakın sonuçları üretebilirler.
Atlanacak sözcük çıkarma: “Atlanacak sözcük” daha sonrak işlemede yoksayılan belirteçlerdir. Tipik olarak "bir", "ya" gibi tekrarlanan kısa sözcüklerdir. Sözcük torbası modelleri ve arama motorları, genellikle işleme süresini ve veritabanında depolamayı azaltmak için atlanacak sözcükleri yoksayar. Derin nöral ağlar tipik olarak sözcük sırasını göz önünde bulundurur (yani sözcük torbası modelleri değildir) ve atlanacak sözcükler anlamda ufak ayrımlar yaratabileceği için atlanacak sözcükleri çıkarmaz (örneğin, "paket kayboldu" ve "bir paket kayboldu" cümleleri atlanacak sözcük çıkarıldıktan sonra aynı görünseler de aynı anlamı taşımaz).
Kök alma ve kök çözümleme: Biçimcirimler dilin en küçük anlamlı öğeleridir. Tipik olarak biçimbirimler sözcüklerden küçüktür. Örneğin, "namümkündü" sözcüğü ön ek olarak "na-", kök olarak "mümkün" ve son ek olarak geçmiş zaman ekini "-idi" içerir. Kök alma ve kök çözümlemede sözcükler kök biçimlerine eşlenir (örneğin, "namümkün" + GEÇMİŞ). Kök alma ve kök çözümleme, ön derin öğrenme modellerinde kritik adımlardır ancak derin öğrenme modelleri genellikle bu düzenleri eğitim verilerinden öğrenir ve bu nedenle açık kök alma veya kök çözümleme adımları gerekmez.
Sözcük türü etiketlleme ve sözdizimi ayrıştırma: Sözcük türü (PoS) etiketleme, her bir sözcüğü türüne göre (örneğin, isim, fiil, sıfat vb.) etiketleme işlemidir. Sözdizimi ayrıştırıcı, sözcüklerin nasıl bir araya gelerek sözcük grubu, tümcecik ve cümle oluşturduğunu tanımlar. Sözcük türü etiketleme bir dizi etiketleme görevidir. Sözdizimi ayrıştırma ise genişletilmiş bir dizi etiketleme görevidir ve derin nöral ağlar hem sözcük türü etiketleme ve sözdizimi ayrıştırma için en gelişmiş teknolojilerdir. Derin öğrenmeden önce sözcük türü etiketleme ve sözdizimi ayrıştırma cümle anlayışında önemli adımlardı. Ancak modern derin öğrenme NLP modlelleri genel olarak sözcük türü veya sözdizimi bilgilerinden çok az faydalanır (neredeyse hiç). Bu nedenle sözcük türü etiketleme ve sözdizimi ayrıştırma yöntemleri derin öğrenme NLP'de kullanılmaz.
NLP Kitaplıkları ve araç kitleri genellikle Python'da bulunur. Bunun nedeni, NLP projelerinin büyük bir çoğunluğunun Python'da geliştirilmiş olmasıdır. Python'un sunduğu etkileşimli geliştirme ortamı yeni kodları geliştirmeyi ve test etmeyi kolaylaştırır.
Daha verimli kod desteği nedeniyle büyük miktarda veri işleme için genellikle C++ ve Java tercih edilir.
Bazı popüler NLP kitaplıklarının örnekleri aşağıda belirtilmiştir.
TensorFlow ve PyTorch: Bunlar en popüler iki derin öğrenme araç kitidir. Araştırma ve ticari amaçlarla ücretsiz kullanılabilir. Birden çok dil desteği içerir ancak temel dil Python'dur. Önceden oluşturulmuş bileşenlerden oluşan büyük kitaplıklarla birlikte sunulur. Bu nedenle çok gelişmiş derin öğrenme NLP modelleri bile bu bileşenlerin birleştirilmesini gerektirir. Aynı zamanda grafik işlemci birimi (GPU) hızlandırıcılar içeren makine kümeleri gibi yüksek performanslı bilgi işlem altyapılarını destekler. Mükemmel belgeleri ve eğitim programları bulunur.
AllenNLP: Bu, PyTorch ve Python'da uygulanan üst düzey NLP bileşenleri kitplığıdır (örneğğin, basit sohbet robotları). Belgeleri mükemmeldir.
HuggingFace: Bu şirket, yüzlerce farklı önceden eğitimli Derin Öğrenme NLP modeli ve TensorFlow ve PyTorch'ta geliştiricilerin farklı önceden eğitimli modellerin özel görevlerinde ne kadar iyi performans çıkardığını hızlı bir şekilde değerlendirebilmesini sağlayan kullanıma hazır bir yazılım araç kiti sunar.
Spark NLP: Spark NLP; Python, Java ve Scala programlama dilleri için gelişmiş NLP açık kaynaklı metin işleme kitaplığıdır. Amacı, doğal dil işleme ardışık düzenleri için uygulama programı arabirimi (API) sağlamaktır. Önceden eğitimli nöral ağ modelleri, ardışın düzenleri ve katıştırmalarının yanında özel modelleri eğitme desteği sunar.
SpaCy NLP: SpaCy, Python'da gelişmiş NLP için ücretsiz, açık kaynaklı kitaplıktır ve özel olarak büyük hacimli metinleri işleyebilen ve anlayabilen uygulama yazılımlarının oluşturulmasına yardımcı olmak için tasarlanmıştır. SpaCy yüksek düzeyde sezgisel olmasıyla bilinir ve yaygın NLP projelerinde gereken pek çok görevi yerine getirebilir.
Özetle, Doğal dil işleme arama mootorları, sohbet robotları, öneri sistemleri ve konuşmadan metne sistemler gibi çok çeşitli yeni ürünlere ivme kazandıran heyevan verici bir yapay zeka geliştirme alanıdır. İnsanların bilgisayarlarla düğmeler, formlar ve etki alanına özgü diller üzerinden etkileşimleri azaldıkça doğal dil işlemedeki büyüme talebi artmaya devam edecektir. Bu nedenle, Oracle Bulut Altyapısı NLP için performans açısından optimize edilmiş bilgi işlem biçimleri ve araçlarımızla şirket içi performans sunmaya kararlıdır. Oracle Bulut Altyapısı, NLP ile denemelere başlamak için dakikalar içinde dağıtımını yapabileceğiniz bir dizi GPU şekli sunar.