Лаборатория нейронных систем и глубокого обучения МФТИ вот уже больше года делает DeepPavlov — открытую библиотеку для создания диалоговых систем. Она содержит набор претренированных компонент для анализа языка, с помощью которых можно эффективно решать задачи бизнеса.
Например, организовать ответы на часто задаваемые вопросы клиентов. Сделать это через колл-центр, виджет на сайте или соцсети, наняв сотрудников — дело нехитрое. Актуальная задача — оптимизировать процесс, чтобы он осуществлялся автоматически, с минимальными погрешностями, и еще и в удобном пользовательском интерфейсе. Например, в голосовом помощнике «Алиса» от «Яндекса».
В этой статье мы хотим рассказать, как эффективно решить задачу ответов на FAQ с помощью обработки естественного языка и как интегрировать решение в «Алису».
Классификация текстов и как ее делать
Создание вопрос-ответного навыка на основе библиотеки DeepPavlov
ПОДСОЗНАНИЕ ГОТОВО ОТВЕТИТЬ НА ЛЮБОЙ ВОПРОС ПРЯМО СЕГОДНЯ! ТЕХНИКА.
Установка библиотеки DeepPavlov
Запуск навыка на «Алисе»
Заключение
Классификация текстов и как ее делать
Проблему поиска близкого к заданному вопроса из готового сета пар «вопрос-ответ» решают алгоритмы определения семантической близости / текстовой классификации.
Чтобы решить эту проблему «на производстве», есть два пути: можно нанять NLP-специалиста в штат, а можно отдать решение на аутсорс.
Минусы обоих вариантов: 1) необходимость сбора данных, 2) бесконечные итерации тренировки моделей и измерения качества, 3) серьезные требования к квалификации разработчиков. Даже процесс интеграции готового решения обработки языка — непростая задача, не говоря уже о создании его с нуля. Зарубежные облачные решения (Google Assistant или Microsoft Cortana) предлагают комплексное решение проблемы классификации текста (DialogFlow, Azure Bot Service), но остаются вопросы с масштабированием, привязкой к платным API-сервисам и поддержкой русского языка.
Но ура — есть альтернатива: можно использовать открытую программную библиотеку, которая сильно упростит создание решения для ответа на FAQ на русском языке и интеграцию его в голосовой помощник.
Создание вопрос-ответного навыка на основе библиотеки DeepPavlov
DeepPavlov — как раз такая библиотека. Она содержит набор претренированных компонент для анализа языка, включая компоненты текстовой классификации. Подробнее о разных компонентах DeepPavlov можно почитать в справке.
Работа с DeepPavlov не требует от разработчика специальных навыков, библиотека бесплатна и дает широкие возможности для тонкой настройки.
Все инструкции по созданию навыка на основе базы знаний вы можете найти в этом туториале. Мы рекомендуем переписать код из туториала в отдельный скрипт и запускать навык именно из скрипта.
Установка библиотеки DeepPavlov
Для начала установите Python 3.6 и активируйте среду разработки. Затем установите DeepPavlov.
НЕЙРОСЕТЬ, КОТОРАЯ ОТВЕТИТ НА ЛЮБОЙ ВОПРОС || Аналог ChatGPT
source activate py36 pip install -q deeppavlov
Разработка навыка
Навыком (skill) в DeepPavlov называется сущность, которая независимо от функционала (text classification, open-domain question answering и др.) имеет унифицированный формат ввода и вывода. Навыки созданы для того, чтобы их можно было скомпоновать в единый стек простой диалоговой системы, которая при получении запроса берет ответ из навыка с наивысшей уверенностью (confidence).
Создайте объект класса SimilarityMatchingSkill, который отвечает на запрос пользователя на основе списка часто задаваемых вопросов.
from deeppavlov.contrib.skills.similarity_matching_skill import SimilarityMatchingSkill faq = SimilarityMatchingSkill(data_path = ‘http://files.deeppavlov.ai/faq/dataset_ru.csv’, x_col_name = ‘Question’, y_col_name = ‘Answer’, save_load_path = ‘./model’, config_type = ‘tfidf_autofaq’, edit_dict = <>, train = True)
У объекта класса SimilarityMatchingSkill — следующие параметры:
- data_path — путь к csv файлу с данными (разделитель запятая)
- x_col_name — имя колонки с вопросами в csv файле (Question, по умолчанию)
- y_col_name — имя колонки с ответами в csv файле (Answer, по умолчанию)
- config_type — название конфигурации, которую вы хотите использовать для классификации. Список всех конфигураций.
- edit_dict — `dict` с параметрами, которые необходимо переписать в конфигурации определенной config_type
- save_load_path — путь куда сохранить натренированную модель
- train — тренировать ли модель
faq = SimilarityMatchingSkill(save_load_path=’./model’)`.
Класс SimilarityMatchingSkill упрощает доступ к компонентам классификации текста. Но если есть часть конфигурации, которую вы хотите изменить, можно сделать это, определив параметр edit_dict. Объект класса SimilarityMatchingSkill (как и любой навык) принимает на вход три параметра: список предложений для классификации, список истории запросов и список состояний (в случае SimilarityMatchingSkill два последних могут быть пустыми списками).
faq([‘где будет школа?’],[],[])
Типовая диалоговая система обычно содержит в своем составе несколько навыков. Для демонстрации работы с несколькими навыками мы создадим несколько навыков класса PatternMatchingSkill.
from deeppavlov.skills.pattern_matching_skill import PatternMatchingSkill hello = PatternMatchingSkill(responses=[‘Привет’, ‘Приветствую’], patterns=[‘Привет’, ‘Здравствуйте’]) bye = PatternMatchingSkill(responses=[‘Пока’, ‘Всего доброго’], patterns=[‘Пока’, ‘До свидания’]) fallback = PatternMatchingSkill(responses=[‘Пожалуйста перефразируйте’], default_confidence = 0.3)
PatternMatchingSkill — это класс простого навыка, который вызывается, когда запрос пользователя совпадает с одним из элементов списка patterns и отвечает случайным элементам списка responses с уверенность default_confidence. Вы можете вручную настроить параметр default_confidence для того, чтобы приоритезировать ответы навыков.
Последний шаг — объединить навыки в агент и настроить параметр выбора навыка. Параметр `HighestConfidenceSelector` определяет, что будет вызван навык с наивысшей уверенностью (confidence).
from deeppavlov.agents.default_agent.default_agent import DefaultAgent from deeppavlov.agents.processors.highest_confidence_selector import HighestConfidenceSelector agent = DefaultAgent([hello, bye, faq, fallback], skills_selector=HighestConfidenceSelector())
Далее запустите сервер с указанием пути для запросов `endpoint=’faq’` и порта подключения `port=5000`
from deeppavlov.utils.alice import start_agent_server start_agent_server(agent, host=’0.0.0.0′, port=5000, endpoint=’/faq’)
Обратите внимание, что «Яндекс.Диалоги» в качестве Webhook URL требует указывать сервер с внешним IP-адресом и доступом по протоколу https. Для быстрого прототипирования вы можете использовать Ngrok — он позволяет создавать туннель для доступа к вашему серверу с DeepPavlov в локальной сети. Для этого запустите
ngrok http 5000
на вашем сервере с DeepPavlov. В ответ на это будет создано два туннеля, по одному на протоколы http и https. Скопируйте адрес туннеля для https, добавьте к линку эндпоинт /faq, итоговый линк будет Webhook URL для нашего «Яндекс.Диалога».
Запуск навыка на «Алисе»
Чтобы протестировать взаимодействие с платформой «Яндекс.Диалоги», зайдите на dialogs.yandex.ru/developer и создайте новый диалог. Задайте уникальные название и активационное имя. В качестве Webhook URL укажите полученный ранее линк. Сохраните изменения. Для взаимодействия с навыком перейдите на вкладку «Тестирование».
Ну вот, теперь вы знаете, как использовать модели классификации текста из библиотеки DeepPavlov для создания вопрос-ответного бота, как осуществлять быстрое прототипирование навыков с помощью DeepPavlov и подключать их к «Алисе».
Кстати, интерфейсы подключения к Amazon Alexa и Microsoft Bot Framework в нашей библиотеке тоже реализованы.
Будем рады обратной связи в комментариях. А любые вопросы по DeepPavlov вы можете оставлять на нашем форуме.
- мфти
- лаборатория нейронных систем мфти
- deep learning
- ipavlov
- deeppavlov
- голосовые помощники
- алиса
- яндекс.диалоги
- нейросети
- nlp (natural language processing)
- машинное обучение
- навыки алисы
- навыки ии
- faq
- чат-боты
- Блог компании Московский физико-технический институт (МФТИ)
- Машинное обучение
- Искусственный интеллект
- Natural Language Processing
Источник: habr.com
5 сайтов для получения ответов на вопросы
Интернет – это огромный ресурс знаний и информации, в котором можно найти практически все. Однако часто бывают случаи, когда вы не можете найти ответ на вопрос. Возможно, это вопрос, требующий специальных знаний или опыта.
К счастью, существуют сайты, которые помогут вам найти информацию и мнения людей по той или иной теме, а также помогут найти экспертов в различных областях. Вот некоторые из лучших сайтов, на которых можно задать вопрос онлайн и получить ответы от реальных людей.
Otvetynavopros.ru
На этом сайте пользователи могут найти решение любых проблем, связанных с последними событиями и новостями современного мира, обсудить вопросы культуры и образования. Здесь можно не только поговорить на интересующие вас темы и задать вопросы, но и поделиться своими знаниями и опытом.
“Ответы на вопрос” быстро завоевывает репутацию сайта, который решает самые сложные проблемы и с каждым днем знакомит все большее количество людей с новыми полезными решениями. Независимо от того, какая категория вас больше всего интересует, вы найдете нужную информацию в каждой рубрике.
Не пропустите: 50 фактов об университетах Канады
Чтобы зарегистрироваться на сайте и начать вносить свой вклад, вам нужно сделать совсем немного – просто задавать свои вопросы и отвечать на вопросы, заданные другими. В случае если вам нужна помощь в том, как задать вопрос или как лучше написать ответ, вы всегда можете посетить раздел “Инструкции” или связаться с администратором сайта в разделе “Обратная связь”.
Ответы Mail.Ru
Это была первая служба вопросов и ответов, запущенная в Рунте, и она пользуется большой популярностью. Первоначально вы можете задавать до 5 вопросов в день другим пользователям. Это количество увеличивается по мере того, как вы отвечаете на вопросы и выполняете другие задания в системе.
Вы можете задавать стандартные вопросы и проводить опросы, а сообщество может голосовать за решения, предложенные участниками.
WikiAnswers
Wiki Answers содержит огромную базу вопросов и ответов, разделенных для удобства на категории. Вы можете размещать вопросы на главной странице, а также просматривать новые темы и новые ответы. Вы также можете отвечать на вопросы, размещенные другими, и большинство ответов модерируется, чтобы вы увидели наиболее подходящие и релевантные ответы.
Не пропустите: DiplomConsult — квалифицированная помощь студентам
Справочная библиотека поможет вам найти необходимые ссылки по выбранным темам. Чтобы получать уведомления по электронной почте о том, что на вопрос дан ответ, вы можете зарегистрироваться на сайте.
Quora
Quora – один из самых популярных мировых форумов по обмену информацией. На форуме тонны вопросов и значительное количество людей, готовых на них ответить. Кроме того, в обсуждении участвуют многие знаменитости.
Любой участник может задать вопрос, который может быть направлен к конкретному эксперту сайта. Пользователи и администраторы совместно работают над созданием исчерпывающих и энциклопедических ответов на популярные темы в виде вики-статей.
FunAdvice
FunAdvice предлагает уникальный опыт, объединяющий вопросы, ответы и фотографии, чтобы люди могли спросить совета, поделиться информацией и найти друзей. Сайт может показаться довольно банальным, но на самом деле он набирает обороты как один из самых быстрорастущих сайтов вопросов и ответов за последние месяцы.
Дорогие Друзья! Подпишитесь на нашу группу ВКонтакте, там мы публикуем самые интересные факты о городах и странах мира. Вот один из них:
ЧТО ЕЩЕ ПОЧИТАТЬ:
- 7 лучших отмеченных наградами дизайнов сайтов
- 15 интересных сайтов, чтобы посмеяться в минуты отдыха
- Страны Европы и Азии с самым быстрым интернетом
- Как учиться онлайн во время пандемии?
- ТОП-8 новых техник веб-хакинга 2021 года
- Лучший сайт для просмотра ТВ онлайн
- Runetstores.ru – ваш путеводитель по интернет-магазинам Рунета
Источник: geografishka.ru
Philosopher — сайт, где искусственный интеллект отвечает на жизненные вопросы
Если вы потеряли свой смысл жизни и вам надо найти новый ориентир (по крайней мере хотя бы какой-то), то Philosopher AI это ваш выход. Искусственный интеллект охотно отвечает на любые вопросы, пока они не начнут иметь противоречивые ответы. Об этом передает «Платформа». Создал сервис канадский исследователь Мюрат Айфер.
Искусственный интеллект имитирует философа и умеет рассуждать на те или иные темы. Для его работы достаточно просто задать вопрос и система сгенерирует ответ. Программа постоянно выдает разные ответы — каждый из них уникален.
Искусственный интеллект не работает на базе философских трактатов или иных работ, он просто генерирует похожий ответ, стилизованный под определенное умозаключение. То есть, вы не получите какую-то новую идею, однако это может вас натолкнуть на собственные размышления. Однако, не все вопросы по силам искусственному интеллекту.
Например, он откажется отвечать на вопросы, связанные с религией, политикой или другими чувствительными темами. Также ИИ не ответит на какие-то несерьезные вещи. Программа напишет, что это все глупости и предложит сформировать другой запрос. Спросить у Philosopher AI о чем-то, что вас уже давно беспокоит, можно по ссылке. Если знание английского языка оставляет желать лучшего, переводчики от Яндекс или Google Вам помогут.
Добавьте «Нескучные технологии» в избранные источники
Источник: itcrumbs.ru