A tarefa Detector de idiomas do MediaPipe permite identificar o idioma de um texto. Esses mostram como usar o detector de idiomas com apps Android. O código o exemplo 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 do detector de linguagem fornece uma implementação simples desse tarefa para sua referência. Esse código ajuda a testar a tarefa e a começar criando seu próprio recurso de detecção de idioma. Navegue pela Exemplo de código do detector de linguagem no GitHub.
Fazer o download do código
As instruções a seguir mostram como criar uma cópia local do exemplo. usando a ferramenta de linha de comando de controle de versão git.
Para fazer o download do código de exemplo:
- Clone o repositório git usando o seguinte comando:
git clone https://github.com/google-ai-edge/mediapipe-samples
- Como opção, configure sua instância do Git para usar a finalização esparsa.
Portanto, você tem apenas os arquivos do app de exemplo do Language Detector:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/languagedetector/android
Para instruções sobre como configurar e executar um exemplo com o Android Studio, consulte as instruções de configuração de código de exemplo na Guia de configuração para Android.
Principais componentes
Os arquivos a seguir contêm o código crucial para a classificação de texto aplicativo de exemplo:
- LanguageDetectorHelper.kt: Inicializa o detector de linguagem e processa a seleção de modelos.
- ResultsAdapter.kt: Processa e formata os resultados da detecção.
- MainActivity.kt (link em inglês):
Implementa o aplicativo, incluindo a chamada de
LanguageDetectorHelper
eResultsAdapter
.
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 Android.
Dependências
O detector de linguagem usa as bibliotecas com.google.mediapipe:tasks-text
. Adicionar
dependência do arquivo build.gradle
do projeto de desenvolvimento de apps Android.
É possível importar as dependências necessárias com o seguinte código:
dependencies {
implementation 'com.google.mediapipe:tasks-text:latest.release'
}
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 do modelo e armazene-o no diretório do projeto:
<dev-project-root>/src/main/assets
Especifique o caminho do modelo no parâmetro ModelName
.
Criar a tarefa
É possível usar uma das funções createFrom...()
para criar a tarefa. A
A função createFromOptions()
aceita opções de configuração para a linguagem
de detecção. Também é possível inicializar a tarefa usando a fábrica createFromFile()
.
função. A função createFromFile()
aceita um caminho relativo ou absoluto para
o arquivo do modelo treinado. 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.
// For creating a language detector instance:
LanguageDetectorOptions options =
LanguageDetectorOptions.builder()
.setBaseOptions(
BaseOptions.builder()
.setModelAssetPath(modelPath)
.build()
)
.build();
LanguageDetector languageDetector = LanguageDetector.createFromOptions(context, options);
É possível ver um exemplo de como criar uma tarefa no exemplo de código
LanguageDetectorHelper
função initDetector()
da classe.
Opções de configuração
Esta tarefa tem as seguintes opções de configuração para apps Android:
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 a entrada de dados
incluindo a tokenização e o pré-processamento de tensores. Todos
o pré-processamento é feito na função detect()
. Não é necessário
um pré-processamento adicional
do texto de entrada.
String inputText = "Some input text for the language detector";
Executar a tarefa
O detector de linguagem usa o método LanguageDetector.detect()
para processar a entrada
e prever o idioma do texto. Use uma execução separada
linha de execução para executar a detecção e evitar o bloqueio do usuário Android
linha de execução de interface com seu app.
O código a seguir demonstra como executar o processamento com a tarefa usando uma linha de execução separada.
// Predict the language of the input text.
fun classify(text: String) {
executor = ScheduledThreadPoolExecutor(1)
executor.execute {
val results = languageDetector.detect(text)
listener.onResult(results)
}
}
É possível ver um exemplo de como executar uma tarefa no exemplo de código
LanguageDetectorHelper
função detect()
da classe.
Gerenciar e exibir resultados
O detector de linguagem gera uma LanguageDetectorResult
que consiste em uma lista de
previsões de idiomas e as probabilidades delas. A
as categorias de idioma são definidas no modelo, consulte a visão geral da tarefa
Acesse a seção Modelos para ver detalhes sobre o modelo que você está usando.
Confira abaixo 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."
:
Confira um exemplo de como exibir resultados no exemplo de código
ResultsAdapter
classe interna ViewHolder
.