Uso de la detección de idioma

La característica de la Detección de idioma puede evaluar texto y devolver un identificador de idioma que indica el idioma en el que se escribió un documento.

La detección de idioma es útil para las tiendas de contenido que recopilan texto arbitrario, donde se desconoce el idioma. Puede analizar los resultados del análisis para determinar el idioma que se usa en el documento de entrada. La respuesta también devuelve una puntuación entre 0 y 1 que refleja la confianza del modelo.

La característica Detección de idioma puede detectar una amplia gama de idiomas, variantes, dialectos y algunos idiomas regionales o culturales.

Opciones de desarrollo

Para usar la detección de idioma, debe enviar texto no estructurado sin formato para su análisis y controlar la salida de la API en la aplicación. El análisis se realiza tal cual, sin personalización adicional al modelo usado en los datos. Hay tres maneras de usar la detección de idioma:

Opción de desarrollo Descripción
Language Studio Language Studio es una plataforma basada en la web que le permitirá probar la vinculación de entidades con ejemplos de texto sin tener cuentas de Azure y usando sus propios datos al registrarse. Para obtener más información, consulte el sitio web de Language Studio o la guía de inicio rápido de Language Studio.
API REST o biblioteca cliente (SDK de Azure) Integre la detección de idioma en las aplicaciones mediante la API REST o la biblioteca cliente disponible en una variedad de idiomas. Para más información, consulte el inicio rápido de la detección de idioma.
Contenedor de Docker Use el contenedor de Docker disponible para implementar esta característica en el entorno local. Estos contenedores de Docker permiten acercar el servicio a los datos para mejorar el cumplimiento, la seguridad o por otras razones operativas.

Determinación de cómo procesar los datos (opcional)

Especificación del modelo de detección de idioma

De manera predeterminada, la detección de idioma usará el modelo de IA más reciente disponible en el texto. También puede configurar las solicitudes de API para usar una versión del modelo específica.

Idiomas de entrada

Al enviar documentos que se van a evaluar, la detección de idioma intentará determinar si el texto se escribió en cualquiera de los idiomas admitidos.

Si tiene contenido que se expresa en un idioma que se usa con menos frecuencia, puede probar la característica Detección de idioma para ver si devuelve un código. La respuesta para los idiomas que no se pueden detectar es unknown.

Envío de datos

Sugerencia

Puede usar un contenedor de Docker para la detección de idioma, por lo que puede usar la API local.

El análisis se realiza tras la recepción de la solicitud. El uso de la característica de detección de idioma forma asincrónica no tiene estado. No se almacenan datos en la cuenta y los resultados se devuelven inmediatamente en la respuesta.

Cuando se usa esta característica de forma asincrónica, los resultados de la API están disponibles durante 24 horas desde el momento en que se ingiere la solicitud y se indica en la respuesta. Después de este período de tiempo, los resultados se purgan y ya no están disponibles para la recuperación.

Obtención de los resultados de la detección de idioma

Cuando obtiene los resultados de la detección de idioma, puede transmitir los resultados a una aplicación o guardar la salida en un archivo en el sistema local.

Detección de idioma devuelve un idioma predominante para cada documento que envíe, junto con su nombre ISO 639-1, un nombre legible, una puntuación de confianza, un nombre de script y un código de script según la norma ISO 15924. Una puntuación positiva de 1 indica el mayor nivel de confianza posible del análisis.

Contenido ambiguo

En algunos casos, puede ser difícil eliminar la ambigüedad de los idiomas en función de la entrada. Puede usar el parámetro countryHint para especificar un código de país o región ISO 3166-1 alpha-2. De forma predeterminada, la API usa "US" como sugerencia de país predeterminada. Para quitar este comportamiento, puede restablecer este parámetro estableciendo este valor en una cadena countryHint = "" vacía.

Por ejemplo, "comunicación" es común al inglés y al francés y, si se da con un contexto limitado, la respuesta se basará en la pista del país/región "US". Si se sabe que el origen del texto procede de Francia, eso se puede proporcionar como sugerencia.

Nota:

El contenido ambiguo puede hacer que las puntuaciones de confianza sean inferiores. En countryHint de la respuesta solo se aplica si la puntuación de confianza es inferior a 0,8.

Entrada

{
    "documents": [
        {
            "id": "1",
            "text": "communication"
        },
        {
            "id": "2",
            "text": "communication",
            "countryHint": "fr"
        }
    ]
}

Con el segundo documento, el modelo de detección de idioma tiene contexto adicional para hacer un mejor juicio porque contiene la propiedad countryHint en la entrada anterior. Devolverá la salida siguiente:

Salida

{
    "documents":[
        {
            "detectedLanguage":{
                "confidenceScore":0.62,
                "iso6391Name":"en",
                "name":"English"
            },
            "id":"1",
            "warnings":[
                
            ]
        },
        {
            "detectedLanguage":{
                "confidenceScore":1.0,
                "iso6391Name":"fr",
                "name":"French"
            },
            "id":"2",
            "warnings":[
                
            ]
        }
    ],
    "errors":[
        
    ],
    "modelVersion":"2022-10-01"
}

