Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 3
Регистрация: 17.09.2015
Сообщений: 29

Телефонный бот

09.02.2023, 09:58. Показов 1085. Ответов 9

Студворк — интернет-сервис помощи студентам
Задача: сделать простой телефонный бот.
Преобразование аудио в текст будет реализовываться через Yandex SpeechKit.
Основная проблема: как из текста выявить намерение собеседника.

Простой пример:

Ниже идет список фраз, которые нужно идентифицировать как "Приветствие":
Здравствуйте
Здрасте
Здрасте, Сергей
Привет
Добрый день
Я Вас приветствую
...

Ниже идет список фраз, которые нужно идентифицировать как "Положительный", "Отрицательный", "Неуверенно положительный", "Неуверенно отрицательный" и "неопределенный" ответ на вопрос
Да "Положительный"
Конечно, да "Положительный"
Нет "Отрицательный"
Не в коем случае "Отрицательный"

Скорее всего, нет "Неуверенно отрицательный"

Возможно "Неуверенно положительный"
Может быть "Неуверенно положительный"

Не сейчас "неопределенный"
...



Сейчас копаю в сторону NLP и NER. В частности разбираюсь с библиотекой Natasha.
Интересуют возможные варианты решения поставленной задачи. Язык программирования не важен, важен сам концепт и инструменты для реализации подобной задачи.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2023, 09:58
Ответы с готовыми решениями:

Бот Анфиса и бот Алиса хотят сыграть во что-нибудь по сети
Бот Анфиса и бот Алиса хотят сыграть во что-нибудь по сети. Каждая из них составила список игр, в которые она умеет играть. Списки, конечно...

Телефонный справочник
Прога читает из файла, есть поиск по имени и по адресу. Никак не могу реализовать поиск по номеру. Помогите пожалуйста. Вот код: ...

Телефонный справочник
Напишите приложение "Телефонный справочник", позволяющее создавать список абонентов, просматривать список, удалять и изменять записи,...

9
0 / 0 / 0
Регистрация: 18.04.2019
Сообщений: 32
10.02.2023, 01:10
kandiral, подключаюсь к данной теме, решаю задачу аналогичного характера еще большей сложности с извлечением переменных и алгоритмов из сложных текстов, возможно, мой опыт окажется полезен. Могу быть некорректен в терминах.

Самым топорным вариантом будет большая база всевозможных вариантов ответа + корректировка синонимов + расстояние Левенштейна. Справедливости ради, как минимум на первом проходе поиск типичных вариантов имеет смысл.

Даже не самые сырые боты имеют свойство переспрашивать в духе "вы сказали [результат распознавания], это верно?" психологически вынуждая пользователя дать более простой триггер.

Вот самое сложное с чем сталкивался, так это критерии ответа, ведь ответы и вовсе могут быть не в попад, и могут содержать стихотворения Пушкина, так что база ложных ответов так же имеет место быть. Это больше типично для жирных баз данных и машинного обучения. В какой-то мере это отсеивается по ключевым словам, точнее, их отсутствию, примерное содержание можно идентифицировать по шаблонам, лично я использую что-то вроде последовательностей частей речи для идентификации присвоения переменных и алгоритмов.

Так или иначе, это скорее всего будет из себя представлять комплекс решений в очереди понижения надежности.
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
10.02.2023, 13:29
Цитата Сообщение от Хостес Посмотреть сообщение
большая база всевозможных вариантов ответа
Если идти этим путем, то поможет подход, напоминающий регулярные выражения, но свой.

Воспользуемся синтаксисом пайтона:

Фраза из одного слова:
Code
1
2
3
4
5
6
приветствие
  салям
  гамарджоба
  хао
  при||вет|ветик|ветствую
  здра||вствуй|вствуйте|сте
Фраза из двух слов:
Code
1
2
3
4
5
6
имя
  Кол|я|ян|юня|юнчик
  Пет|я|тр|труша|трушка|трюня
 
приветствие2
  <приветствие>&<имя>
& -- означает, что понятия <приветствие> и <имя> могут быть переставлены местами

Далее нужно будет разработать парсер, который такое представление слов и фраз
будет переводить в конечный автомат, потому что на полном переборе всех возможных фраз бот сдохнет.
0
0 / 0 / 0
Регистрация: 18.04.2019
Сообщений: 32
10.02.2023, 15:49
Цитата Сообщение от vantfiles Посмотреть сообщение
КодВыделить код
приветствие
салям
дамарджоба
хао
при||вет|ветик|ветствую
здра||вствуй|вствуйте|сте
Алгоритм для построения подобных конструкций из словарей синонимов/вариантов прост как палка, да и многие алгоритмы поиска с отсортированными данными оптимизированы для таких случаев.

