Share via


Inicio rápido: Reconocimiento de entidades con nombre personalizadas

Use este artículo para empezar a crear un proyecto de NER personalizado en el que entrene modelos personalizados para el reconocimiento de entidades. Un modelo es software de inteligencia artificial que se entrena para hacer una tarea determinada. Para este sistema, los modelos extraen las entidades con nombre y se entrenan mediante el aprendizaje de datos etiquetados.

En este artículo, usamos Language Studio para mostrar los conceptos clave del reconocimiento de entidades con nombre personalizado (NER). Por ejemplo, crearemos un modelo NER personalizado para extraer las entidades pertinentes de los contratos de préstamo, como:

  • Fecha del contrato
  • Nombre, dirección, ciudad y estado del prestatario
  • Nombre, dirección, ciudad y estado del prestamista
  • Importes de préstamo e intereses

Prerrequisitos

Creación de un recurso de Lenguaje de Azure AI y una cuenta de almacenamiento de Azure

Para poder usar NER personalizado, deberá crear un recurso de Lenguaje de Azure AI, que le dará las credenciales necesarias para crear un proyecto y empezar a entrenar un modelo. También necesitará una cuenta de almacenamiento de Azure, donde pueda cargar el conjunto de datos que se usará para compilar el modelo.

Importante

Para comenzar a trabajar rápidamente, se recomienda crear un recurso de Lenguaje de Azure AI mediante los pasos que se proporcionan en este artículo. Con los pasos en este artículo podrá crear el recurso de idioma y la cuenta de almacenamiento al mismo tiempo, lo que resulta más fácil que hacerlo más tarde.

Si tiene un recurso preexistente que le gustaría usar, deberá conectarlo a la cuenta de almacenamiento. Consulte instrucciones para usar un recurso preexistente para obtener más información.

Creación de un nuevo recurso en Azure Portal

  1. Inicie sesión en Azure Portal y cree un recurso de Lenguaje de Azure AI.

  2. En la ventana que se abre, seleccione Clasificación de texto personalizado y reconocimiento de entidades con nombre personalizadas en las características personalizadas. Seleccione Continuar para crear el recurso en la parte inferior de la pantalla.

    A screenshot showing custom text classification & custom named entity recognition in the Azure portal.

  3. Cree un recurso de idioma con los detalles siguientes.

    Nombre Descripción
    Suscripción Su suscripción de Azure.
    Grupo de recursos Grupo de recursos que contendrá su recurso. Puede elegir uno existente o crear uno.
    Region La región del recurso de idioma. Por ejemplo, "Oeste de EE. UU. 2".
    Nombre Nombre del recurso.
    Plan de tarifa Plan de tarifa del recurso de idioma. Puede usar el nivel de servicio Gratis (F0) para probar el servicio.

    Nota

    Si recibe un mensaje que indica "la cuenta de inicio de sesión no es propietaria del grupo de recursos de la cuenta de almacenamiento seleccionada", la cuenta debe tener asignado un rol de propietario en el grupo de recursos para poder crear un recurso de idioma. Póngase en contacto con el propietario de la suscripción de Azure para obtener ayuda.

  4. En la sección Clasificación de texto personalizado y reconocimiento de entidades con nombre personalizadas, seleccione una cuenta de almacenamiento existente o Nueva cuenta de almacenamiento. Estos valores son para ayudarle a empezar y no necesariamente los valores de la cuenta de almacenamiento que querrá usar en entornos de producción. Para evitar la latencia durante la compilación del proyecto, conéctese a cuentas de almacenamiento en la misma región que el recurso de idioma.

    Valor de la cuenta de almacenamiento Valor recomendado
    Nombre de la cuenta de almacenamiento Cualquier nombre
    Tipo de cuenta de almacenamiento LRS estándar
  5. Asegúrese de que el Aviso de IA responsable esté activado. Seleccione Revisar y crear en la parte inferior de la página y, luego, seleccione Crear.

Carga de los datos de ejemplo en el contenedor de blobs

