Ejemplo: Detectar idioma con Text AnalyticsExample: Detect language with Text Analytics

La característica Detección de idioma de la API de REST de Azure Text Analytics valora la entrada de texto para cada documento y devuelve identificadores de idioma con una puntuación que indica la solidez del análisis.The Language Detection feature of the Azure Text Analytics REST API evaluates text input for each document and returns language identifiers with a score that indicates the strength of the analysis.

Esta capacidad es útil para los almacenes de contenido que recopilan texto arbitrario, donde el idioma es desconocido.This capability is useful for content stores that collect arbitrary text, where language is unknown. Puede analizar los resultados del análisis para determinar el idioma que se usa en el documento de entrada.You can parse the results of this analysis to determine which language is used in the input document. La respuesta también devuelve una puntuación que refleja la confianza del modelo.The response also returns a score that reflects the confidence of the model. El valor de puntuación se encuentra entre 0 y 1.The score value is between 0 and 1.

La característica Detección de idioma puede detectar una amplia gama de idiomas, variantes, dialectos y algunos idiomas regionales o culturales.The Language Detection feature can detect a wide range of languages, variants, dialects, and some regional or cultural languages. La lista exacta de idiomas para esta característica no está publicada.The exact list of languages for this feature isn't published.

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.If you have content expressed in a less frequently used language, you can try the Language Detection feature to see if it returns a code. La respuesta para los idiomas que no se pueden detectar es unknown.The response for languages that can't be detected is unknown.

Sugerencia

Text Analytics proporciona también una imagen de contenedor de Docker basada en Linux para la detección del lenguaje, por lo que puede instalar y ejecutar el contenedor de Text Analytics cerca de los datos.Text Analytics also provides a Linux-based Docker container image for language detection, so you can install and run the Text Analytics container close to your data.

PreparaciónPreparation

Debe tener documentos JSON en este formato: Identificador y texto.You must have JSON documents in this format: ID and text.

El tamaño del documento debe ser inferior a 5.120 caracteres por documento.The document size must be under 5,120 characters per document. Puede tener hasta 1000 elementos (identificadores) por colección.You can have up to 1,000 items (IDs) per collection. La colección se envía en el cuerpo de la solicitud.The collection is submitted in the body of the request. En el siguiente ejemplo se presenta contenido que se podría enviar para la detección del idioma:The following sample is an example of content you might submit for language detection:

    {
        "documents": [
            {
                "id": "1",
                "text": "This document is in English."
            },
            {
                "id": "2",
                "text": "Este documento está en inglés."
            },
            {
                "id": "3",
                "text": "Ce document est en anglais."
            },
            {
                "id": "4",
                "text": "本文件为英文"
            },
            {
                "id": "5",
                "text": "Этот документ на английском языке."
            }
        ]
    }

Paso 1: Estructurar la solicitudStep 1: Structure the request

Para obtener más información sobre la definición de la solicitud, consulte Llamada a la API de Text Analytics.For more information on request definition, see Call the Text Analytics API. Recapitulamos los siguientes puntos para su comodidad:The following points are restated for convenience:

  • Cree una solicitud POST.Create a POST request. Para revisar la documentación de la API para esta solicitud, consulte API de Detección de idioma.To review the API documentation for this request, see the Language Detection API.

  • Establezca el punto de conexión HTTP para la detección de idioma.Set the HTTP endpoint for language detection. Use un recurso de Text Analytics en Azure o un contenedor de Text Analytics con instancias.Use either a Text Analytics resource on Azure or an instantiated Text Analytics container. Debe incluir /text/analytics/v3.0/languages en la dirección URL.You must include /text/analytics/v3.0/languages in the URL. Por ejemplo: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v3.0/languages.For example: https://<your-custom-subdomain>.cognitiveservices.azure.com/text/analytics/v3.0/languages.

  • Establezca un encabezado de solicitud para incluir la clave de acceso para las operaciones de Text Analytics.Set a request header to include the access key for Text Analytics operations.

  • En el cuerpo de la solicitud, proporcione la colección de documentos JSON que preparó para este análisis.In the request body, provide the JSON documents collection you prepared for this analysis.

