Explorando o ML Kit for Firebase

Parte 2 — Linguagem Natural e Identificação de Linguagem

Rosário Pereira Fernandes
GDG Maputo
Published in
4 min readFeb 1, 2019

--

Este artigo faz parte da série Explorando o ML Kit for Firebase:

  1. O novo serviço de Machine Learning do Firebase
  2. Linguagem Natural e Identificação de Linguagem

No ano passado, a equipa do Firebase anunciou um novo SDK que foi adicionado à plataforma — o ML Kit. O ML Kit é um SDK que permite que desenvolvedores utilizem Machine Learning em aplicativos Android e iOS. Se você ainda não conhece o ML Kit, leia o primeiro artigo desta série.

Quando foi anunciado, o ML Kit só tinha funcionalidades relacionadas com o ramo Visão Computacional (Computer Vision). Mas hoje foi adicionada a primeira funcionalidade do ramo Processamento de Linguagem Natural (Natural Language Processing) — a chamada identificação de linguagem (Language Identification).

Assim, o ML Kit conta agora com 2 pacotes: o ML Vision (sobre o qual falei no artigo anterior) e o Natural Language (o tema deste artigo).

Natural Language

Enquanto que o ML Vision aplica conceitos de Machine Learning em imagens, o pacote Natural Language usa ML no processamento de texto.
Atualmente a única funcionalidade inclusa neste pacote é a Identificação de Linguagem, só está disponível para Android ou iOS e só é possível utilizá-la on-device, pois ainda não tem uma versão cloud.

Para ter o Natural Language na sua app, você só tem de:

  1. Adicionar o Firebase ao projecto;
  2. Adicionar a dependência do Natural Language no ficheiro build.gradle:

Identificação de linguagem

Como o nome sugere, esta funcionalidade analisa um texto e identifica em que linguagem/idioma esse texto está escrito.

Para utilizar esta funcionalidade, você tem de adicionar a sua dependência no build.gradle:

E na sua Activity/Fragment crie um objecto do tipo FirebaseLanguageIdentification :

Esta funcionalidade pode ser usada de 2 maneiras:

  1. Identificar a linguagem mais provável
    É como clicar no botão “Estou com sorte” (I’m feeling lucky) do Google Search. Será mostrada a linguagem com maior probabilidade.
    Basta utilizar o método:

Por padrão, o SDK irá mostrar a linguagem mais provável que tenha confidência maior do que 0,5 . Mas se você quiser especificar o número mínimo de confidência, você pode criar um objecto FirebaseLanguageIdentificationOptions e passar para o identificador:

2. Identificar todas linguagens possíveis:
Para ver todas as possibilidades, é só utilizar o método:

Por padrão, serão mostradas todas linguagens com confidência maior do que 0,01. Mas se você quiser especificar o número mínimo de confidência, crie um objeto FirebaseLanguageIdentificationOptions como mostrado no método 1 (linguagem mais provável).

Note que a String retornada pelo SDK é o código BCP-47 da linguagem. Você pode encontrar a lista de todas as linguagens suportadas aqui.

Veja o código completo da Activity aqui:

Identificar linguagens no Android com o Firebase é tão simples quanto isso. Esta funcionalidade pode não parecer útil, mas é sim em alguns casos de uso. Por exemplo: se você tiver criado uma aplicação que é uma espécie de um blog, você pode usar a identificação de linguagens para analisar os blog posts que cada utilizador lê. Se você souber que um certo utilizador lê muitos posts em chinês, talvez seja uma boa ideia recomendar-lhe mais posts em chinês.

Pude notar que diferentemente do pacote ML Vision, o SDK do Natural Language não ocupa tanto espaço assim. Quando testei o ML Vision pela primeira vez, o APK gerado tinha aproximadamente 15Mb. Enquanto usando o Natural Language, o APK tem aproximadamente 5Mb. Acho que é uma diferença compreensível, pois o SDK do ML Vision certamente usa modelos mais complexos e provavelmente leva consigo algumas imagens usadas para o treinamento destes modelos.

Vale lembrar que esta é só a primeira funcionalidade que o Firebase traz para o pacote Natural Language. É provável que ao longo do tempo sejam adicionadas mais funcionalidades para este pacote, afinal de contas vem aí o Cloud Next 19 e o Google I/O 2019 — dois eventos anuais onde a Google tradicionalmente anuncia novas funcionalidades do Firebase. Irei atualizar este artigo sempre que houverem novidades neste pacote, então continue me seguindo para não perdê-las.

Caso tenha alguma dúvida ou sugestão, deixe abaixo nos comentários. Se você estiver tentando usar o ML Kit e teve um problema, coloque ele no StackOverflow, explicando o que você fez e qual foi o erro que teve. De certeza que você obterá ajuda de mim ou de alguém da comunidade. 🙂

--

--

Rosário Pereira Fernandes
GDG Maputo

Firebase DevRel Engineer at Google … Views and Opinions are my own.