Google объявили о выпуске двух новых функций в ML Kit: Language Identification и Smart Reply.
Вы можете заметить, что обе эти функции отличаются от существующих API, которые были сосредоточены больше на обработке изображений/видео. Задача ML Kit — предоставить мощные, но простые в использовании API-интерфейсы, позволяющие использовать возможности ML независимо от области. Теперь ML Kit расширен для обработки естественного языка (NLP)!
NLP — это подвид ML, занимающаяся анализом и генерацией текста, речи и других данных на естественном языке. Пока доступно два API: первое помогает определить язык текста, второе генерирует предложения при ответе в чатах. Обе эти функции полностью работают в последней версии ML Kit SDK, для iOS (9.0 и выше) и Android (4.1 и выше).
Генерация предложений при ответе на базе предыдущих сообщений
Новая функция, появляющаяся в чатах, заключается в предоставлении пользователю выбора предлагаемых ответов либо в виде действий над уведомлением, либо внутри самого приложения.
С новым API Smart Reply вы можете быстро добиться того же в своих собственных приложениях. API предоставляет предложения на основе последних 10 сообщений в беседе. Это стейтлес API, Google не хранит историю сообщений в памяти и не отправляет её на сервер.
Google тесно сотрудничали с такими партнерами, как textPlus, чтобы гарантировать нормальную работу Smart Reply.
Добавление Smart Reply в ваше собственное приложение выполняется простым вызовом функции (в этом примере используется Kotlin):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
val smartReply = FirebaseNaturalLanguage.getInstance().smartReply smartReply.suggestReplies(conversation) .addOnSuccessListener { result -> if (result.status == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) { // The conversation's language isn't supported, so the // the result doesn't contain any suggestions. } else if (result.status == SmartReplySuggestionResult.STATUS_SUCCESS) { // Task completed successfully // ... } } .addOnFailureListener { // Task failed with an exception // ... } |
После того, как вы инициализируете экземпляр Smart Reply, вызовите suggestReplies
со списком последних сообщений. Обратный вызов предоставляет результат, который содержит список предложений.
Подробнее о том, как использовать API Smart Reply, смотрите документацию.
Хотя, как разработчик, вы можете просто взять это новое API и легко интегрировать в своё приложение, вам возможно будет интересно узнать о том, как он работает под капотом. В основе Smart Reply лежит машинно-обучаемая модель, которая выполняется с использованием TensorFlow Lite и имеет современную архитектуру, основанную на кодировании текста SentencePiece[1] и Transformer[2].
Определение языка текста
Язык текста является хитрой, но полезной информацией. Многие приложения имеют функционал, зависящий от языка: проверка орфографии, перевод текста или умный ответ. Вместо того, чтобы просить пользователя указать используемый язык, вы можете использовать новое API для идентификации языка.
ML Kit распознает текст на 110 различных языках и, как правило, для точного определения требуется всего несколько слов. И работает это дело довольно шустро (1-2 мс на телефонах iOS и Android).
Подобно API Smart Reply, вы можете идентифицировать язык с помощью вызова функции (пример на Kotlin):
1 2 3 4 5 6 7 8 9 10 |
val languageIdentification = FirebaseNaturalLanguage.getInstance().languageIdentification languageIdentification .identifyLanguage("¿Cómo estás?") .addOnSuccessListener { identifiedLanguage -> Log.i(TAG, "Identified language: $identifiedLanguage") } .addOnFailureListener { e -> Log.e(TAG, "Language identification error", e) } |
Функция identifyLanguage
берёт фрагмент текста, а в колбеке приходит код языка по BCP-47. Если ни один язык не может быть достоверно распознан, ML Kit возвращает код und
. Это API также может предоставить список возможных языков.
Подробнее о том, как использовать API для определения языка, смотрите в документации.
Начните уже сегодня
Вы всегда можете связаться с командой Google в их группе Google Firebase Talk.
По мере роста ML Kit Google с нетерпением ждут добавления новых API и категорий, которые позволят вам предоставить пользователям новые возможности. Следите за анонсами ML Kit на Google I/O.