Guia de detecção de idiomas para Web

A tarefa MediaPipe Language Detector permite identificar o idioma de um texto. Estas instruções mostram como usar o Language Detector para apps da Web e JavaScript. O exemplo de código descrito nestas instruções está disponível no GitHub.

Para ver essa tarefa em ação, acesse a demonstração. Para mais informações sobre os recursos, modelos e opções de configuração dessa tarefa, consulte a visão geral.

Exemplo de código

O exemplo de código do Language Detector oferece uma implementação completa dessa tarefa em JavaScript para sua referência. Esse código ajuda a testar a tarefa e começar a criar seu próprio recurso de detecção de idioma. É possível visualizar, executar, e editar o exemplo usando apenas o navegador da Web.

Configuração

Esta seção descreve as principais etapas para configurar seu ambiente de desenvolvimento e projetos de código especificamente para usar o Language Detector. Para informações gerais sobre como configurar seu ambiente de desenvolvimento para usar as tarefas do MediaPipe, incluindo requisitos de versão da plataforma, consulte o guia de configuração para a Web.

Pacotes JavaScript

O código do Language Detector está disponível no @mediapipe/tasks-text pacote. É possível encontrar e fazer o download dessas bibliotecas nos links fornecidos no guia de configuração da plataforma.

Para instalar os pacotes necessários com o código a seguir para o preparo local, use o comando a seguir:

npm install @mediapipe/tasks-text

Se você quiser fazer a implantação em um servidor, use um serviço de rede de distribuição de conteúdo (CDN, na sigla em inglês), como o jsDelivr, para adicionar o código diretamente à página HTML, da seguinte maneira:

<head>
  <script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/index.js"
    crossorigin="anonymous"></script>
</head>

Modelo

A tarefa MediaPipe Language Detector requer um modelo treinado compatível com ela. Para mais informações sobre os modelos treinados disponíveis para o Language Detector, consulte a seção Modelos da visão geral da tarefa.

Selecione e faça o download de um modelo e armazene-o no diretório do projeto:

<dev-project-root>/app/shared/models

Especifique o caminho do modelo com o parâmetro modelAssetPath do objeto baseOptions, conforme mostrado abaixo:

baseOptions: {
        modelAssetPath: `/app/shared/models/language_detector.tflite`
      }

Criar a tarefa

Use uma das funções LanguageDetector.createFrom...() do Language Detector para preparar a tarefa para executar inferências. É possível usar a função createFromModelPath() com um caminho relativo ou absoluto para o arquivo modelo treinado. O exemplo de código abaixo demonstra o uso da função createFromOptions(). Para mais informações sobre como configurar tarefas, consulte Opções de configuração.

O código a seguir demonstra como criar e configurar essa tarefa.

async function createDetector() {
  const textFiles = await FilesetResolver.forTextTasks(
      "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm/");
  languageDetector = await languageDetector.createFromOptions(
    textFiles,
    {
      baseOptions: {
        modelAssetPath: `https://storage.googleapis.com/mediapipe-models/language_detector/language_detector/float32/1/language_detector.tflite`
      },
    }
  );
}
createDetector();

Opções de configuração

Essa tarefa tem as seguintes opções de configuração para aplicativos da Web e JavaScript:

Nome da opção Descrição Intervalo de valor Valor padrão
maxResults Define o número máximo opcional de previsões de idioma com maior pontuação a serem retornadas. Se esse valor for menor que zero, todos os resultados disponíveis serão retornados. Qualquer número positivo -1
scoreThreshold Define o limite de pontuação de previsão que substitui o fornecido nos metadados do modelo (se houver). Os resultados abaixo desse valor são rejeitados. Qualquer número de ponto flutuante Não definido
categoryAllowlist Define a lista opcional de códigos de idioma permitidos. Se não estiver vazia, as previsões de idioma cujo código de idioma não estiver nesse conjunto serão filtradas. Essa opção é mutuamente exclusiva com categoryDenylist, e o uso de ambas resulta em um erro. Qualquer string Não definido
categoryDenylist Define a lista opcional de códigos de idioma que não são permitidos. Se não estiver vazia, as previsões de idioma cujo código de idioma estiver nesse conjunto serão filtradas. Essa opção é mutuamente exclusiva com categoryAllowlist, e o uso de ambas resulta em um erro. Qualquer string Não definido

Preparar dados

O Language Detector funciona com dados de texto (string). A tarefa processa o pré-processamento de entrada de dados, incluindo a tokenização e o pré-processamento de tensor. Todo o pré-processamento é processado na função detect. Não é necessário pré-processar o texto de entrada.

const inputText = "The input text for the detector.";

Executar a tarefa

O Language Detector usa a função detect para acionar inferências. Para a detecção de idioma, isso significa retornar os idiomas possíveis para o texto de entrada.

O código a seguir demonstra como executar o processamento com o modelo de tarefa:

// Wait to run the function until inner text is set
const detectionResult = languageDetector.detect(inputText);

Processar e mostrar resultados

A tarefa Language Detector gera um LanguageDetectorResult que consiste em uma lista de previsões de idioma com as probabilidades dessas previsões. Confira a seguir um exemplo dos dados de saída dessa tarefa:

LanguageDetectorResult:
  LanguagePrediction #0:
    language_code: "fr"
    probability: 0.999781

Esse resultado foi obtido executando o modelo no texto de entrada: "Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent.".

Para conferir um exemplo do código necessário para processar e visualizar os resultados de essa tarefa, consulte o exemplo.