Si el analizador no puede analizar la entrada, devuelve (Unknown). Un ejemplo es si envía una cadena de texto que consta únicamente de números.

{
    "documents": [
        {
            "id": "1",
            "detectedLanguage": {
                "name": "(Unknown)",
                "iso6391Name": "(Unknown)",
                "confidenceScore": 0.0
            },
            "warnings": []
        }
    ],
    "errors": [],
    "modelVersion": "2023-12-01"
}

Contenido en varios idiomas

El contenido en varios idiomas dentro del mismo documento devuelve el idioma con mayor representación en el contenido, pero con una clasificación positiva inferior. La clasificación refleja la fuerza marginal de la evaluación. En el ejemplo siguiente, la entrada es una combinación de inglés, español y francés. El analizador cuenta los caracteres de cada segmento para determinar el idioma predominante.

Entrada

{
    "documents": [
        {
            "id": "1",
            "text": "Hello, I would like to take a class at your University. ¿Se ofrecen clases en español? Es mi primera lengua y más fácil para escribir. Que diriez-vous des cours en français?"
        }
    ]
}

Salida

La salida resultante está formada por el idioma predominante, con una puntuación de menos de 1,0, que indica un nivel de confianza más débil.

{
    "kind": "LanguageDetectionResults",
    "results": {
        "documents": [
            {
                "id": "1",
                "detectedLanguage": {
                    "name": "Spanish",
                    "iso6391Name": "es",
                    "confidenceScore": 0.97,
                    "script": "Latin",
                    "scriptCode": "Latn"
                },
                "warnings": []
            }
        ],
        "errors": [],
        "modelVersion": "2023-12-01"
    }
}

Nombre del script y código de script

Nota:

  • La detección de scripts se limita actualmente a la selección de idiomas.
  • La detección de scripts solo está disponible para la entrada textual que tiene más de 12 caracteres de longitud.

Detección de idioma ofrece la capacidad de detectar más de un script por idioma según el estándar ISO 15924. En concreto, Detección de idioma devuelve dos propiedades relacionadas con scripts:

  • script: nombre legible del script identificado.
  • scriptCode: código ISO 15924 para el script identificado.

La salida de la API incluye el valor de la propiedad scriptCode para los documentos que tienen al menos 12 caracteres o más de longitud y coincide con la lista de idiomas y scripts admitidos. La detección de scripts está diseñada para beneficiar a los usuarios cuyo idioma se puede transliterar o escribir en más de un script, como kazajo o hindi.

Anteriormente, Detección de idioma se diseñó para detectar el idioma de los documentos en una amplia variedad de idiomas, dialectos y variantes regionales, pero estaba limitado por la "romanización". La romanización se refiere a la conversión de un texto de un sistema de escritura a la escritura romana (latina), y es necesaria para detectar muchas lenguas indoeuropeas. Sin embargo, hay otras lenguas que se escriben en varios alfabetos, como el kazajo, que puede escribirse en alfabeto cirílico, persoárabe y latino. También hay otros casos en los que los usuarios pueden elegir o se ven obligados a transliterar su lengua en más de un alfabeto, como el hindi transliterado en alfabeto latino, debido a la disponibilidad limitada de teclados compatibles con su alfabeto devanagari.

En consecuencia, el soporte ampliado de Detección de idioma para la detección de scripts se comporta de la siguiente manera:

Entrada

{ 
    "kind": "LanguageDetection", 
    "parameters": { 
        "modelVersion": "latest" 
    }, 
    "analysisInput": { 
        "documents": [ 
            { 
                "id": "1", 
                "text": "आप कहाँ जा रहे हैं?" 
            }, 
            { 
                "id": "2", 
                "text": "Туған жерім менің - Қазақстаным" 
            } 
        ] 
    } 
} 

Salida

La salida resultante consta del lenguaje predominante, junto con un nombre de script, código de script y puntuación de confianza.

{ 
    "kind": "LanguageDetectionResults", 
    "results": { 
        "documents": [ 
            { 
                "id": "1", 
                "detectedLanguage": { 
                    "name": "Hindi", 
                    "iso6391Name": "hi", 
                    "confidenceScore": 1.0, 
                    "script": "Devanagari", 
                    "scriptCode": "Deva" 
                }, 
                "warnings": [] 
            }, 
            { 
                "id": "2", 
                "detectedLanguage": { 
                    "name": "Kazakh", 
                    "iso6391Name": "kk", 
                    "confidenceScore": 1.0, 
                    "script": "Cyrillic",  
                    "scriptCode": "Cyrl" 
                }, 
                "warnings": [] 
            } 
        ], 
        "errors": [], 
        "modelVersion": "2023-12-01" 
    } 
}

Límites de servicio y datos

Para obtener información sobre el tamaño y el número de solicitudes que puede enviar por minuto y segundo, consulte el artículo sobre límites del servicio.

Consulte también