Sugerencia

Use Postman o abra la consola de prueba de la API en la documentación para estructurar y enviar una solicitud POST al servicio.Use Postman or open the API testing console in the documentation to structure a request and POST it to the service.

Paso 2: Publicar la solicitudStep 2: POST the request

El análisis se realiza tras la recepción de la solicitud.Analysis is performed upon receipt of the request. Para obtener información sobre el tamaño y el número de solicitudes que puede enviar por minuto y segundo, consulte la sección de límites de datos de la introducción.For information on the size and number of requests you can send per minute and second, see the data limits section in the overview.

Recuerde que el servicio no tiene estado.Recall that the service is stateless. No se almacena ningún dato en su cuenta.No data is stored in your account. Los resultados se devuelven inmediatamente en la respuesta.Results are returned immediately in the response.

Paso 3: View the resultsStep 3: View the results

Todas las solicitudes POST devolverán una respuesta con formato JSON con los identificadores y las propiedades detectadas.All POST requests return a JSON-formatted response with the IDs and detected properties.

La salida se devuelve inmediatamente.Output is returned immediately. Puede transmitir los resultados a una aplicación que acepte JSON o guardar la salida en un archivo en el sistema local.You can stream the results to an application that accepts JSON or save the output to a file on the local system. Después, importe el resultado en una aplicación que pueda usar para ordenar los datos, realizar búsquedas en ellos y manipularlos.Then, import the output into an application that you can use to sort, search, and manipulate the data.

Los resultados de la solicitud de ejemplo deben parecerse al siguiente JSON.Results for the example request should look like the following JSON. Tenga en cuenta que es un documento con varios elementos.Notice that it's one document with multiple items. La salida está disponible en inglés.Output is in English. Los identificadores de idioma incluyen un nombre descriptivo y un código de idioma en formato ISO 639-1.Language identifiers include a friendly name and a language code in ISO 639-1 format.

Una puntuación positiva de 1,0 expresa el nivel más alto de confianza posible del análisis.A positive score of 1.0 expresses the highest possible confidence level of the analysis.

{
    "documents": [
        {
            "id": "1",
            "detectedLanguage": {
                "name": "English",
                "iso6391Name": "en",
                "confidenceScore": 1.0
            },
            "warnings": []
        },
        {
            "id": "2",
            "detectedLanguage": {
                "name": "Spanish",
                "iso6391Name": "es",
                "confidenceScore": 1.0
            },
            "warnings": []
        },
        {
            "id": "3",
            "detectedLanguage": {
                "name": "French",
                "iso6391Name": "fr",
                "confidenceScore": 1.0
            },
            "warnings": []
        },
        {
            "id": "4",
            "detectedLanguage": {
                "name": "Chinese_Simplified",
                "iso6391Name": "zh_chs",
                "confidenceScore": 1.0
            },
            "warnings": []
        },
        {
            "id": "5",
            "detectedLanguage": {
                "name": "Russian",
                "iso6391Name": "ru",
                "confidenceScore": 1.0
            },
            "warnings": []
        }
    ],
    "errors": [],
    "modelVersion": "2019-10-01"
}

Contenido ambiguoAmbiguous content

En algunos casos, puede ser difícil eliminar la ambigüedad de los idiomas en función de la entrada.In some cases it may be hard to disambiguate languages based on the input. Puede usar el parámetro countryHint para especificar un código de país o región de dos letras.You can use the countryHint parameter to specify a 2-letter country/region code. De forma predeterminada, la API usa "US" como valor de countryHint predeterminado; para quitar este comportamiento, puede restablecer este parámetro y configurarlo como una cadena countryHint = "" vacía.By default the API is using the "US" as the default countryHint, to remove this behavior you can reset this parameter by setting this value to empty string countryHint = "" .

