Detectar idioma
La API de detección de idioma de Azure evalúa la entrada de texto y, para cada documento enviado, devuelve identificadores de idioma con una puntuación que indica la intensidad del análisis.
Esta funcionalidad es útil para los almacenes de contenido que recopilan texto arbitrario, donde se desconoce el idioma. Otro escenario podría implicar un bot de chat. Si un usuario inicia una sesión con el bot de chat, se puede usar la detección de idioma para determinar qué idioma usan y le permite configurar las respuestas del bot en el idioma adecuado.
Puede analizar los resultados de este análisis para determinar qué idioma se usa en el documento de entrada. La respuesta también devuelve una puntuación, que refleja la confianza del modelo (un valor entre 0 y 1).
La detección de idioma puede funcionar con documentos o frases únicas. Es importante tener en cuenta que el tamaño del documento debe tener menos de 5120 caracteres. El límite de tamaño es por documento y cada colección está restringido a 1000 elementos (identificadores). Aquí se muestra un ejemplo de una carga JSON con formato correcto que puede enviar al servicio en el cuerpo de la solicitud, incluida una colección de documentos, cada una que contiene un identificador único y el texto que se va a analizar. Opcionalmente, puede proporcionar un countryHint para mejorar el rendimiento de la predicción.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id": "1",
"text": "Hello world",
"countryHint": "US"
},
{
"id": "2",
"text": "Bonjour tout le monde"
}
]
}
}
El servicio devolverá una respuesta JSON que contiene un resultado para cada documento del cuerpo de la solicitud, incluido el lenguaje previsto y un valor que indica el nivel de confianza de la predicción. El nivel de confianza es un valor comprendido entre 0 y 1, con valores más cercanos a 1 siendo un nivel de confianza mayor. Este es un ejemplo de una respuesta JSON estándar que corresponde al JSON de solicitud anterior.
{ "kind": "LanguageDetectionResults",
"results": {
"documents": [
{
"detectedLanguage": {
"confidenceScore": 1,
"iso6391Name": "en",
"name": "English"
},
"id": "1",
"warnings": []
},
{
"detectedLanguage": {
"confidenceScore": 1,
"iso6391Name": "fr",
"name": "French"
},
"id": "2",
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
}
En nuestro ejemplo, todos los idiomas muestran un nivel de confianza de 1, principalmente porque el texto es relativamente sencillo y fácil para identificar el idioma.
Si pasa un documento que tiene contenido multilingüe, el servicio se comportará de forma un poco diferente. El contenido de idioma mixto dentro del mismo documento devuelve el idioma con la representación más grande del contenido, pero con una clasificación positiva inferior, lo que refleja la fuerza marginal de esa evaluación. En el ejemplo siguiente, la entrada es una combinación de inglés, español y francés. El analizador usa el análisis estadístico del texto para determinar el idioma predominante .
{
"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?"
}
]
}
En el ejemplo siguiente se muestra una respuesta para este ejemplo de varios idiomas.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "Spanish",
"iso6391Name": "es",
"confidenceScore": 0.9375
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
La última condición que se debe tener en cuenta es cuando hay ambigüedad en cuanto al contenido del idioma. El escenario puede ocurrir si envía contenido textual que el analizador no puede analizar, por ejemplo debido a problemas de codificación de caracteres al convertir el texto en una variable de cadena. Como resultado, la respuesta del nombre del idioma y el código ISO indicarán (desconocido) y el valor de puntuación se devolverá como 0. En el ejemplo siguiente se muestra el aspecto de la respuesta.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "(Unknown)",
"iso6391Name": "(Unknown)",
"confidenceScore": 0.0
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}