Bagaimana cara "niat recognisers" bekerja?


11

Amazon Alexa , Nuance's Mix dan Facebook's Wit.ai semuanya menggunakan sistem yang sama untuk menentukan cara mengubah perintah teks menjadi maksud - yaitu sesuatu yang akan dipahami komputer. Saya tidak yakin apa nama "resmi" untuk ini, tetapi saya menyebutnya "pengakuan niat". Pada dasarnya cara untuk beralih dari "setel lampu saya ke kecerahan 50%" menjadi lights.setBrightness(0.50).

Cara mereka ditentukan adalah dengan meminta pengembang memberikan daftar "contoh ucapan" yang dikaitkan dengan maksud, dan secara opsional ditandai dengan lokasi "entitas" (pada dasarnya parameter). Berikut ini contoh dari Wit.ai:

contoh wit.ai

Pertanyaan saya adalah: bagaimana cara kerja sistem ini? Karena mereka semua sangat mirip, saya berasumsi ada beberapa pekerjaan mani yang mereka semua gunakan. Adakah yang tahu apa itu?

Menariknya Houndify menggunakan sistem yang berbeda yang lebih seperti regexes: ["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]. Saya berasumsi bahwa terintegrasi ke dalam pencarian balok sistem pengenalan suara mereka, sedangkan Alexa, Wit.ai dan Mix tampaknya memiliki sistem Pidato-> Teks dan Teks-> Intent terpisah.

Sunting: Saya menemukan titik awal - Mekanisme untuk Interaksi Manusia - Robot melalui Perintah Suara Informal . Ia menggunakan sesuatu yang disebut Analisis Semantik Laten untuk membandingkan ucapan. Saya akan membaca tentang itu. Setidaknya itu memberi saya titik awal dalam jaringan kutipan.

Sunting 2: LSA pada dasarnya membandingkan kata-kata yang digunakan (Bag of Words) di setiap paragraf teks. Saya tidak melihat bagaimana ini bisa bekerja dengan baik untuk kasus ini karena benar-benar kehilangan urutan kata. Meskipun mungkin urutan kata tidak terlalu penting untuk jenis perintah ini.

Sunting 3: Model Markov Topik Tersembunyi terlihat mungkin menarik.


Posting ini menjelaskan klasifikasi maksud dalam rincian: mrbot.ai/blog/natural-language-processing/...
znat

Ini tampaknya menggunakan metode "kantong kata" yang saya sebutkan dalam pertanyaan saya. Pada dasarnya tambahkan saja vektor kata dalam kalimat. Itu tidak bisa seperti itu cara kerjanya. Antarmuka Wit dan Nuance menunjukkan bahwa mereka mengenali entitas yang tidak mudah dilakukan oleh kumpulan kata. Juga sekumpulan kata kehilangan semua pemesanan sehingga sesuatu seperti "Setel alarm untuk jam 10 lewat 5" tidak akan bisa dibedakan dari "Setel alarm untuk jam 10 lewat 10". Pasti ada sesuatu yang lebih terjadi.
Timmmm

Ekstraksi entitas adalah masalah lain di mana urutan penting. Jika Anda memiliki banyak data, Rnn akan berfungsi, dalam kumpulan data yang lebih kecil, yang sering di chatbots, bidang acak bersyarat berfungsi dengan sangat baik
znat

Ok, jadi ... Saya mencari jawaban yang lebih rinci daripada "sebuah RNN akan bekerja". Sebagian besar sistem pembelajaran urutan modern menggunakan RNNs sehingga tampaknya diberikan.
Timmmm

Maksudnya adalah tentang makna umum dari kalimat (rata-rata vektor) dan entitas adalah tentang mempelajari konteks (kata-kata sekitarnya) di mana mereka muncul. Rnn atau CRF hanyalah algoritma yang dapat digunakan karena mereka belajar dari urutan. Jika Anda ingin mempelajari secara detail, lihat kode sumber Rasa
znat

Jawaban:


4

Meskipun tidak secara langsung menjawab pertanyaan Anda, Anda mungkin tertarik dalam bidang menjawab pertanyaan otomatis . Untuk menjawab pertanyaan teks bahasa alami, pertanyaan itu harus dipahami terlebih dahulu, yang tumpang tindih dengan masalah Anda.

Sumber daya yang baik adalah kursus oleh Jurafsky dan Manning . Khususnya bagian tentang semantik dan menjawab pertanyaan dapat membantu dengan apa yang Anda cari. Ada video ceramah yang menyertai yang tersedia di youtube di sini .


Saya menemukan bagian pertama dari jawaban Anda sangat lucu namun informatif.
Diego

Mungkin ini akan lebih baik sebagai komentar karena, seperti yang Anda akui, itu tidak menjawab pertanyaan.
kbrose

2

Posting ini memiliki pendekatan. Pada dasarnya mereka menggunakan sekumpulan kata - mereka mengonversi kata menjadi vektor jarang dan kemudian menjumlahkannya.

Tampaknya berfungsi dengan cukup baik tetapi satu kelemahan utama adalah jawabannya tidak tergantung pada urutan kata, sehingga Anda tidak dapat melakukan pertanyaan seperti "Berapa kilogram dalam satu pon" kecuali jika Anda membuat case khusus untuk mereka.

Namun saya melakukan teks dengan Alexa dan itu cukup tidak sensitif terhadap perubahan urutan kata jadi mungkin mereka memang menggunakan sesuatu yang serupa.


Penasaran - apa keuntungan yang dimiliki vektor-vektor yang lebih sedikit daripada Naif Bayesian? Keduanya bagi saya memecahkan masalah yang terpisah secara linear dengan asumsi bag-of-words yang naif
Angad
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.