Android Apps

ML Package Develops in NLP with Language ID and Good Response

Posted by Christiaan Prins and Max Gubin

We announce at this time the discharge of two new options of ML Package: language identification and clever response.

It’s possible you’ll discover that these two options are totally different from our present APIs that had been all targeted on picture / video processing. Our aim with ML Package is to offer highly effective however easy-to-use APIs to leverage the ability of ML, whatever the area. As such, we’re excited to increase the ML Package with options for pure language processing (NLP)!

NLP is a class of ML that offers with the evaluation and era of texts, lyrics and different forms of knowledge in pure language. We're excited to start out with two APIs: one which helps you determine the language of the textual content and one which generates response recommendations in chat functions. Each of those options work totally on the machine and can be found on the newest model of the SDK ML Package, on iOS ( and later) and on Android (four.1 and later).

Generate reply recommendations based mostly on earlier messages

A brand new function that seems in electronic mail functions is to offer the consumer with a choice of instructed solutions, within the type of actions in a notification or within the software itself. This may actually assist a consumer reply shortly when busy or create a handy solution to launch an extended message.

With the brand new Good Reply API, now you can shortly obtain the identical factor in your personal functions. The API gives recommendations based mostly on the final 10 messages of a dialog, though it nonetheless works if just one earlier message is offered. This can be a stateless API that runs totally on the machine. Subsequently, we don’t hold the historical past of messages in reminiscence and don’t ship it to a server.

The textPlus app gives instructed solutions with the assistance of Good Reply

We've been working carefully with companions like textPlus to verify Good Reply is prepared for prime time. They’ve now carried out in-app reply recommendations with the newest model of their software (display seize above).

The addition of Good Reply to your personal software is completed with a easy operate name (utilizing Kotlin on this instance):

val smartReply = FirebaseNaturalLanguage.getInstance (). smartReply
smartReply.suggestReplies (dialog)
.addOnSuccessListener consequence ->
if (consequence.standing == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE)
// The language of the dialog will not be supported, so the
// the consequence doesn’t comprise any recommendations.
else if (consequence.standing == SmartReplySuggestionResult.STATUS_SUCCESS)
// Process efficiently accomplished
// …


After initializing a Good Reply occasion, name suggestionReplies with an inventory of latest messages. The reminder gives the consequence that comprises an inventory of recommendations.

For extra data on utilizing the Good Reply API, see the documentation.

Inform me extra …

Though as a developer, you may merely purchase this new API and simply combine it into your software, it might be fascinating to let you know a bit of bit about the way it works underneath the hood. Good Reply is predicated on a machine-learned mannequin run with the assistance of TensorFlow Lite and encompasses a fashionable, state-of-the-art structure based mostly on SentencePiece textual content encoding.[1] and transformer[2].

Nevertheless, as we understood at first of API improvement, the primary suggestion mannequin will not be all that we have to present an answer that builders can use of their functions. For instance, we added a template to detect delicate matters, to keep away from making recommendations in response to blasphemy or private tragedy. As well as, now we have included language identification with the intention to keep away from offering recommendations on languages ​​for which the primary mannequin will not be educated. The Good Reply function is first launched with assist in English.

Determine the language of a chunk of textual content

The language of a given textual content string is a delicate however helpful data. Many functions have language-dependent options: you may consider options reminiscent of spell checking, textual content translation, or sensible response. Somewhat than asking a consumer to specify the language that he makes use of, you need to use our new language identification API.

ML Package acknowledges textual content in 110 totally different languages ​​and normally requires only some phrases to permit exact dedication. It’s also quick and normally gives a response inside 1 to 2 ms on iOS and Android telephones.

Much like the Good Reply API, you may determine the language with a operate name (utilizing Kotlin on this instance):

val languageIdentification =
FirebaseNaturalLanguage.getInstance (). LanguageIdentification
language identification
.identifyLanguage ("¿Cómo estás?")

The identifierLanguage capabilities take a chunk of textual content and its callback gives a BCP-47 language code. If no language could be trusted, ML Package returns a code und for undetermined. The language identification API may also present an inventory of doable languages ​​and their confidence values.

For extra data on the usage of the language identification API, see the documentation.

Begin at this time

We’re actually excited to increase ML Package to incorporate Pure Language APIs. Run the 2 new NLP APIs at this time and inform us what you assume! You’ll be able to all the time attain us by our Google Firebase Speak group.

As ML Package continues to develop, we stay up for including extra APIs and classes to provide your customers a better expertise. On this, keep watch over some fascinating bulletins concerning the ML package on Google I / O.