Взаимодействие с предложениями | Плохая часть моего опыта работы с чат-ботом

NLP Тенсент

Автор: Ли Мин (李明)

Основатель и генеральный директор Maodou.com, магистр компьютерных наук Университета Цинхуа. В 2003 году он основал Embedded Technology, компанию по обучению встраиваемым операционным системам. Maodou стремится предоставлять услуги технической поддержки для предпринимателей, занимающихся контентом, уделяя особое внимание интеграции и взаимодействию мини-программ Chatbot и WeChat, а также предоставляя пользователям беспрепятственный опыт на основе технологии NLP в группах WeChat. Он получил миллионы ангельских инвестиций от Tsinghua XLab/DNA Fund.


Bot Friday - Сеанс салона 2, обмен

The Bad Part of My Chatbot Experience

2019-07-26 В Пекине Tencent,limingth


Какая технология НЛП лучшая?

фон спроса

Определение времени, темы и места из предложения является требованием, вытекающим из проекта, над которым мы работаем, Edamame Classroom После добавления помощника Edamame Classroom в качестве друга WeChat отправьте предложение для создания класса через напоминание этого чат-бота.


Первоначально это должно было быть одним из самых распространенных требований в NLP для проектов Chatbot, особенно время, как быстро получить время, которое лучше всего соответствует человеческому намерению в тексте. Но после поиска НЛП, способного распознавать время, мы не нашли решения, действительно отвечающего нашим потребностям.

Недостатки распространенных решений:

Причастия, содержащиеся в сущности времени, распознаются, но не преобразуются во временные переменные и не могут быть использованы в программе. Например, открытые платформы iFlytek и Baidu.

Хотя некоторые из них могут быть преобразованы во временные переменные, они возвращают несколько сложных результатов в формате json, и вам нужно продолжать писать код для фильтрации и выбора. Например, библиотека NLP, предоставленная Microsoft.

Другие существующие проблемы проявляются в широком использовании регулярного сопоставления при игнорировании семантического анализа контекста. Например, здание № 9 (местоположение) идентифицируется как № 9 (время).

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

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


Исследование открытой платформы искусственного интеллекта

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

iFLYTEK Открытая платформа

лексический анализ:Woohoo. Западная доставка. Только /услуги/...

Извлечение ключевого слова:ву ву ву ву ву ву ву ву ву ву ву


Открытая платформа Baidu

лексический анализ:Love.Baidu.com/Specialty/NLP_Put…


Используемые библиотеки и эффекты

После сравнения и проверки конечная используемая библиотека — это распознаватели Microsoft, которые используются для получения времени из предложения, и BosonNLP, которые используются для получения тем и местоположений. Просто результаты, данные этими двумя, представляют собой json со структурой массива, и необходимо добавить много if-else, чтобы отфильтровать соответствующие ожидаемые результаты.

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

@microsoft/recognizers

Пакет установки npm:Уууу, эта лошадь plus.com/package/@mi…

Возвращаемое значение, данное распознавателями:


BosonNLP

Распознавание именованных объектов:docs.bosonnlp.com/ner.html

Пакет установки npm:Woohoo. Эта лошадь Plus.com/package/dr…

Возвращаемое значение, заданное BosonNLP:


Time-NLP

Библиотека кода:GitHub.com/Момент десятилетия/Тим…

Пакет установки npm:GitHub.com/Джон ущипнуть ебать…

Хотя в итоге мы не использовали chi-time-nlp, а измененный код был прокомментирован позже, я все же хочу использовать этот пример, чтобы проиллюстрировать, как, по моему мнению, выглядит идеальный API. Это первая библиотека, которую я отлаживал и прогонял, а также это самое быстрое решение проблемы.К сожалению, оригинальный автор больше не поддерживает ее, но она все еще имеет следующую демонстрационную ценность.

Идеальный API выглядит так

Искать на первой странице


Простой и понятный интерфейс и возвращаемое значение


Нет необходимости регистрировать ключ/токен


Пример кода автономного тестового вызова


Разверните демонстрационную веб-страницу

В связи с этим вы можете обратиться к Xunfei Open PlatformДемонстрационная страница.


обсуждение открытых вопросов

"Однажды WeChat SDK открывает wechat.say() что делать"

Проект Wechaty существует потому, что WeChat не открывает базовый протокол чата, но на самом деле, помимо WeChat, уже есть много открытых платформ, например, платформа Feishu, запущенная Toutiao, предоставила полный набор открытых платформ.API отправки сообщений бота. Если WeChat также запустит SDK, он может реализовать аналогичный нашему bot.say().здание рухнеткризис. Хотя @zhuohuan сказал, что мы можем добавить новый wechaty-puppet-xxx для подключения к собственному интерфейсу WeChat, чтобы гарантировать, что предыдущее приложение не будет затронуто, но может ли это действительно длиться долго? Меня больше беспокоит, что однажды новое поколение программистов не узнает о существовании Wechay.

«Унифицируйте чат-бота как унифицированную разработку апплета»

Продолжая думать на основе приведенного выше вопроса, появляется все больше и больше платформ чат-ботов, которые предоставляют интерфейс say(), и одна и та же бизнес-логика чат-бота может столкнуться с работой, которую необходимо перенести на разные платформы. Точно так же, как после получения апплета WeChat, вам все еще нужно написать апплет Alipay, апплет Baidu, апплет QQ и т. д. Наконец, студенты, занимающиеся исследованиями и разработками Didi, запустили перекрестное решение.проект хамелеонОбъедините реки и озера, чтобы набор кода мог работать с нескольких концов. В будущем на основе Wechaty будет разработано много чат-ботов, и вскоре всем, кроме платформы WeChat, понадобится решение, которое поддерживает набор кодов для создания нескольких входов на платформу. С тем же успехом мы могли бы назвать его чателеоном (от чат-бот + хамелеон) для этого требования. Этот промежуточный уровень абстракции, объединяющий чат-интерфейсы роботов на основных платформах, чем-то похож на уровень wechaty-puppet. может расти сообщество разработчиков.

«Создайте лучший интеллектуальный интерфейс ИИ для разработки чат-ботов»

Следуя вышеизложенной идее, чат-бот, созданный на BotHub, может нуждаться в наборе интеллектуальных интерфейсов AI в бизнесе, чтобы решить аналогичные требования времени приобретения, такие как maodou-bot, включая лексический анализ и семантический анализ и т. д. Если у каждого бота-разработчика бизнес-логики есть тратить много времени на оценку возможностей базового интерфейса ИИ, что также будет повторяющейся задачей поиска колес. Существует ли сервис интерфейса ИИ, ориентированный на сценарии чата и предоставляющий большинство распространенных интерфейсов ИИ? Назовем его chaty.ai, который может помочь нам реализовать лучший интерфейс parseTime(), нам просто нужно вызвать его для реализации верхнего уровня. уровень бизнес-логики, и он сосредоточен только на поиске или реализации наилучшего алгоритма ИИ для решения необходимой нам проблемы с интерфейсом.

Последняя картинка изображает мой идеальный мир Датун. Это то, что я называюFuture of Chatbot Friday :-O