Después de crear una cuenta de almacenamiento de Azure y conectarla al recurso de idioma, deberá cargar los documentos del conjunto de datos de muestra en el directorio raíz de su contenedor. Estos archivos se usarán más adelante para entrenar el modelo.

  1. Descargue el conjunto de datos de ejemplo de GitHub.

  2. Abra el archivo .zip y extraiga la carpeta que contiene los documentos.

  3. En Azure Portal, navegue hasta la cuenta de almacenamiento que ha creado y selecciónela.

  4. En la cuenta de almacenamiento, seleccione Contenedores en el menú de la izquierda, que se encuentra debajo de Almacenamiento de datos. En la pantalla que aparece, seleccione + Contenedor. Asigne al contenedor el nombre example-data y deje el Nivel de acceso público predeterminado.

    A screenshot showing the main page for a storage account.

  5. Una vez creado el contenedor, haga clic en él. A continuación, seleccione el botón Cargar para seleccionar los archivos .txt y .json que descargó anteriormente.

    A screenshot showing the button for uploading files to the storage account.

El conjunto de datos de muestra proporcionado contiene 20 contratos. Cada contrato incluye dos partes: un prestamista y un prestatario. Puede usar el archivo de ejemplo proporcionado para extraer información pertinente de ambas partes, una fecha de contrato, el importe del préstamo y una tasa de interés.

Creación de un proyecto de reconocimiento de entidades con nombre personalizado

Una vez configurados el recurso y la cuenta de almacenamiento, cree un nuevo proyecto de NER personalizado. Un proyecto es un área de trabajo para compilar modelos de Machine Learning personalizados basados en los datos. A su proyecto solo puede acceder usted y otros usuarios que tengan acceso al recurso de idioma que se usa.

  1. Inicie sesión en Language Studio. Aparecerá una ventana que le permitirá seleccionar la suscripción y el recurso de idioma. Seleccione el recurso de idioma que creó en el paso anterior.

  2. En la sección Extraer información de Language Studio, seleccione Reconocimiento de entidades con nombre personalizadas.

    A screenshot showing the location of custom NER in the Language Studio landing page.

  3. Seleccione Create new project (Crear proyecto) en el menú superior de la página de proyectos. La creación de un proyecto le permitirá etiquetar datos, entrenar, evaluar, mejorar e implementar los modelos.

    A screenshot of the project creation page.

  4. Después de hacer clic en Create new project (Crear proyecto), aparecerá una ventana para conectar la cuenta de almacenamiento. Si ya ha conectado una cuenta de almacenamiento, verá la cuenta de almacenamiento conectada. Si no es así, elija la cuenta de almacenamiento en la lista desplegable que aparece y seleccione Conectar cuenta de almacenamiento; esto establecerá los roles necesarios para la cuenta de almacenamiento. Este paso posiblemente devolverá un error si no está asignado como propietario en la cuenta de almacenamiento.

    Nota

    • Solo debe realizar este paso una vez para cada nuevo recurso que use.
    • Este proceso es irreversible: si conecta una cuenta de almacenamiento al recurso de idioma, no podrá desconectarla más tarde.
    • Solo puede conectar el recurso de idioma a una cuenta de almacenamiento.

    A screenshot showing the storage connection screen.

  5. Escriba la información del proyecto, incluido un nombre, una descripción y el idioma de los archivos del proyecto. Si usa el conjunto de datos de ejemplo, seleccione Inglés. El nombre del proyecto no se podrá cambiar posteriormente. Seleccione Siguiente.

    Sugerencia

    El conjunto de datos no tiene que estar completamente en el mismo idioma. Puede tener varios documentos, cada uno de ellos con distintos idiomas admitidos. Si el conjunto de datos contiene documentos de distintos idiomas o si espera textos en idiomas diferentes durante el tiempo de ejecución, seleccione la opción Enable multi-lingual dataset (Habilitar conjunto de datos multilingüe) al especificar la información básica del proyecto. Esta opción se puede habilitar más adelante desde la página Configuración del proyecto.

  6. Seleccione el contenedor en el que ha cargado el conjunto de datos. Si ya ha etiquetado los datos, asegúrese de que sigue el formato admitido y seleccione Sí, mis archivos ya están etiquetados y he formateado el archivo de etiquetas JSON y seleccione el archivo de etiquetas en el menú desplegable. Seleccione Next (Siguiente).

  7. Revise los datos especificados y seleccione Create Project (Crear proyecto).

Entrenamiento de un modelo

Después de crear un proyecto, continúe y empiece a etiquetar los documentos que tiene en el contenedor conectado al proyecto. En este inicio rápido, ha importado un conjunto de datos etiquetado de ejemplo e inicializado el proyecto con el archivo de etiquetas JSON de ejemplo.