Por ejemplo, "impossible" es igual en inglés que en francés, y si se proporciona con un contexto limitado, la respuesta se basará en la sugerencia de país o región de "US".For example, "Impossible" is common to both English and French and if given with limited context the response will be based on the "US" country/region hint. Si se sabe que el origen del texto procede de Francia, eso se puede proporcionar como sugerencia.If the origin of the text is known to be coming from France that can be given as a hint.

EntradaInput

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

El servicio tiene ahora contexto adicional para hacer un mejor juicio:The service now has additional context to make a better judgment:

SalidaOutput

    {
        "documents": [
            {
                "id": "1",
                "detectedLanguages": [
                    {
                        "name": "English",
                        "iso6391Name": "en",
                        "confidenceScore": 1
                    }
                ]
            },
            {
                "id": "2",
                "detectedLanguages": [
                    {
                        "name": "French",
                        "iso6391Name": "fr",
                        "confidenceScore": 1
                    }
                ]
            }
        ],
        "errors": []
    }

Si el analizador no puede analizar la entrada, devuelve (Unknown).If the analyzer can't parse the input, it returns (Unknown). Un ejemplo es si se envía un bloque de texto que consta únicamente de números arábigos.An example is if you submit a text block that consists solely of Arabic numerals.

    {
        "id": "5",
        "detectedLanguages": [
            {
                "name": "(Unknown)",
                "iso6391Name": "(Unknown)",
                "confidenceScore": "NaN"
            }
        ]
    }

Contenido en varios idiomasMixed-language content

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.Mixed-language content within the same document returns the language with the largest representation in the content, but with a lower positive rating. La clasificación refleja la fuerza marginal de la evaluación.The rating reflects the marginal strength of the assessment. En el ejemplo siguiente, la entrada es una combinación de inglés, español y francés.In the following example, input is a blend of English, Spanish, and French. El analizador cuenta los caracteres de cada segmento para determinar el idioma predominante.The analyzer counts characters in each segment to determine the predominant language.

EntradaInput

    {
      "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?"
        }
      ]
    }

SalidaOutput

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.The resulting output consists of the predominant language, with a score of less than 1.0, which indicates a weaker level of confidence.

    {
      "documents": [
        {
          "id": "1",
          "detectedLanguages": [
            {
              "name": "Spanish",
              "iso6391Name": "es",
              "confidencescore": 0.94
            }
          ]
        }
      ],
      "errors": []
    }

ResumenSummary

En este artículo, ha aprendido los conceptos y el flujo de trabajo de la detección del idioma con Text Analytics de Azure Cognitive Services.In this article, you learned concepts and workflow for language detection by using Text Analytics in Azure Cognitive Services. Se explicaron y mostraron los siguientes puntos:The following points were explained and demonstrated:

  • Detección de idioma está disponible para una amplia gama de idiomas, variantes, dialectos y algunos idiomas regionales o culturales.Language detection is available for a wide range of languages, variants, dialects, and some regional or cultural languages.
  • Los documentos JSON del cuerpo de la solicitud incluyen un identificador y texto.JSON documents in the request body include an ID and text.
  • La solicitud POST se realiza a un punto de conexión /languages, mediante una clave de acceso y un punto de conexión personalizados, que sean válidos para la suscripción.The POST request is to a /languages endpoint by using a personalized access key and an endpoint that's valid for your subscription.
  • La salida de respuesta consta de los identificadores de idioma para cada identificador de documento.Response output consists of language identifiers for each document ID. La salida se puede transmitir a cualquier aplicación que acepte JSON.The output can be streamed to any app that accepts JSON. Entre las aplicaciones de ejemplo se incluyen Excel y Power BI, por nombrar algunas.Example apps include Excel and Power BI, to name a few.

Consulte tambiénSee also