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.