Para empezar a entrenar el modelo desde Language Studio:

  1. Seleccione Trabajos de entrenamiento en el menú de la izquierda.

  2. Seleccione Iniciar un trabajo de entrenamiento en el menú superior.

  3. Seleccione Train a new model (Entrenar un nuevo modelo) y escriba el nombre del modelo en el cuadro de texto. Para sobrescribir un modelo existente, seleccione esta opción y elija el modelo que quiera sobrescribir del menú desplegable. La sobrescritura de un modelo entrenado es irreversible, pero no afectará a los modelos implementados hasta que implemente el nuevo modelo.

    Create a new training job

  4. Seleccione el método de división de datos. Puede elegir Automatically splitting the testing set from training data (Dividir automáticamente el conjunto de pruebas de los datos de entrenamiento), y el sistema dividirá los datos etiquetados entre los conjuntos de entrenamiento y pruebas, según los porcentajes especificados. También puede usar una división manual de datos de entrenamiento y pruebas; esta opción solo está habilitada si ha agregado documentos al conjunto de pruebas durante el etiquetado de datos. Consulte Entrenamiento de un modelo para obtener información sobre la división de datos.

  5. Seleccione el botón Entrenar.

  6. Si selecciona el id. de trabajo de entrenamiento de la lista, aparecerá un panel lateral donde podrá comprobar el progreso del entrenamiento, el estado del trabajo y otros detalles de este trabajo.

    Nota

    • Los trabajos de entrenamiento completados correctamente serán los únicos que generarán modelos.
    • El entrenamiento puede tardar entre un par de minutos y varias horas en función del tamaño de los datos etiquetados.
    • Solo puede haber un trabajo de entrenamiento ejecutándose en un momento dado. No se puede iniciar otro trabajo de entrenamiento dentro del mismo proyecto hasta que se complete el trabajo en ejecución.

Implementación del modelo

Por lo general, después de entrenar un modelo, revisaría sus detalles de evaluación y realizaría mejoras si fuera necesario. En este inicio rápido, solo implementará el modelo y lo tendrá disponible para probarlo en Language Studio, o bien puede llamar a la API de predicción.

Para implementar el modelo desde Language Studio:

  1. Seleccione Implementación de un modelo en el menú de la izquierda.

  2. Seleccione Agregar implementación para iniciar un nuevo trabajo de implementación.

    A screenshot showing the deployment button

  3. Seleccione Crear nueva implementación para crear una nueva implementación y asignar un modelo entrenado de la lista desplegable siguiente. También puede sobrescribir una implementación existente; para ello, seleccione esta opción y el modelo entrenado que quiere asignar en la lista desplegable siguiente.

    Nota:

    La sobrescritura de una implementación existente no requiere cambios en la llamada de la API de predicción, pero los resultados que obtendrá se basarán en el modelo recién asignado.

    A screenshot showing the deployment screen

  4. Seleccione Implementar para iniciar el trabajo de implementación.

  5. Después de que la implementación se realice correctamente, aparecerá una fecha de expiración junto a ella. La expiración de la implementación aparece cuando el modelo implementado deja de estar disponible para usarlo en la predicción, lo que suele ocurrir doce meses después de que expire una configuración de entrenamiento.

Comprobación del modelo

Una vez implementado el modelo, puede empezar a usarlo para extraer entidades del texto mediante Prediction API. Para este inicio rápido, usará Language Studio para enviar la tarea de reconocimiento de entidades personalizada y ver los resultados. En el conjunto de datos de ejemplo que descargó anteriormente, puede encontrar algunos documentos de prueba que puede usar en este paso.

Para comprobar los modelos implementados desde Language Studio:

  1. Seleccione Prueba de implementaciones en el menú lateral izquierdo.

  2. Seleccione la implementación que quiere probar. Solo se pueden probar modelos que estén asignados a implementaciones.

  3. En proyectos multilingües, seleccione el idioma del texto que está probando en la lista desplegable de idiomas.

  4. Seleccione la implementación que quiera consultar/probar en la lista desplegable.

  5. Puede escribir el texto que quiere enviar a la solicitud o cargar un archivo .txt para usarlo.

  6. En el menú superior, seleccione Ejecutar la prueba.

  7. En la pestaña Result (Resultado), puede ver las entidades extraídas del texto y sus tipos. También puede ver la respuesta JSON en la pestaña JSON.

A screenshot showing the model test results.

Limpieza de recursos

Cuando ya no necesite el proyecto, puede eliminarlo mediante Language Studio. Seleccione Reconocimiento de entidades con nombre personalizadas (NER) en el menú superior, seleccione el proyecto que quiera eliminar y, a continuación, seleccione Eliminar en el menú superior.

