Guía de detección de idiomas para la Web

La tarea MediaPipe Language Detector te permite identificar el idioma de una porción del texto. Estos Las instrucciones te muestran cómo usar el detector de idioma en apps web y de JavaScript. La muestra de código descrita en estas instrucciones está disponible en GitHub:

Para ver esta tarea en acción, consulta el demostración. Para obtener más información sobre las capacidades, los modelos y las opciones de configuración para completar esta tarea, consulta la Descripción general.

Ejemplo de código

El código de ejemplo para detector de idiomas proporciona una implementación completa de esto, en JavaScript para tu referencia. Este código te ayuda a probar la tarea y empezar a crear tu propia función de detector de idioma. Puedes ver, ejecutar y edita el Código de ejemplo del detector de idioma usando solo el navegador web.

Configuración

En esta sección, se describen los pasos clave para configurar tu entorno de desarrollo y proyectos de código específicamente para el detector de idioma. Para obtener información general configurar tu entorno de desarrollo para usar tareas de MediaPipe, como de la versión de la plataforma, consulta la Guía de configuración para la Web.

Paquetes de JavaScript

El código del detector de idioma está disponible a través del @mediapipe/tasks-text . Puedes encontrar y descargar estas bibliotecas en los vínculos que se proporcionan en la plataforma Guía de configuración.

Puedes instalar los paquetes obligatorios con el siguiente código para la etapa de pruebas local con el siguiente comando:

npm install @mediapipe/tasks-text

Si quieres realizar la implementación en un servidor, puedes usar un modelo de red de VPC (CDN), como jsDelivr, al agrega el código directamente a tu página HTML de la siguiente manera:

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

Modelo

La tarea del detector de idioma de MediaPipe requiere un modelo entrenado que sea compatible con este tarea. Para obtener más información sobre los modelos entrenados disponibles para el detector de idioma, consulta la sección Modelos de la descripción general de la tarea.

Selecciona y descarga un modelo y, luego, guárdalo en el directorio de tu proyecto:

<dev-project-root>/app/shared/models

Especifica la ruta del modelo con el objeto modelAssetPath de baseOptions según se muestra a continuación:

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

Crea la tarea

Usa una de las funciones LanguageDetector.createFrom...() del detector de idioma para lo siguiente: preparan la tarea para ejecutar inferencias. Puedes usar el createFromModelPath() con una ruta de acceso absoluta o relativa al archivo de modelo entrenado. El código En el siguiente ejemplo, se muestra el uso de la función createFromOptions(). Para ver más información sobre la configuración de tareas, consulta Opciones de configuración.

En el siguiente código, se muestra cómo compilar y configurar esta tarea.

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();

Opciones de configuración

Esta tarea tiene las siguientes opciones de configuración para la Web y JavaScript aplicaciones:

Nombre de la opción Descripción Rango de valores Valor predeterminado
maxResults Establece el número máximo opcional de predicciones lingüísticas con la puntuación más alta para el resultado. Si este valor es menor que cero, se muestran todos los resultados disponibles. Cualquier número positivo -1
scoreThreshold Establece el umbral de puntuación de predicción que anula el que se proporciona en los metadatos del modelo (si los hay). Se rechazarán los resultados por debajo de este valor. Cualquier número de punto flotante Sin establecer
categoryAllowlist Establece la lista opcional de códigos de idioma permitidos. Si no está vacío, las predicciones de idioma cuyo código de idioma no se encuentre en este conjunto serán filtrado. Esta opción es mutuamente excluyente con categoryDenylist, y usar ambos generará un error. Cualquier cadena Sin establecer
categoryDenylist Establece la lista opcional de códigos de idioma que no están permitidos. Si Se filtrarán las predicciones de idioma no vacías cuyo código de idioma se encuentra en este conjunto. y sale de ella. Esta opción es mutuamente excluyente con categoryAllowlist y usar ambos dará como resultado un error. Cualquier cadena Sin establecer

Preparar los datos

El detector de idioma funciona con datos de texto (string). La tarea controla Procesamiento previo de la entrada de datos, incluida la asignación de token y el procesamiento previo del tensor Todo el procesamiento previo se controla dentro de la función detect. No es necesario para un procesamiento previo adicional del texto de entrada.

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

Ejecuta la tarea

El detector de idioma usa la función detect para activar las inferencias. Para idiomas detección, esto significa mostrar los posibles idiomas para el texto de entrada.

En el siguiente código, se muestra cómo ejecutar el procesamiento con la tarea modelo:

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

Cómo controlar y mostrar resultados

La tarea Detector de idioma genera un LanguageDetectorResult que consta de una lista de predicciones de lenguaje junto con las probabilidades de esas predicciones. El a continuación, se muestra un ejemplo de los datos de salida de esta tarea:

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

Se obtuvo este resultado ejecutando el modelo en el texto de entrada: "Il y a beaucoup de bouches qui parlent et fort peu de têtes qui pensent."

Si deseas ver un ejemplo del código necesario para procesar y visualizar los resultados de esta tarea, consulta la App de ejemplo web.