IBM ve Microsoft Doğal Dil İşleme Servisleri -İnceleme

Doğal Dil İşleme(Natural Language Processing) Nedir?

Doğal dil işleme (NLP), bilgisayar bilimi, bilgi mühendisliği ve bilgisayarlarla insan (doğal) diller arasındaki etkileşimlerle ilgilenen yapay zeka, özellikle de bilgisayarları büyük miktarlarda doğal dil verilerini işlemek ve analiz etmek için programlamanın bir alt alanıdır.

Bu yazıda IBM ve Microsoft’un doğal dil işleme servislerini inceleyeceğiz…

IBM Watson Natural Language Understanding

IBM doğal dil işleme servisinin adı: Natural Language Understanding

Servis JSON çıktı dönüyor.

Demo analiz örneği ve çıktı verdiği JSON taglerinin de basit bir incelemesini yapacağım…

Ancak IBM ve Microsoft doğal dil işleme servisleri İngilizce dilinde çıktılar vermektedir. İncelemede ingilizce bir haber metni kullancağım. Sn. Cumhurbaşkanımızın Cemal Kaşıkçı cinayeti ile ilgili açıklamalarının haberi.

ISTANBUL — President Recep Tayyip Erdogan on Tuesday raised the stakes in his dispute with Saudi Arabia over what he called the ‘‘premeditated murder’’ of the Saudi journalist Jamal Khashoggi, demanding that Riyadh supply more answers and hand over the Saudi suspects to face justice in Turkey.
After saying he would reveal “the naked truth” about Mr. Khashoggi’s death, Mr. Erdogan, making his first extended remarks on the case, sketched out the chronology of a broad operation.
The 15-member team of Saudi officials arrived in stages in Istanbul to carry out the killing, and included generals, senior intelligence officers and forensic officials, Mr. Erdogan said. The Saudis also conducted reconnaissance in rural areas outside the city where investigators have been searching for Mr. Khashoggi’s remains, the president said.
“It is clear that this savage murder did not happen instantly but was planned,” Mr. Erdogan said, challenging the official Saudi account.
But while Mr. Erdogan offered some new details and confirmed others, the speech mainly served to make clear that Mr. Erdogan had no intention of dropping a case that has created an international furor.
He pressed the Saudis for an honest accounting of a killing that he pointedly noted occurred inside his country, and he posed a series of tough questions, throwing down a challenge to the Saudi leadership.

IBM analiz sonucunu çeşitli kategorilere ayırıyor. Bunlardan ilki Sentiment, burada negatif, pozitif çıktısı veriyor. Haberle ilgili içeriğin negatif olduğu skorunu çıktı olarak verdi.

{ “sentiment”: { “document”: { “score”: -0.705622, “label”: “negative” } } }

Emotion çıktısında ise yazıdaki hakim duyguları yansıtmakta. Haberde sentiment bölümü negatif çıkmasına rağmen Emotion çıktısında ağırlıklı üç duygu öne çıkmaktadır. Birincisi sevinç, ikincisi üzüntü, üçüncüsü sinirli… Bu bir çelişkidir. Negatif bir konuda hem sevinç oranı, hem üzüntü hem sinir oranı fazla çıkıyor. İngilizce bir doğal dil işleme analizinde bile analizin doğruluk oranını gözlemliyoruz. Zıtlıkların aynı çıktıda bulunması bence analiz algoritmaların eksiği. Bu kütüphaneyle uygulama geliştirmek istenirse muhtemelen olumsuz duyguların belli kombinasyonlarda olumlu çıktıları ezmesi veya olumlu duyguların belli kombinasyonlarda olumsuz çıktıları ezmesi gerekirdi…

Keywords çıktısında anahtar kelimeleri gözlemiyoruz. Konunun anlaşılmasında hayati öneme sahip anahtar kelimeler. Burada genel olarak analizin yüksek doğrulukta çıktığını gözlemiyoruz..

Entites(Kişiler, varlıklar vs…) çıktısında konumlar, kişiler vs varlık adlarını çıktı olarak vermekte. Aynı zamanda entititeslerle ilgili eğer veri bulunursa dpedia.org linki veriliyor.

Categories(Kategoriler) bence bir doğal dil işleme servisinde en önemli çıktılardan birisi… Kategoriler çıktısında da IBM başarılı bir sonuç veriyor. Bir yazıda birden fazla kategori olabiliyor. Tabi bunları ağırlıklı skorlara göre sıralıyor.

