Mobile

29 mai, 2019

ML Kit se expande para a PLN com identificação de idioma e resposta inteligente

Publicidade

Artigo de Christiaan Prins e Max Gubin, publicado originalmente pelo Android Developers Blog. A tradução foi feita pela Redação iMasters com autorização.

***

No início de abril, anunciamos o lançamento de dois novos recursos para o ML Kit: identificação de idioma e resposta inteligente.

Você pode notar que esses dois recursos são diferentes das APIs existentes, todas focadas no processamento de imagens/vídeos.

Nosso objetivo com o ML Kit é oferecer APIs poderosas, mas fáceis de usar, para alavancar o poder do ML, independentemente do domínio.

Como tal, estamos entusiasmados em expandir o ML Kit com soluções para Processamento de Linguagem Natural (PNL – NPL, do inglês Natural Language Processing)!

PNL é uma categoria de ML que lida com a análise e geração de texto, fala (ou discurso? Ou comunicação oral?) e outros tipos de dados de linguagem natural.

Tivemos o prazer de começar com duas APIs: uma que ajuda a identificar o idioma do texto e uma que gera sugestões de resposta em aplicativos de bate-papo. Ambos os recursos funcionam totalmente no dispositivo e estão disponíveis na versão mais recente do ML Kit SDK, no iOS (9.0 e superior) e no Android (4.1 e superior).

Gere sugestões de respostas com base em mensagens anteriores

Um novo recurso que aparece nos aplicativos de mensagens é fornecer ao usuário uma seleção de respostas sugeridas, como ações em uma notificação ou dentro do próprio app. Isso pode realmente ajudar um usuário a responder rapidamente quando está ocupado ou ser uma maneira prática de iniciar uma mensagem mais longa.

Com a nova API Smart Reply, agora você pode alcançar rapidamente o mesmo em seus próprios aplicativos. A API fornece sugestões com base nas últimas 10 mensagens em uma conversa, embora ainda funcione se apenas uma mensagem anterior estiver disponível.

É uma API sem estado que é totalmente executada no dispositivo, por isso não mantemos o histórico de mensagens na memória nem o enviamos para um servidor.

app textPlus fornecendo sugestões de resposta usando Smart Reply

Temos trabalhado em estreita colaboração com parceiros como o textPlus para garantir que a Smart Reply esteja pronta para o horário nobre e agora implementamos sugestões de resposta in-app com a versão mais recente de seu aplicativo (captura de tela acima).

Adicionar Smart Reply ao seu próprio aplicativo é feito com uma simples chamada de função (usando o Kotlin neste exemplo):

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
            // ...
        }

Depois de inicializar uma instância da Smart Reply, chame suggestReplies com uma lista de mensagens recentes. O callback fornece o resultado que contém uma lista de sugestões.

Para detalhes sobre como usar a API Smart Reply, confira a documentação.

Conte-me mais

Embora, como desenvolvedor, você possa simplesmente pegar essa nova API e integrá-la facilmente ao seu aplicativo, pode ser interessante revelar um pouco mais como ela funciona.

No núcleo do Smart Reply está um modelo de machine learning que é executado usando o TensorFlow Lite e possui uma arquitetura moderna de ponta baseada na codificação de texto SentencePiece [1] e Transformer [2].

No entanto, como percebemos quando iniciamos o desenvolvimento da API, o modelo de sugestão principal não é tudo o que é necessário para fornecer uma solução que os desenvolvedores possam usar em seus apps.

Por exemplo, adicionamos um modelo para detectar tópicos sensíveis, para evitar sugestões de palavrões em resposta ou em casos de tragédia/sofrimento pessoal.

Além disso, incluímos identificação de idioma para garantir que não forneçamos sugestões para idiomas nos quais o modelo principal não é treinado. O recurso Smart Reply foi lançado com suporte para inglês primeiro.

Identifique a linguagem de um pedaço de texto

A linguagem de uma determinada string de texto é uma informação sutil, mas útil. Muitos aplicativos têm funcionalidade com dependência do idioma: você pode pensar em recursos como verificação ortográfica, tradução de texto ou Smart Reply.

Em vez de pedir a um usuário para especificar o idioma que usa, você pode usar nossa nova API Language Identification.

O ML Kit reconhece o texto em 110 idiomas diferentes e normalmente requer apenas algumas palavras para fazer uma determinação precisa.

É rápido também, normalmente fornecendo uma resposta em 1 a 2 ms em telefones iOS e Android.

Semelhante à API Smart Reply, você pode identificar o idioma com uma chamada de função (usando o Kotlin neste exemplo):

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)
    }

As funções identifyLanguage recebem uma parte de um texto e seu callback fornece um código de idioma BCP-47. Se nenhum idioma puder ser reconhecido com confiança, o ML Kit retornará um código de und para indeterminado.

A API Language Identification também pode fornecer uma lista de possíveis idiomas e seus valores de confiança.

Para detalhes sobre como usar a API Language Identification, confira a documentação.

Comece hoje

Estamos muito animados para expandir o Kit ML para incluir APIs de Linguagem Natural. Experimente as duas novas APIs do PNL hoje e deixe-nos saber o que você pensa! Você sempre pode entrar em contato no nosso Firebase Talk Google Group.

À medida que o ML Kit cresce, esperamos adicionar mais APIs e categorias que permitam oferecer experiências mais inteligentes para seus usuários.

***

Este artigo é do Android Developers Blog. Ele foi escrito por Christiaan Prins e Max Gubin. A tradução foi feita pela Redação iMasters com autorização. Você pode acessar o original em: https://android-developers.googleblog.com/2019/04/ml-kit-expands-into-nlp-with-language.html