Requisitos previos

Creación de un recurso de Lenguaje de Azure AI y una cuenta de almacenamiento de Azure

Para poder usar NER personalizado, deberá crear un recurso de Lenguaje de Azure AI, que le dará las credenciales necesarias para crear un proyecto y empezar a entrenar un modelo. También necesitará una cuenta de almacenamiento de Azure, en la que pueda cargar el conjunto de datos que se usará para compilar el modelo.

Importante

Para empezar a trabajar rápidamente, se recomienda crear un recurso de Lenguaje de Azure AI mediante los pasos que se indican en este artículo, que le permitirán crear el recurso de lenguaje y crear o conectar una cuenta de almacenamiento al mismo tiempo, lo que resulta más fácil que hacerlo después.

Si tiene un recurso preexistente que le gustaría usar, deberá conectarlo a la cuenta de almacenamiento. Para obtener más información, consulte Creación de un proyecto.

Creación de un nuevo recurso en Azure Portal

  1. Inicie sesión en Azure Portal y cree un recurso de Lenguaje de Azure AI.

  2. En la ventana que se abre, seleccione Clasificación de texto personalizado y reconocimiento de entidades con nombre personalizadas en las características personalizadas. Seleccione Continuar para crear el recurso en la parte inferior de la pantalla.

    A screenshot showing custom text classification & custom named entity recognition in the Azure portal.

  3. Cree un recurso de idioma con los detalles siguientes.

    Nombre Descripción
    Suscripción Su suscripción de Azure.
    Grupo de recursos Grupo de recursos que contendrá su recurso. Puede elegir uno existente o crear uno.
    Region La región del recurso de idioma. Por ejemplo, "Oeste de EE. UU. 2".
    Nombre Nombre del recurso.
    Plan de tarifa Plan de tarifa del recurso de idioma. Puede usar el nivel de servicio Gratis (F0) para probar el servicio.

    Nota

    Si recibe un mensaje que indica "la cuenta de inicio de sesión no es propietaria del grupo de recursos de la cuenta de almacenamiento seleccionada", la cuenta debe tener asignado un rol de propietario en el grupo de recursos para poder crear un recurso de idioma. Póngase en contacto con el propietario de la suscripción de Azure para obtener ayuda.

  4. En la sección Clasificación de texto personalizado y reconocimiento de entidades con nombre personalizadas, seleccione una cuenta de almacenamiento existente o Nueva cuenta de almacenamiento. Estos valores son para ayudarle a empezar y no necesariamente los valores de la cuenta de almacenamiento que querrá usar en entornos de producción. Para evitar la latencia durante la compilación del proyecto, conéctese a cuentas de almacenamiento en la misma región que el recurso de idioma.

    Valor de la cuenta de almacenamiento Valor recomendado
    Nombre de la cuenta de almacenamiento Cualquier nombre
    Tipo de cuenta de almacenamiento LRS estándar
  5. Asegúrese de que el Aviso de IA responsable esté activado. Seleccione Revisar y crear en la parte inferior de la página y, luego, seleccione Crear.

Carga de los datos de ejemplo en el contenedor de blobs

Después de crear una cuenta de almacenamiento de Azure y conectarla al recurso de idioma, deberá cargar los documentos del conjunto de datos de muestra en el directorio raíz de su contenedor. Estos archivos se usarán más adelante para entrenar el modelo.

  1. Descargue el conjunto de datos de ejemplo de GitHub.

  2. Abra el archivo .zip y extraiga la carpeta que contiene los documentos.

  3. En Azure Portal, navegue hasta la cuenta de almacenamiento que ha creado y selecciónela.

  4. En la cuenta de almacenamiento, seleccione Contenedores en el menú de la izquierda, que se encuentra debajo de Almacenamiento de datos. En la pantalla que aparece, seleccione + Contenedor. Asigne al contenedor el nombre example-data y deje el Nivel de acceso público predeterminado.

    A screenshot showing the main page for a storage account.

  5. Una vez creado el contenedor, haga clic en él. A continuación, seleccione el botón Cargar para seleccionar los archivos .txt y .json que descargó anteriormente.

    A screenshot showing the button for uploading files to the storage account.

El conjunto de datos de muestra proporcionado contiene 20 contratos. Cada contrato incluye dos partes: un prestamista y un prestatario. Puede usar el archivo de ejemplo proporcionado para extraer información pertinente de ambas partes, una fecha de contrato, el importe del préstamo y una tasa de interés.

