Як працюють «розпізнавачі намірів»?


11

Alexa Amazon , Mix Nuance's Mix і Facebook Wit.ai використовують подібну систему, щоб вказати, як перетворити текстову команду в наміри - тобто те, що комп'ютер зрозумів би. Я не впевнений, що це за "офіційна" назва, але я називаю це "визнанням наміру". В основному це спосіб перейти від "будь-ласка, встановіть моє світло на 50% яскравості" до lights.setBrightness(0.50).

Спосіб їх визначення полягає в тому, щоб розробник надав перелік "зразкових висловлювань", які пов'язані з наміром і необов'язково позначені місцями "об'єктів" (в основному параметрами). Ось приклад від Wit.ai:

Приклад дотепності

Моє запитання: як працюють ці системи? Оскільки вони всі дуже схожі, я припускаю, що є певна робота, яку вони використовують. Хтось знає, що це?

Цікаво Houndify використовує іншу систему , яка більше схожа регулярних виразів: ["please"] . ("activate" | "enable" | "switch on" | "turn on") . [("the" | "my")] . ("lights" | "lighting") . ["please"]. Я припускаю, що він інтегрований у пошук променя їх системи розпізнавання голосу, тоді як у Alexa, Wit.ai та Mix, мабуть, є окремі системи Speech-> Text і Text-> Intent.

Редагувати: Я знайшов вихідну точку - Механізм взаємодії людини - робота за допомогою неформальних голосових команд . Для порівняння висловлювань використовується те, що називається "Латентний семантичний аналіз". Я буду читати про це. Принаймні, це дало мені вихідну точку в мережі цитування.

Редагування 2: LSA по суті порівнює слова, що вживаються (Мішок слів) у кожному абзаці тексту. Я не бачу, як це може працювати дуже добре для цього випадку, оскільки він повністю втрачає порядок слів. Хоча, можливо, порядок слів не має великого значення для таких типів команд.

Редагувати 3: Приховані теми моделей Маркова виглядають так, що можуть бути цікавими.


Це повідомлення пояснює пильний класифікацію в деталях: mrbot.ai/blog/natural-language-processing / ...
znat

Схоже, використовується метод "мішок слів", про який я згадував у своєму запитанні. В основному просто складіть слова вектори в реченні. Це не може бути, як це працює. Інтерфейси Віта і Нюанса показують, що вони розпізнають сутності, котрий пакет слів не може легко зробити. Також мішок слів втрачає всі замовлення, тому щось на кшталт "Встановити будильник на 10 минулих 5" не відрізнятиметься від "Встановити будильник на 5 минулих 10". Має бути щось більше.
Тимммм

Вилучення сутності - це ще одна проблема, коли важлива послідовність. Якщо у вас багато даних, Rnn буде працювати, у менших наборах даних, які часто бувають у чатах, умовні випадкові поля працюють дуже добре
знать

Гаразд, так ... Я шукаю більш детальну відповідь, ніж "RNN буде працювати". Більшість сучасних систем навчання послідовності використовують RNN так, що здається заданим.
Тиммммм

наміри стосуються загального значення речень (середня кількість векторів), а сутності - про вивчення контексту (навколишніх слів), у якому вони знаходяться. Rnn або CRF - це лише алгоритми, які можна використовувати, оскільки вони вчаться з послідовностей. Якщо ви хочете детально дізнатися, загляньте у вихідний код Rasa
знать

Відповіді:


4

Хоча не відповідає безпосередньо на ваше запитання, вас може зацікавити сфера автоматизованого відповіді на запитання . Щоб відповісти на текстові запитання на природній мові, їх слід спочатку зрозуміти, що перегукується з вашою проблемою.

Хороший ресурс - курс Юрафського та Меннінга . Зокрема, розділи про семантику та відповіді на запитання можуть допомогти у тому, що ви шукаєте. Є супроводжуючих лекція відео є на YouTube тут .


Я вважаю першу частину вашої відповіді дуже смішною, але інформативною.
Дієго

Можливо, це було б краще як коментар, оскільки, як ви визнаєте, це не відповідає на питання.
kbrose

2

Ця посада має підхід. В основному вони використовують мішок слів - вони перетворюють слова на розріджені вектори і потім додають їх.

Здається, він працює досить добре, але головним недоліком є ​​відповідь, не залежна від порядку слів, тому ви не можете робити запити на зразок "Скільки кілограмів у фунті", якщо ви їх окремо не зафіксуєте.

Однак я писав текст з Alexa, і він досить нечутливий до зміни порядку впорядкування, тому, можливо, вони використовують щось подібне.


Цікаво - яку перевагу мають розріджені вектори перед наївним байєсом? Обидва мені вирішують лінійно відокремлювані задачі з припущенням про наївну сумку слів
Angad
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.