Herkese merhaba,
Bu yazımda PVA’de doğal dilde anlama (Natural Language Understanding-NLU) dan bahsedeceğim.
NLU, kullanıcının bota keyword yerine ifade şeklinde input verdiğinde kullanıcıyı doğru konuya yönlendirme yeteneğidir. Örneğin kullanıcı bota “iş gelişirmeyle ilgili bir önerim var” dediğinde kullanıcının öneriyle ilgili konuya yönlendirilmesi doğal dilde anlama desteğiyle sağlanır. Akıllı botlar için doğal dilde anlama önemli bir özelliktir.
Doğal dilde desteğinde en önemli rolu Entity‘ler oluşturuyor. PVA içerisinde gömülü gelen entity’lere (Prebuild Entities) ilave olarak kendiniz de “Custom Entity” ile özel entity’ler oluşturabilirsiniz.
Aşağıda günlük konuşmada sıklıkla kullanılan yaş, renk, sayı ve isimler gibi PVA içinde gömülü gelen “Prebuilt Entity”lerden “Age”i görüyorsunuz.

Kendi entity’lerimiz için; ilgili chatbotun sol menüsünden Entites > New Entites

Burda karşıma çıkan Closed List Entity; entity’leri liste şeklinde tutar, yönetimi ve kontrolü kolaydır. RegEx (Regular Expression) Entity‘ler ise input ile oluşturulabildikleri için daha kompleks yapılar için uygundur. Mesela son kullanıcıdan TC no gibi bir input alınacaksa RegEx kullanılabilir.
Closed List Entity ile devam edelim ve örnek olarak firmada verilecek olan eğitimle ilgili bilgi isteyen son kullanıcı için “egitim” entitisi oluşturalım. Entity’de egitim kelimesinin kullanıcılar tarafından yazılabilecek eş anlamlılarını belirtiyorum.

Burda dikkat etmem gereken “Smart Matching”in açık olması. Smart matching’de doğal dilde anlama modelinin bir parçası aslında. Smart matching etkinken kullanıcının girdiği inputlar, fuzzy match ile doğru şekilde anlaşılmaya çalışılacak. Bu son kullanıcının kelime hatalarını, dil bilgisi hatalarını tanımlamasına ve doğru kelimeyi tayin etmesini sağlayacak. Ne kadar çok yanlış yazım girerseniz (benim yukarıda gösterdiğim gibi egitim yerine egtim’i belirtmem gibi) botunuz o kadar hatayı doğru anlayabilir. Kaydettikten sonra entity’yi bot içinde kullanabilirsiniz.

Umarım faydalı olmuştur.