Obtención del punto de conexión y las claves del recurso

  1. Vaya a la página de información general del recurso en Azure Portal.

  2. En el menú de la izquierda, seleccione Claves y punto de conexión. Usará el punto de conexión y la clave para las solicitudes de API.

    A screenshot showing the key and endpoint page in the Azure portal

Creación de un proyecto de NER personalizado

Una vez configurados el recurso y la cuenta de almacenamiento, cree un nuevo proyecto de NER personalizado. Un proyecto es un área de trabajo para compilar modelos de Machine Learning personalizados basados en los datos. A su proyecto solo puede acceder usted y otros usuarios que tengan acceso al recurso de idioma que se usa.

Use el archivo de etiquetas que descargó de los datos de ejemplo en el paso anterior y agréguelo al cuerpo de la siguiente solicitud.

Desencadenamiento del trabajo del proyecto de importación

Envíe una solicitud POST con la dirección URL, los encabezados y el cuerpo JSON que se incluyen a continuación para importar el archivo de etiquetas. Asegúrese de que el archivo de etiquetas siga el formato aceptado.

Si ya existe un proyecto con el mismo nombre, se reemplazan los datos de ese proyecto.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{API-VERSION} Versión de la API a la que se llama. El valor al que se hace referencia aquí se corresponde con la versión más reciente publicada. Consulte Ciclo de vida del modelo para obtener más información sobre otras versiones de API disponibles. 2022-05-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Body

Utilice el siguiente código JSON en la solicitud. Reemplace los valores de los marcadores de posición por sus propios valores.

