Guia de detecção de idiomas para Web

Com a tarefa Detector de idioma do MediaPipe, você identifica o idioma de um texto. Estas instruções mostram como usar o Detector de idioma em apps da Web e JavaScript. O exemplo de código descrito nestas instruções está disponível no GitHub.

Para conferir essa tarefa em ação, confira 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 código de exemplo do Detector de idiomas fornece uma implementação completa dessa tarefa em JavaScript para sua referência. Este código ajuda você a testar essa tarefa e começar a criar seu próprio recurso do detector de idioma. É possível visualizar, executar e editar o código de exemplo do Detector de idioma usando apenas seu navegador da Web.

Configuração

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

Pacotes JavaScript

O código do detector de idioma está disponível no pacote @mediapipe/tasks-text. Você pode encontrar essas bibliotecas nos links fornecidos no Guia de configuração da plataforma.

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

npm install @mediapipe/tasks-text

Caso queira implantar em um servidor, você pode usar um serviço de rede de fornecimento de conteúdo (CDN, na sigla em inglês), como o jsDelivr, para adicionar código diretamente à sua 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 do 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 Detector de idioma, consulte a seção Modelos de 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 detector de idioma para preparar a tarefa para executar inferências. Você pode usar a função createFromModelPath() com um caminho relativo ou absoluto para o arquivo de 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 pontuação mais alta 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 ponto flutuante Não definido
categoryAllowlist Define a lista opcional de códigos de idioma permitidos. Se o valor não estiver vazio, as previsões de idioma com código de idioma que não estiver nesse conjunto serão filtradas. Essa opção é mutuamente exclusiva com categoryDenylist, e o uso de ambos resulta em 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 em branco, as previsões de idioma com código de idioma nesse conjunto serão filtradas. Essa opção é mutuamente exclusiva com categoryAllowlist, e o uso de ambos resulta em um erro. Qualquer string Não definido

preparar dados

O detector de idioma funciona com dados de texto (string). A tarefa lida com o pré-processamento da entrada de dados, incluindo a tokenização e o pré-processamento do tensor. Todo o pré-processamento é processado na função detect. Não é necessário fazer mais um pré-processamento do texto de entrada com antecedência.

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

Executar a tarefa

O detector de idioma usa a função detect para acionar inferências. Na detecção de idioma, isso significa retornar os possíveis idiomas 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);

Gerenciar e mostrar resultados

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

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

Esse resultado foi obtido com a execução do 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 dessa tarefa, consulte o app de amostra da Web (link em inglês).