Concept(Konsept) bölümünü açıkcası anlamakta zorlanmıştım. Ancak burada sadece yazı içeriği baz alınmıyor. Entitesler, keywordslar vb diğer bölümlerde dönen çıktıların öğretilmiş veriler içerisinde yoğunluklu ilişkilerini çıktı olarak dönmektedir. Aslında consept bölümü öne çıkan bağlantılı kelimeleri, adları, bölgeleri vb verileri listeliyor.

Semantic Roles, bu bölümde metinin öznesi, nesnesi ve aksiyonunu çıktı olarak veriyor. Json çıktısı incelendiğinde bir kelimenin zaman yapısıyla ilgili verilerde mevcut… Bu çıktı da gerçekten çok değerli çünkü aksiyonlar ve zamanla ilgili sektörel anlamda önemli projeler yapılabilir.

Fiyatlandırma: Lite, Standart ve Premium planları mevcuttur.

Lite:

Ayda 10,000 API ücretsiz sorgu*

Standart: API çağrısı başına 0,0025 ABD doları
Sınırsız API sorguları / ay

Premium: Watson Premium planları, talep üzerine hassas veri gereksinimlerine sahip müşterilere yardımcı olmak için daha yüksek düzeyde bir güvenlik ve yalıtım sunar.

Desteklenen diller: İngilizce, Japonca.

Programlama dilleri: Node SDK, Java SDK, Python SDK, iOS SDK, Unity SDK

Microsoft LUIS Language Understanding Service

Microsoft’un doğal dil işleme servisinin adı LUIS. LUIS’in demo ekranı maalesef kendi örneklerinden oluşuyor.

Sorgu Metni:

Book me a flight to Cairo

JSON çıktısı:

{
 "query": "Book me a flight to Cairo",
 "topScoringIntent": {
 "intent": "BookFlight",
 "score": 0.9887482
 },
 "intents": [
 {
 "intent": "BookFlight",
 "score": 0.9887482
 },
 {
 "intent": "None",
 "score": 0.04272597
 },
 {
 "intent": "LocationFinder",
 "score": 0.0125702191
 },
 {
 "intent": "Reminder",
 "score": 0.00375502417
 },
 {
 "intent": "FoodOrder",
 "score": 3.765154E-07
 },
 ],
 "entities": [
 {
 "entity": "cairo",
 "type": "Location",
 "startIndex": 20,
 "endIndex": 24,
 "score": 0.956781447
 }
 ]
}

LUIS çıktıları biraz daha basit topScoringIntent(niyet, amaç, kasıt), Intent(Niyet, amaç, kasıt), ve entites’den oluşmakta.

topScoringIntent burada metine hakim olan intenti yani amacı çıktı olarak vermektedir. Bir sorguda birden fazla intent olabilir. Bunları da skorlarına göre sıralayarak çıktı veriyor.

Entities olarak da içerdiği varlık adlarını çıktı olarak veriyor.

Fiyatlandırma: LUIS API’sı — Ücretsiz: ayda 10,000 işlem ücretsizdir; LUIS API Saniyede en fazla 10 işlem; 1.000 işlem başına 0,75 dolar.

Platformlar: Facebook, Kik, Slack, Telegram, Twilio, Microsoft Takımları, Skype, k GroupMe, Web Sohbet, E-posta, Direkt Hat.

Desteklenen diller: İngilizce, Fransızca, İtalyanca, Almanca, İspanyolca, Brezilya Portekizcesi, Japonca, Korece ve Çince.

Programlama dilleri: C # SDK, Python SDK, Düğüm JS SDK, Android SDK.

Önceden oluşturulmuş özellikler: Sayı (metin veya metin), sıcaklık, boyut, para, yaş, coğrafya, ansiklopedi, yüzde ve tarih gibi önceden oluşturulmuş varlıkları vardır.

Kısaca IBM vs Microsoft Doğal Dil İşleme Servisi dersek… Öne çıkan iki madde var…

İngilizce’de Genel Performans

IBM Watson niyet algılaması en iyisidir.

Microsoft LUIS çok daha hızlı çalışıyor.

Evet maalesef Türkçe’de Doğal Dil İşleme Servisleri, API’ler ile çalışan servisler az sayıda ve bu kalite hizmet veremiyor… Maalesef yapay zekanın hep şov tarafında kalıyoruz. Oysa Türkiye’de akademisyenlerimiz öyle çalışmalar ortaya koyuyor ki, o kadar saygın çalışma var ki… Veri setlerinin azlığı ve Türkçe’nin dil yapısı dolayısıyla çeşitli zorluklar mevcut. Google, IBM, Microsoft belli sorguya bu servisleri ücretsiz olarak kullandırıyor. Bu bir pazarlama tekniği… Bunu başarabiliriz…

Doğal dil işleme çalışmalarının daha teknik düzeyde anlatıldığı bir başka yazıda görüşmek üzere!