{
    "projectFileVersion": "{API-VERSION}",
    "stringIndexType": "Utf16CodeUnit",
    "metadata": {
        "projectName": "{PROJECT-NAME}",
        "projectKind": "CustomEntityRecognition",
        "description": "Trying out custom NER",
        "language": "{LANGUAGE-CODE}",
        "multilingual": true,
        "storageInputContainerName": "{CONTAINER-NAME}",
        "settings": {}
    },
    "assets": {
    "projectKind": "CustomEntityRecognition",
        "entities": [
            {
                "category": "Entity1"
            },
            {
                "category": "Entity2"
            }
        ],
        "documents": [
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 500,
                        "labels": [
                            {
                                "category": "Entity1",
                                "offset": 25,
                                "length": 10
                            },
                            {
                                "category": "Entity2",
                                "offset": 120,
                                "length": 8
                            }
                        ]
                    }
                ]
            },
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 100,
                        "labels": [
                            {
                                "category": "Entity2",
                                "offset": 20,
                                "length": 5
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
Clave Marcador de posición Valor Ejemplo
api-version {API-VERSION} Versión de la API a la que se llama. La versión que se use aquí debe ser la misma versión de API en la dirección URL. Obtenga más información sobre otras versiones de API disponibles 2022-03-01-preview
projectName {PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
projectKind CustomEntityRecognition El tipo de proyecto. CustomEntityRecognition
language {LANGUAGE-CODE} Una cadena que especifica el código de idioma de los documentos que se usan en el proyecto. Si el proyecto es un proyecto multilingüe, elija el código de idioma de la mayoría de los documentos. en-us
multilingual true Un valor booleano que le permite tener documentos en varios idiomas del conjunto de datos y, cuando se implementa el modelo, puede consultar el modelo en cualquier idioma admitido (no necesariamente incluido en los documentos de entrenamiento. Consulte Compatibilidad de idioma para obtener información sobre la compatibilidad multilingüe. true
storageInputContainerName {CONTAINER-NAME} Nombre del contenedor de almacenamiento de Azure donde ha cargado los documentos. myContainer
entities Matriz que contiene todos los tipos de entidad que tiene en el proyecto. Estos son los tipos de entidad que se extraerán de los documentos.
documents Matriz que contiene todos los documentos del proyecto y la lista de las entidades etiquetadas en cada documento. []
location {DOCUMENT-NAME} Ubicación de los documentos en el contenedor de almacenamiento. Puesto que todos los documentos están en la raíz del contenedor, este debe ser el nombre del documento. doc1.txt
dataset {DATASET} El conjunto de pruebas al que este archivo irá cuando se divida antes del entrenamiento. Consulte Entrenamiento de un modelo para obtener más información sobre cómo se dividen los datos. Los valores posibles que admite este campo son Train y Test. Train

Una vez que envíe la solicitud de API, recibirá una respuesta 202 que indica que el trabajo se ha enviado correctamente. En los encabezados de respuesta, extraiga el valor operation-location. Tendrá el formato siguiente:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} se usa para identificar la solicitud, ya que esta operación es asincrónica. Usará esta dirección URL para obtener el estado del trabajo de importación.

Posibles escenarios de error de esta solicitud:

  • El recurso seleccionado no tiene los permisos adecuados para la cuenta de almacenamiento.
  • El valor de storageInputContainerName especificado no existe.
  • Se ha usado un código de idioma no válido, o el tipo de código de idioma no es una cadena.
  • El valor de multilingual es una cadena y no un valor booleano.

Obtención del estado del trabajo de importación

Use la siguiente solicitud GET para obtener el estado de la importación del proyecto. Reemplace los valores de los marcadores de posición por sus propios valores.

URL de la solicitud

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{JOB-ID} Id. para buscar el estado del entrenamiento del modelo. Este valor se encuentra en el valor de encabezado location que recibió en el paso anterior. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versión de la API a la que se llama. El valor al que se hace referencia aquí se corresponde con la versión más reciente publicada. Consulte Ciclo de vida del modelo para obtener más información sobre otras versiones de API disponibles. 2022-05-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Entrenamiento de un modelo

Después de crear un proyecto, continúe y empiece a etiquetar los documentos que tiene en el contenedor conectado al proyecto. En este inicio rápido, ha importado un conjunto de datos etiquetado de ejemplo e inicializado el proyecto con el archivo de etiquetas JSON de ejemplo.

Inicio del trabajo de entrenamiento

Una vez importado el proyecto, puede empezar a entrenar el modelo.

Envíe una solicitud POST mediante la dirección URL, los encabezados y el cuerpo JSON para enviar un trabajo de entrenamiento. Reemplace los valores de los marcadores de posición por sus propios valores.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{API-VERSION} Versión de la API a la que se llama. El valor al que se hace referencia aquí se corresponde con la versión más reciente publicada. Consulte Ciclo de vida del modelo para obtener más información sobre otras versiones de API disponibles. 2022-05-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Cuerpo de la solicitud

Use el siguiente código JSON en el cuerpo de la solicitud. El modelo se denominará {MODEL-NAME} una vez completado el entrenamiento. Solo los trabajos de entrenamiento correctos generarán modelos.

{
	"modelLabel": "{MODEL-NAME}",
	"trainingConfigVersion": "{CONFIG-VERSION}",
	"evaluationOptions": {
		"kind": "percentage",
		"trainingSplitPercentage": 80,
		"testingSplitPercentage": 20
	}
}
Clave Marcador de posición Valor Ejemplo
modelLabel {MODEL-NAME} Nombre que se asignará al modelo una vez entrenado correctamente. myModel
trainingConfigVersion {CONFIG-VERSION} Se trata de la versión de modelo que se usará para entrenar el modelo. 2022-05-01
evaluationOptions Opción para dividir los datos en conjuntos de entrenamiento y pruebas. {}
kind percentage Métodos de división. Los valores posibles son percentage o manual. Para más información, consulte Cómo entrenar un modelo. percentage
trainingSplitPercentage 80 Porcentaje de los datos etiquetados que se incluirán en el conjunto de entrenamiento. El valor recomendado es 80. 80
testingSplitPercentage 20 Porcentaje de los datos etiquetados que se incluirán en el conjunto de pruebas. El valor recomendado es 20. 20

Nota

trainingSplitPercentage y testingSplitPercentage solo son necesarios si Kind está establecido en percentage y la suma de ambos porcentajes es igual a 100.

Una vez que envíe la solicitud de API, recibirá una respuesta 202 que indica que el trabajo se ha enviado correctamente. En los encabezados de respuesta, extraiga el valor location. Tendrá el formato siguiente:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} se usa para identificar la solicitud, ya que esta operación es asincrónica. Puede usar esta dirección URL para obtener el estado del entrenamiento.

Obtención del estado del trabajo de entrenamiento

El entrenamiento puede tardar entre 10 y 30 minutos en este conjunto de datos de ejemplo. Puede usar la siguiente solicitud para mantener el sondeo del estado del trabajo de entrenamiento hasta que se complete correctamente.

Use la siguiente solicitud GET para obtener el estado del proceso de entrenamiento del modelo. Reemplace los valores de los marcadores de posición por sus propios valores.

URL de la solicitud

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{JOB-ID} Id. para buscar el estado del entrenamiento del modelo. Este valor se encuentra en el valor de encabezado location que recibió en el paso anterior. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versión de la API a la que se llama. El valor al que se hace referencia aquí se corresponde con la versión más reciente publicada. Consulte Ciclo de vida del modelo para obtener más información sobre otras versiones de API disponibles. 2022-05-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Cuerpo de la respuesta

Una vez que envíe la solicitud, recibirá la siguiente respuesta.

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

Implementación del modelo

Por lo general, después de entrenar un modelo, revisaría sus detalles de evaluación y realizaría mejoras si fuera necesario. En este inicio rápido, solo implementará el modelo y estará a su disposición para que lo pruebe en Language Studio, o bien puede llamar a la API de predicción.

Inicio del trabajo de implementación

Envíe una solicitud PUT mediante la dirección URL, los encabezados y el cuerpo JSON para enviar un trabajo de implementación. Reemplace los valores de los marcadores de posición por sus propios valores.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{DEPLOYMENT-NAME} Nombre de la implementación. Este valor distingue mayúsculas de minúsculas. staging
{API-VERSION} Versión de la API a la que se llama. El valor al que se hace referencia aquí se corresponde con la versión más reciente publicada. Consulte Ciclo de vida del modelo para obtener más información sobre otras versiones de API disponibles. 2022-05-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Cuerpo de la solicitud

Use el siguiente código JSON en el cuerpo de la solicitud. Use el nombre del modelo que se va a asignar a la implementación.

{
  "trainedModelLabel": "{MODEL-NAME}"
}
Clave Marcador de posición Valor Ejemplo
trainedModelLabel {MODEL-NAME} Nombre del modelo que se asignará a la implementación. Solo puede asignar modelos entrenados correctamente. Este valor distingue mayúsculas de minúsculas. myModel

Una vez que envíe la solicitud de API, recibirá una respuesta 202 que indica que el trabajo se ha enviado correctamente. En los encabezados de respuesta, extraiga el valor operation-location. Tendrá el formato siguiente:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} se usa para identificar la solicitud, ya que esta operación es asincrónica. Puede usar esta dirección URL para obtener el estado de la implementación.

Obtención del estado del trabajo de implementación

Use la siguiente solicitud GET para consultar el estado del trabajo de implementación. Puede usar la dirección URL que recibió en el paso anterior o reemplazar los valores de los marcadores de posición siguientes por sus propios valores.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{DEPLOYMENT-NAME} Nombre de la implementación. Este valor distingue mayúsculas de minúsculas. staging
{JOB-ID} Id. para buscar el estado del entrenamiento del modelo. Se encuentra en el valor de encabezado location que recibió en el paso anterior. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} Versión de la API a la que se llama. El valor al que se hace referencia aquí se corresponde con la versión más reciente publicada. Consulte Ciclo de vida del modelo para obtener más información sobre otras versiones de API disponibles. 2022-05-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave Valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Cuerpo de la respuesta

