Guia de detecção de idiomas para Web

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

Para saber como essa tarefa funciona, acesse o demonstração. Para mais informações sobre recursos, modelos e opções de configuração, desta tarefa, consulte a Visão geral.

Exemplo de código

O código de exemplo para o detector de linguagem fornece uma implementação completa desse em JavaScript para sua referência. Esse código ajuda a testar a tarefa a criar seu próprio recurso de detecção de idiomas. Você pode conferir, executar e edite o Exemplo de código do detector de linguagem usando apenas seu 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 a configuração do seu ambiente de desenvolvimento para usar tarefas do MediaPipe, incluindo requisitos de versão da plataforma, consulte Guia de configuração para a Web.

Pacotes JavaScript

O código do detector de linguagem é disponibilizado pelo @mediapipe/tasks-text . Essas bibliotecas podem ser encontradas e baixadas nos links fornecidos na plataforma Guia de configuração.

É possível instalar os pacotes necessários com o seguinte código para preparo local usando o seguinte comando:

npm install @mediapipe/tasks-text

Se você quiser implantar em um servidor, use uma API de envio de conteúdo de rede (CDN), como jsDelivr, para adicionar o código diretamente à página HTML, da seguinte forma:

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

Modelo

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

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 objeto baseOptions modelAssetPath , conforme mostrado abaixo:

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

Criar a tarefa

Use uma das funções LanguageDetector.createFrom...() do detector de linguagem para preparar a tarefa para executar inferências. Você pode usar o createFromModelPath() função com um caminho relativo ou absoluto para o arquivo de modelo treinado. O código exemplo 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 abaixo 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

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

Nome da opção Descrição Intervalo de valor Valor padrão
maxResults Define o número máximo opcional de previsões de idiomas com maior pontuação como voltar. 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 da previsão que substitui o fornecido no os metadados do modelo (se houver). Resultados abaixo desse valor são rejeitados. Qualquer flutuação Não definido
categoryAllowlist Define a lista opcional de códigos de idioma permitidos. Se não estiver vazio, previsões de idiomas cujo código de idioma não estiver neste conjunto serão que foram filtradas. Essa opção é mutuamente exclusiva com categoryDenylist e usar os dois resultará em um erro. Qualquer string Não definido
categoryDenylist Define a lista opcional de códigos de idiomas que não são permitidos. Se as previsões de idiomas com código nesse conjunto serão filtradas para fora. Essa opção é mutuamente exclusiva com categoryAllowlist e usar ambos resulta em erro. Qualquer string Não definido

Preparar dados

O detector de idiomas funciona com dados de texto (string). A tarefa lida com o Pré-processamento de entrada de dados, incluindo tokenização e pré-processamento de tensor. Todo o pré-processamento é feito na função detect. Não é necessário para pré-processamento adicional do texto de entrada.

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

Executar a tarefa

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

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

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

Gerenciar e exibir resultados

A tarefa do Detector de linguagem gera um LanguageDetectorResult que consiste em uma lista de previsões de idiomas e as probabilidades delas. A Veja a seguir um exemplo dos dados de saída desta tarefa:

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

Este 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 um exemplo do código necessário para processar e visualizar os resultados de para essa tarefa, consulte App de amostra da Web (link em inglês).