Amazon'un Alexa , Nuance'nin Mix'i ve Facebook'un Wit.ai'sinin tümü, bir metin komutunun bir amaca nasıl dönüştürüleceğini belirtmek için benzer bir sistem kullanıyor - yani bir bilgisayarın anlayacağı bir şey. Bunun için "resmi" adın ne olduğundan emin değilim ama buna "niyet tanıma" diyorum. Temelde "lütfen ışıklarımı% 50 parlaklığa ayarla" seçeneğinin bir yolu lights.setBrightness(0.50)
.
Belirtildikleri yol, geliştiricinin bir niyetle ilişkilendirilmiş ve isteğe bağlı olarak "varlıkların" (temelde parametreler) konumlarıyla etiketlenmiş bir "örnek ifadeler" listesi sağlamasıdır. İşte Wit.ai'den bir örnek:
Sorum şu: bu sistemler nasıl çalışıyor? Hepsi çok benzer olduğu için hepsinin kullandığı bazı seminal çalışmalar olduğunu varsayıyorum. Ne olduğunu bilen var mı?
İlginçtir Houndify regexes gibi daha farklı bir sistem kullanır: ["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]
. Alexa, Wit.ai ve Mix'in ayrı Konuşma-> Metin ve Metin-> Niyet sistemlerine sahip gibi göründüğünü varsayıyorum.
Düzenleme: Bir başlangıç noktası buldum - Gayri resmi Sesli Komutlar aracılığıyla İnsan - Robot Etkileşimi için Bir Mekanizma . İfadeleri karşılaştırmak için Latent Semantic Analysis adlı bir şey kullanır. Bunu okuyacağım. En azından bana atıf ağında bir başlangıç noktası verdi.
Edit 2: LSA temel olarak metnin her paragrafında kullanılan kelimeleri (Bag of Bag) karşılaştırmaktadır. Kelimenin sırasını tamamen kaybettiği için bu dava için nasıl çok iyi çalışabileceğini görmüyorum. Her ne kadar kelime sırası bu tür komutlar için çok önemli olmasa da.
Edit 3: Gizli Konu Markov Modelleri ilginç olabilirler.