Una vez que envíe la solicitud, recibirá la siguiente respuesta. Siga sondeando este punto de conexión hasta que el parámetro status cambie a "succeeded". Debe obtener un código 200 para indicar el éxito de la solicitud.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

Extracción de entidades personalizadas

Una vez implementado el modelo, puede empezar a usarlo para extraer entidades del texto mediante Prediction API. En el conjunto de datos de ejemplo que descargó anteriormente, puede encontrar algunos documentos de prueba que puede usar en este paso.

Envío de una tarea de NER personalizado

Use esta solicitud POST para iniciar una tarea de clasificación de texto.

{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Versión de la API a la que se llama. El valor al que se hace referencia aquí se corresponde con la versión más reciente publicada. Consulte Ciclo de vida del modelo para obtener más información sobre otras versiones de API disponibles. 2022-05-01

encabezados

Clave valor
Ocp-Apim-Subscription-Key La clave que proporciona acceso a esta API.

Body

{
  "displayName": "Extracting entities",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "{LANGUAGE-CODE}",
        "text": "Text1"
      },
      {
        "id": "2",
        "language": "{LANGUAGE-CODE}",
        "text": "Text2"
      }
    ]
  },
  "tasks": [
     {
      "kind": "CustomEntityRecognition",
      "taskName": "Entity Recognition",
      "parameters": {
        "projectName": "{PROJECT-NAME}",
        "deploymentName": "{DEPLOYMENT-NAME}"
      }
    }
  ]
}
Clave Marcador de posición Valor Ejemplo
displayName {JOB-NAME} Nombre del trabajo. MyJobName
documents [{},{}] Lista de documentos en los que se van a ejecutar las tareas. [{},{}]
id {DOC-ID} Nombre o identificador del documento. doc1
language {LANGUAGE-CODE} Cadena donde se especifica el código de idioma del documento. Si esta clave no se ha especificado, el servicio toma el idioma predeterminado del proyecto que se seleccionó durante la creación del proyecto. Consulte Compatibilidad de idiomas para ver una lista de los códigos de idioma admitidos. en-us
text {DOC-TEXT} Tarea de documento en la que ejecutar las tareas. Lorem ipsum dolor sit amet
tasks Lista de tareas que queremos realizar. []
taskName CustomEntityRecognition Nombre de la tarea. CustomEntityRecognition
parameters Lista de parámetros que se van a pasar a la tarea.
project-name {PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
deployment-name {DEPLOYMENT-NAME} Nombre de la implementación. Este valor distingue mayúsculas de minúsculas. prod

Response

Recibirá una respuesta 202, que indica que la tarea se ha enviado correctamente. En los encabezados de la respuesta, extraiga el valor de operation-location. operation-location tiene el formato siguiente:

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}