Цитата Сообщение от vantfiles Посмотреть сообщение
& -- означает, что понятия <приветствие> и <имя> могут быть переставлены местами
Далее нужно будет разработать парсер, который такое представление слов и фраз
будет переводить в конечный автомат, потому что на полном переборе всех возможных фраз бот сдохнет.

Отчасти верно, но есть исключения. На мой взгляд, наибольшую проблему представляют случаи, когда форма ответа радикально отличается от ожидаемой. Но это зачастую ставит в ступор не то что конечный автомат или ИИ, но и человека.
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
10.02.2023, 22:51
Цитата Сообщение от Хостес Посмотреть сообщение
прост как палка
Цитата Сообщение от Хостес Посмотреть сообщение
из словарей синонимов/вариантов
Приведёте пример?
0
0 / 0 / 0
Регистрация: 18.04.2019
Сообщений: 32
10.02.2023, 23:24
Цитата Сообщение от vantfiles Посмотреть сообщение
Приведёте пример?
Контейней MAP из стандартной сишной библиотеки. В принципе, быстрее, чем разбор по всем правилам и исключениям русского языка, т.к отсортирован по ключу.
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
11.02.2023, 14:34
Цитата Сообщение от Хостес Посмотреть сообщение
Контейней MAP из стандартной сишной библиотеки.
Ну он же не резиновый.
Да, для бота типа "Буратино с коротенькими мыслями" это подойдет.
Но если подходить серьезно к задаче - КА.
0
0 / 0 / 0
Регистрация: 18.04.2019
Сообщений: 32
11.02.2023, 17:58
Цитата Сообщение от vantfiles Посмотреть сообщение
Ну он же не резиновый.
Да, для бота типа "Буратино с коротенькими мыслями" это подойдет.
Но если подходить серьезно к задаче - КА.
Теоретически, для всего русского словаря такая БД будет занимать 40-120 мегабайт ОЗУ. Немного для современности, но это уже не по теме, это лишь пример и суть не в этом.
Просто любым способом перегоняем синонимы/формы слов/словосочетания в токены по типу "привет, да" или "конечно, добрый день" в токены [HELLO, YES]/[YES, HELLO] и определение таких последовательностей как триггера. Вычленить эти последовательности из контекста немного отдельная задачка.

Как я понимаю, у ТС какой-то конкретный бизнес-проект, потому имеет смысл читать статистики и исследования по соответствующей теме, так можно определить самые частые ответы и даже самый простой алгоритм даст 90% точность. Нравится, не нравится, но одних навыков программирования в таком случае недостаточно. Как и одного универсального алгоритма. Потому предалагаю очередь из алгоритмов с подсчетом вероятности ошибки, начиная от описанного примитива, и заканчивая вопросом бота: "Это означает да или нет?" с перезапуском цикла, в случае высокого значения ошибки, при оценке от основных алгоритмов, что так же является рекомендацией в рамках бизнес-решения. Такой вот концепт, реализацию в мелких деталях на данный момент не обсуждаю.

Где-то в стопке порядка данных алгоритмов и будет находиться более "умный" (не в отрицательном смысле) алгоритм, к которому вы склоняете. Даже если ТС удастся реализовать достаточно высокую точность - предложенные мною решения смогут подстраховать.
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
11.02.2023, 18:51
Цитата Сообщение от Хостес Посмотреть сообщение
для всего русского словаря такая БД будет занимать 40-120 мегабайт ОЗУ
а два терабайта не желаете?
Цитата Сообщение от Хостес Посмотреть сообщение
Как я понимаю, у ТС какой-то конкретный бизнес-проект,
Да, подробности хотелось бы прояснить, конечно, что же хочет ТС.
0
 Аватар для vantfiles
1018 / 1914 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
12.02.2023, 05:10
Цитата Сообщение от vantfiles Посмотреть сообщение
а два терабайта не желаете?
загнул. гигабайта же конечно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2023, 05:10
Помогаю со студенческими работами здесь

Телефонный справочник
Приветствую! Помогите горе-студенту сомнительного учебного заведения, пожалуйста. Нужно на Visual Prolog сделать следующее: ...

Телефонный справочник на C++
С помощью вектора &lt;map&gt;

Телефонный справочник
Помогите, пожалуйста, написать программу. Я запуталась в ее написании( Требования к программе: 1) При запуске программы (скрипта),...

Телефонный справочник
Помогите пожалуйста решить задачу! Напишите программу, которая имитировала бы работу простого телефонного справочника. В первой строке...

Телефонный справочник
#include &lt;iostream&gt; #include &lt;time.h&gt; using namespace std; #pragma warning(disable:4996) // макроопределения #define ROW ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru