Введение

Продолжая наше предыдущее сравнение индийских языков на Dialogflow ES, мы в NeuralSpace расширились до большего количества языков.

В этой статье мы оцениваем службы распознавания речи Google Cloud's Dialogflow ES и NeuralSpace для всех языков, для которых языковая поддержка Dialogflow пересекается с массовым набором данных Amazon, за исключением индийских языков, которые мы сравнивали в предыдущее сравнение.

Мы также сравниваем языковую поддержку обеих платформ, набор функций, пользовательский интерфейс и UX. (Этот раздел остается таким же, как и в предыдущем блоге по бенчмаркингу, за исключением языковой поддержки).

Результаты сравнительного анализа

Мы не хотели бы заставлять вас ждать результатов, так что давайте приступим прямо к делу! В таблице ниже показана точность намерений Dialogflow ES от Google и приложения Language Understanding от NeuralSpace в наборе данных Amazon MASSIVE. Сравниваем языки: африкаанс, армянский, азербайджанский, китайский, датский, голландский, английский, финский, французский, немецкий, греческий, венгерский, индонезийский, итальянский, японский, яванский, корейский, латышский, норвежский, польский, португальский, румынский, русский , словенский, испанский, суахили, шведский, турецкий и вьетнамский.

Как мы упоминали в предыдущем посте, с момента выпуска сообщения в блоге Amazon MASSIVE NeuralSpace работала над улучшением архитектуры приложения Language Understanding. Это привело к дальнейшему улучшению языковой производительности. Как и в прошлый раз, для наших результатов мы попытались сымитировать, как клиент будет использовать нашу платформу. Итак, мы обучили по 5 моделей для каждого языка и выбрали лучшую.

Небольшое примечание о точности намерений для непосвященных:

Чем выше точность, тем лучше!

Как видно выше, NeuralSpace работает лучше для каждого отдельного языка и в среднем на 6,4% лучше, чем Dialogflow, при определении намерений пользователя для языков, которые мы сравнивали выше.

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

Сравнение функций

Давайте подробно рассмотрим возможности Dialogflow (или их отсутствие) и сравним их с NeuralSpace. Помимо раздела языковой поддержки, сравнение других функций такое же, как и в предыдущем блоге, в котором мы сравнивали две платформы для индийских языков.

Распознавание объектов

Сразу же вы, должно быть, заметили, что у нас нет строгих и частичных оценок F1 в нашей сравнительной таблице выше. Причина этого в том, что тегирование сущностей (где мы можем ввести пример предложения и получить предложение с автоматически помеченными сущностями в качестве вывода) недоступно в Dialogflow. При предоставлении обучающих примеров объекты могут быть аннотированы. Но при запросе тестового примера через их API и пользовательский интерфейс можно получить только намерение.

Однако у нас в NeuralSpace есть поддержка тегов сущностей, и этого можно добиться довольно просто, просто обучив данные с аннотированными сущностями.

Обучаемые объекты

Мы подозреваем, что сущности в Dialogflow не поддаются обучению и используют только поиск на основе регулярных выражений и синонимов. Однако есть набор предварительно обученных сущностей, но это все. Но из-за отсутствия объяснений в документации этот вывод неубедителен.

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

Импорт набора данных

Одна из основных функций NeuralSpace, о которой мы хотели бы постоянно напоминать вам, — это «Нажми, тренируйся, расслабься»! В этом ключевую роль играет наша функция Импорт набора данных.

Функция Импорт позволяет напрямую импортировать популярные наборы данных в ваши проекты, не используя код. Без необходимости самостоятельно преобразовывать данные в требуемые форматы, вы можете легко импортировать данные одним нажатием одной кнопки! Набор данных Amazon MASSIVE, на котором мы провели это сравнительное сравнение, был доступен для импорта в Студию данных NeuralSpace практически сразу после того, как он стал общедоступным. Это на один шаг меньше для вас! Однако аналогичная функция недоступна в Dialogflow.

Страница загрузки набора данных Language Understanding на платформе NeuralSpace.

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

Вспомогательные документы и другие материалы

Страница документов по пониманию языка на платформе NeuralSpace.

NeuralSpace имеет простую для понимания документацию, которая также очень удобна для начинающих. Мы подготовили краткое руководство, которое поможет вам начать работу всего за несколько минут, с примерами использования. Мы также предоставили Colab Notebooks и Postman Collection, где вы можете попробовать что-то, даже не делая ничего на своем локальном компьютере. Вдобавок ко всему, мы сделали много быстрых и удобных учебных видео, которые помогут вам сориентироваться и добиться цели! Мы считаем, что все это делает платформу NeuralSpace намного проще в использовании по сравнению с Dialogflow.

Чат-боты

В то время как NeuralSpace как платформа NLP предоставляет современные сервисы NLU, которые могут стать мозгом вашего чат-бота (или любого другого приложения, которое вы пожелаете), вам придется использовать такую ​​​​инфраструктуру, как Rasa (с открытым исходным кодом). ), который легко интегрируется с нашими API. С другой стороны, Dialogflow — это полное решение для создания чат-бота, даже если у него не очень умный мозг. 😉 При этом время обучения на Dialogflow для NLU очень мало, всего несколько секунд.

Языковая поддержка

Dialogflow UI и препятствия UX

Мы позаимствовали лучшее (или в данном случае худшее?) из предыдущего блога. Мы не постеснялись бы сказать, что Dialogflow на самом деле не имеет самого интуитивно понятного или самого удобного для новичков пользовательского интерфейса. История UX также похожа: любому разработчику требуется некоторый опыт работы с платформой, чтобы использовать ее. Мы разделили все трудности использования Dialogflow на следующие пункты (их довольно много, поэтому нам пришлось так сильно задержать этот блог):