Puede usar esta dirección URL para consultar el estado de finalización de la tarea y obtener los resultados cuando la tarea se complete.

Obtención de resultados de la tarea

Use la siguiente solicitud GET para consultar el estado y los resultados de la tarea de reconocimiento de entidades personalizado.

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} Versión de la API a la que se llama. El valor al que se hace referencia aquí se corresponde con la versión más reciente publicada. Consulte Ciclo de vida del modelo para obtener más información sobre otras versiones de API disponibles. 2022-05-01

encabezados

Clave valor
Ocp-Apim-Subscription-Key La clave que proporciona acceso a esta API.

Cuerpo de la respuesta

La respuesta será un documento JSON con los parámetros siguientes.

{
  "createdDateTime": "2021-05-19T14:32:25.578Z",
  "displayName": "MyJobName",
  "expirationDateTime": "2021-05-19T14:32:25.578Z",
  "jobId": "xxxx-xxxx-xxxxx-xxxxx",
  "lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
  "status": "succeeded",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "EntityRecognitionLROResults",
        "taskName": "Recognize Entities",
        "lastUpdateDateTime": "2020-10-01T15:01:03Z",
        "status": "succeeded",
        "results": {
          "documents": [
            {
              "entities": [
                {
                  "category": "Event",
                  "confidenceScore": 0.61,
                  "length": 4,
                  "offset": 18,
                  "text": "trip"
                },
                {
                  "category": "Location",
                  "confidenceScore": 0.82,
                  "length": 7,
                  "offset": 26,
                  "subcategory": "GPE",
                  "text": "Seattle"
                },
                {
                  "category": "DateTime",
                  "confidenceScore": 0.8,
                  "length": 9,
                  "offset": 34,
                  "subcategory": "DateRange",
                  "text": "last week"
                }
              ],
              "id": "1",
              "warnings": []
            }
          ],
          "errors": [],
          "modelVersion": "2020-04-01"
        }
      }
    ]
  }
}

Limpieza de recursos

Cuando ya no necesite el proyecto, puede eliminarlo con la siguiente solicitud DELETE. Reemplace los valores de los marcadores de posición por sus propios valores.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Marcador de posición Valor Ejemplo
{ENDPOINT} Punto de conexión para autenticar la solicitud de API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Nombre del proyecto. Este valor distingue mayúsculas de minúsculas. myProject
{API-VERSION} Versión de la API a la que se llama. El valor al que se hace referencia aquí se corresponde con la versión más reciente publicada. Consulte Ciclo de vida del modelo para obtener más información sobre otras versiones de API disponibles. 2022-05-01

encabezados

Use el siguiente encabezado para autenticar la solicitud.

Clave valor
Ocp-Apim-Subscription-Key Clave para el recurso. Se usa para autenticar las solicitudes de API.

Una vez que envíe la solicitud de API, recibirá una respuesta 202 que indica que se ha realizado correctamente, lo que significa que el proyecto se ha eliminado. Una llamada correcta devuelve un encabezado Operation-Location que se usa para comprobar el estado del trabajo.

Pasos siguientes

Después de crear el modelo de extracción de entidades, puede hacer lo siguiente:

Cuando empiece a crear sus propios proyectos de NER personalizados, use los artículos de procedimientos para obtener información más detallada sobre el etiquetado entrenamiento y consumo del modelo: