Detectar idioma
La API Detección de idioma de Azure AI evalúa la entrada de texto y, para cada documento enviado, devuelve identificadores de idioma con una puntuación que indica la solidez del análisis.
Esta capacidad es útil para los almacenes de contenido que recopilan texto arbitrario, donde el idioma es desconocido. Otro escenario podría incluir un bot de chat. Si un usuario inicia una sesión con el bot de chat, la detección de idioma se puede usar para determinar el idioma que usa, y permite configurar las respuestas del bot en el idioma adecuado.
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 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 documento debe tener un tamaño inferior a 5120 caracteres. El límite de tamaño es por documento, y cada colección está restringida a 1000 elementos (identificadores). Aquí se muestra un ejemplo de una carga JSON con el formato adecuado que podría enviar al servicio en el cuerpo de la solicitud, incluida una colección de documentos, donde cada uno de los cuales contiene un identificador único y el texto que se va a analizar. También puede proporcionar una propiedad 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 en el cuerpo de la solicitud, incluido el idioma 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, donde los valores más cercanos a 1 tienen un nivel de confianza mayor. A continuación, se muestra un ejemplo de una respuesta JSON estándar que se asigna al JSON de la 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 una confianza de 1, principalmente porque el texto es relativamente sencillo y su idioma es fácil de detectar.
Si pasa un documento que tiene contenido en varios idiomas, el servicio tendrá un comportamiento algo distinto. 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, que refleja la solidez marginal de esa evaluación. En el ejemplo siguiente, la entrada es una mezcla 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 existe ambigüedad en cuanto al idioma del contenido. Este escenario puede producirse 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 para el nombre y el código ISO del idioma indicará "(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"
}