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).