“Niyet tanıyanlar” nasıl çalışır?


11

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:

wit.ai örneği

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.


Bu yazı niyet sınıflandırmasını ayrıntılı olarak açıklamaktadır: mrbot.ai/blog/natural-language-processing/…
znat

Bu, sorumda bahsettiğim "kelime torbası" yöntemini kullanıyor gibi görünüyor. Temel olarak sadece cümle içindeki kelime vektörlerini toplayın. Yine de böyle olamaz. Wit ve Nuance'ın arayüzleri, kelime torbasının kolayca yapamayacağı varlıkları tanıdıklarını gösteriyor. Ayrıca kelime torbası tüm sıralamayı kaybeder, böylece "10'u 5'e alarm ayarla" gibi bir şey "10'u 10'a alarm ayarla" dan ayırt edilemez. Daha devam eden bir şey olmalı.
Timmmm

Varlık çıkarımı, dizinin önemli olduğu başka bir sorundur. Çok fazla veri varsa, bir Rnn çalışacak, sohbet botlarında sık olan daha küçük veri kümelerinde, koşullu rastgele alanlar çok iyi çalışıyor
znat

Tamam, öyleyse ... "Bir RNN işe yarayacak" dan daha ayrıntılı bir cevap arıyorum. Çoğu modern dizi öğrenme sistemi, RNN'leri kullanır, böylece belirli bir şekilde görünür.
Timmmm

niyetler cümlelerin genel anlamı (vektörlerin ortalaması) ve varlıklar göründükleri bağlamı (kelimeleri çevreleyen) öğrenmekle ilgilidir. Rnn veya CRF sadece dizilerden öğrendikleri için kullanılabilen algoritmalardır. Ayrıntılı olarak öğrenmek istiyorsanız, Rasa kaynak koduna bakın
znat

Yanıtlar:


4

Sorunuzu doğrudan yanıtlamasa da, otomatik soru cevaplama alanıyla ilgilenebilirsiniz . Doğal dil metin sorularını cevaplamak için önce sorunun anlaşılması gereken anlaşılması gerekir.

İyi bir kaynak Jurafsky ve Manning'in dersidir . Özellikle anlambilim ve soru cevaplama bölümleri aradıklarınıza yardımcı olabilir. Youtube mevcut beraberindeki ders video yok burada .


Cevabınızın ilk bölümünü çok eğlenceli ama bilgilendirici buluyorum.
Diego

Belki de bu bir yorum olarak daha iyi olurdu, çünkü itiraf ettiğiniz gibi soruya cevap vermiyor.
kbrose

2

Bu yazının bir yaklaşımı var. Temelde kelime torbası kullanırlar - kelimeleri seyrek vektörlere dönüştürürler ve sonra toplarlar.

Oldukça iyi çalışıyor gibi görünüyor, ancak büyük bir kusur cevap kelime sırasından bağımsızdır, bu yüzden özel bir durum olmadıkça "kiloluk kaç kilo" gibi sorgular yapamazsınız.

Ancak Alexa ile metin yaptım ve kelime sırası değişikliklerine karşı oldukça duyarsız, bu yüzden belki de benzer bir şey kullanıyorlar.


Meraklı - seyrek vektörlerin Naive Bayesian'a göre ne avantajı var? Her ikisi de bana saf kelime-kelime varsayımı ile doğrusal olarak ayrılabilir sorunları çözmek
Angad
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.