Документы

Страница документов Dialogflow с множеством параметров только для одного раздела и одной вкладки.

Начнем с документации, с которой любой разработчик тоже начал бы сначала. Проще говоря, документы сложны. В документах есть 3 раздела: один общий для Dialogflow ES и Dialogflow CX, один только для ES и один только для CX. Но есть некоторое совпадение между всеми этими тремя разделами. В каждой есть несколько вкладок, а также несколько подразделов и страниц, к которым можно перейти с боковой панели. Чтобы разобраться даже в структуре документации, требуется расшифровка, что само по себе является задачей. Если это еще не все, как ни странно, при переходе на определенные вкладки документы автоматически переключаются между разделами!

Файл загружен

После того, как все это выяснено и пройдено этапы настройки, на странице быстрого запуска показаны различные элементы (такие как сущности, намерения и т. д.) и как использовать пользовательский интерфейс для добавления примеров. Таким образом, мы попытались использовать пользовательский интерфейс. Но, конечно, вручную создавать каждый пример было нецелесообразно. В пользовательском интерфейсе была возможность экспортировать текущие данные тренировки, а также импортировать их из zip-файла. Мы преобразовали все необходимые данные в формат, аналогичный экспорту. А затем импортировал zip со всеми обучающими примерами, намерениями и сущностями. К сожалению, с помощью этого метода мы смогли получить только намерения и примеры для них, но не сущности.

Загружать данные в Dialogflow через пользовательский интерфейс.

На другой странице была опция загрузки файла объекта, для которой требовался отдельный csv для всех типов объектов. Но даже загрузив их все, мы поняли, что в обучающих примерах отсутствуют аннотации, и единственный способ их исправить — делать вручную.

Загружайте объекты в Dialogflow через пользовательский интерфейс.

Использование API

После всех этих проб и ошибок нам пришлось снова обратиться к документации за правильным решением и способом загрузки всех обучающих примеров в правильном формате. На вкладке «Справочник» находилась документация по всем API, которые мы затем попытались внедрить. Но и они были не менее сложными. Для некоторых API, чтобы даже определить требуемый формат тела запроса json, нам приходилось просматривать до 6 взаимосвязанных страниц для каждого API! Собрав информацию со всех этих страниц, мы, наконец, смогли создать собственный образец тела запроса API, поскольку ни один из них не был предоставлен.

Страница документации для пакетного обновления Intents API. Нам потребовалось много времени, чтобы понять, что IntentBatch можно щелкнуть и что он проходит 4 страницы в глубину, чтобы добраться до самого внутреннего объекта.

Затем мы преобразовали все данные в эти необходимые форматы, которые были немного сложными и, на наш взгляд, совершенно излишними.

Пример фрагмента тела запроса API. Обратите внимание, сколько слоев и как каждый пример должен быть разбит на несколько частей для аннотации.

Проблемы с аутентификацией

Использование API было не таким простым, как запрос POST/GET и создание тела запроса. Дальше было несколько шагов:

  • API-интерфейсы сначала должны были быть включены для каждого проекта на странице библиотеки API-интерфейсов.
  • Затем нужно было сгенерировать ключ на странице API и служб.
  • Необходимо было создать учетную запись службы с соответствующими разрешениями на использование API.
  • Его ключи нужно было сгенерировать, загрузить и установить в качестве переменной среды на странице IAM и Admin.

Теперь все это происходит из разных частей консоли Google Cloud, которая становится довольно грязной, и вы, скорее всего, заблудитесь, если вы еще не знакомы с ней.

Отсутствие примеров вызвало здесь больше проблем, поскольку нам было трудно понять, как проходить этапы аутентификации при вызове API. Оказалось, что в правой части страницы API был проводник API, который только в полноэкранном режиме отображал запрос cURL. Используя это, мы, наконец, смогли разобраться и запустить API.

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

Заключение

В завершение сравнения NeuralSpace и Dialogflow мы считаем, что наше решение для понимания языка без кода, а также наши функции очень просты в использовании и обеспечивают большую ценность. Кроме того, наша вспомогательная документация относительно проста для понимания.

В сочетании с превосходной производительностью модели для всех протестированных нами языков, которая в среднем на 6,4 % лучше для неиндийских языков и на 9,2 % лучше. для индийских языков мы считаем, что предлагаем очень конкурентоспособную альтернативу Dialogflow для всех ваших потребностей в понимании языка.

Мы надеемся, что этот блог предоставил вам ценную информацию и поможет вам выбрать лучший сервис NLU, не зависящий от языка, для вашего конкретного случая использования.

В NeuralSpace мы будем рады связаться с вами, если вы хотите получить демонстрацию или задать вопросы или оставить отзыв, чтобы помочь нам улучшить наш продукт. Мы стремимся предоставить мощный ресурс для ускорения ваших конвейеров и предоставления следующему миллиарду пользователей возможности использовать Интернет на языке и в режиме по своему выбору. Вместе мы можем внести свой вклад в инженерное и исследовательское сообщество.

Попробуйте услугу Понимание языка от NeuralSpace прямо сейчас.

Ознакомьтесь с нашей Документацией, чтобы узнать больше о платформе NeuralSpace и ее различных услугах.

Присоединяйтесь к сообществу Slack NeuralSpace, чтобы общаться с нами. Кроме того, получайте обновления и обсуждайте темы НЛП для языков с низким уровнем ресурсов с другими разработчиками и исследователями.