Inicio rápido: Detección de entidades con nombre (NER)

Documentación de referencia | Ejemplos adicionales | Paquete (NuGet) | Código fuente de biblioteca

Use este inicio rápido para crear una aplicación de Reconocimiento de entidades con nombre (NER) con la biblioteca cliente de .NET. En el ejemplo siguiente, creará una aplicación de C# que puede identificar entidades reconocidas en el texto.

Sugerencia

Puede usar Language Studio para probar las características del servicio de lenguaje sin necesidad de escribir código.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita
  • IDE de Visual Studio
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido pegará la clave y el punto de conexión en el código siguiente.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
  • Para usar la característica Analizar, necesitará un recurso de idioma con el plan de tarifa estándar (S).

Instalación

Creación de una aplicación de .NET Core

Utilice el IDE de Visual Studio para crear una aplicación de consola de .NET Core. Así se creará un proyecto "Hola mundo" con un solo archivo de origen de C#: program.cs.

Instale la biblioteca cliente, para lo que debe hacer clic con el botón derecho en la solución en el Explorador de soluciones y seleccionar Administrar paquetes NuGet. En el administrador de paquetes que se abre, seleccione Examinar y busque Azure.AI.TextAnalytics. Seleccione la versión 5.2.0 e Instalar. También puede usar la Consola del Administrador de paquetes.

Ejemplo de código

Copie el código siguiente en el archivo program.cs. No olvide reemplazar la variable key por la clave del recurso y la variable endpoint por el punto de conexión del recurso. Luego, ejecute el código.

Importante

Vaya a Azure Portal. Si el recurso de lenguaje que ha creado en la sección Requisitos previos se ha implementado correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Para encontrar la clave y el punto de conexión, vaya a la página Claves y punto de conexión del recurso, en Administración de recursos.

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Consulte el artículo sobre seguridad de los servicios de Azure AI para más información.

using Azure;
using System;
using Azure.AI.TextAnalytics;

namespace Example
{
    class Program
    {
        private static readonly AzureKeyCredential credentials = new AzureKeyCredential("replace-with-your-key-here");
        private static readonly Uri endpoint = new Uri("replace-with-your-endpoint-here");
        
        // Example method for extracting named entities from text 
        static void EntityRecognitionExample(TextAnalyticsClient client)
        {
            var response = client.RecognizeEntities("I had a wonderful trip to Seattle last week.");
            Console.WriteLine("Named Entities:");
            foreach (var entity in response.Value)
            {
                Console.WriteLine($"\tText: {entity.Text},\tCategory: {entity.Category},\tSub-Category: {entity.SubCategory}");
                Console.WriteLine($"\t\tScore: {entity.ConfidenceScore:F2},\tLength: {entity.Length},\tOffset: {entity.Offset}\n");
            }
        }

        static void Main(string[] args)
        {
            var client = new TextAnalyticsClient(endpoint, credentials);
            EntityRecognitionExample(client);

            Console.Write("Press any key to exit.");
            Console.ReadKey();
        }

    }
}

Output

Named Entities:
        Text: trip,     Category: Event,        Sub-Category:
                Score: 0.74,    Length: 4,      Offset: 18

        Text: Seattle,  Category: Location,     Sub-Category: GPE
                Score: 1.00,    Length: 7,      Offset: 26

        Text: last week,        Category: DateTime,     Sub-Category: DateRange
                Score: 0.80,    Length: 9,      Offset: 34

Documentación de referencia | Ejemplos adicionales | Paquete (Maven) | Código fuente de biblioteca

Use este inicio rápido para crear una aplicación de Reconocimiento de entidades con nombre (NER) con la biblioteca cliente de Java. En el ejemplo siguiente, creará una aplicación de Java que puede identificar entidades reconocidas en el texto.

Sugerencia

Puede usar Language Studio para probar las características del servicio de lenguaje sin necesidad de escribir código.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita
  • Kit de desarrollo de Java (JDK), versión 8 o posterior
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido pegará la clave y el punto de conexión en el código siguiente.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
  • Para usar la característica Analizar, necesitará un recurso de idioma con el plan de tarifa estándar (S).

Instalación

Incorporación de la biblioteca cliente

Cree un proyecto de Maven en el entorno de desarrollo o IDE que prefiera. Luego, agregue la siguiente dependencia al archivo pom.xml del proyecto. La sintaxis de implementación de otras herramientas de compilación se puede encontrar en línea.

<dependencies>
     <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-textanalytics</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>

Ejemplo de código

Cree un archivo de Java llamado Example.java. Abra el archivo y copie el código siguiente. No olvide reemplazar la variable key por la clave del recurso y la variable endpoint por el punto de conexión del recurso. Luego, ejecute el código.

Importante

Vaya a Azure Portal. Si el recurso de lenguaje que ha creado en la sección Requisitos previos se ha implementado correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Para encontrar la clave y el punto de conexión, vaya a la página Claves y punto de conexión del recurso, en Administración de recursos.

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Consulte el artículo sobre seguridad de los servicios de Azure AI para más información.

import com.azure.core.credential.AzureKeyCredential;
import com.azure.ai.textanalytics.models.*;
import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
import com.azure.ai.textanalytics.TextAnalyticsClient;

public class Example {

    private static String KEY = "replace-with-your-key-here";
    private static String ENDPOINT = "replace-with-your-endpoint-here";

    public static void main(String[] args) {
        TextAnalyticsClient client = authenticateClient(KEY, ENDPOINT);
        recognizeEntitiesExample(client);
    }
    // Method to authenticate the client object with your key and endpoint
    static TextAnalyticsClient authenticateClient(String key, String endpoint) {
        return new TextAnalyticsClientBuilder()
                .credential(new AzureKeyCredential(key))
                .endpoint(endpoint)
                .buildClient();
    }
    // Example method for recognizing entities in text
    static void recognizeEntitiesExample(TextAnalyticsClient client)
    {
        // The text that need be analyzed.
        String text = "I had a wonderful trip to Seattle last week.";
    
        for (CategorizedEntity entity : client.recognizeEntities(text)) {
            System.out.printf(
                "Recognized entity: %s, entity category: %s, entity sub-category: %s, score: %s, offset: %s, length: %s.%n",
                entity.getText(),
                entity.getCategory(),
                entity.getSubcategory(),
                entity.getConfidenceScore(),
                entity.getOffset(),
                entity.getLength());
        }
    }
}

Output

Recognized entity: trip, entity category: Event, entity sub-category: null, score: 0.74, offset: 18, length: 4.
Recognized entity: Seattle, entity category: Location, entity sub-category: GPE, score: 1.0, offset: 26, length: 7.
Recognized entity: last week, entity category: DateTime, entity sub-category: DateRange, score: 0.8, offset: 34, length: 9.

Documentación de referencia | Ejemplos adicionales | Paquete (npm) | Código fuente de biblioteca

Use este inicio rápido para crear una aplicación de Reconocimiento de entidades con nombre (NER) con la biblioteca cliente de Node.js. En el ejemplo siguiente, creará una aplicación de JavaScript que puede identificar entidades reconocidas en el texto.

Sugerencia

Puede usar Language Studio para probar las características del servicio de lenguaje sin necesidad de escribir código.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita
  • Node.js v14 LTS o posterior
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido pegará la clave y el punto de conexión en el código siguiente.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
  • Para usar la característica Analizar, necesitará un recurso de idioma con el plan de tarifa estándar (S).

Instalación

Creación de una aplicación Node.js

En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para la aplicación y vaya a él.

mkdir myapp 

cd myapp

Ejecute el comando npm init para crear una aplicación de nodo con un archivo package.json.

npm init

Instalación de la biblioteca cliente

Instale el paquete npm:

npm install @azure/ai-language-text

Ejemplo de código

Abra el archivo y copie el código siguiente. No olvide reemplazar la variable key por la clave del recurso y la variable endpoint por el punto de conexión del recurso. Luego, ejecute el código.

Importante

Vaya a Azure Portal. Si el recurso de lenguaje que ha creado en la sección Requisitos previos se ha implementado correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Para encontrar la clave y el punto de conexión, vaya a la página Claves y punto de conexión del recurso, en Administración de recursos.

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Consulte el artículo sobre seguridad de los servicios de Azure AI para más información.

"use strict";

const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-language-text");;
const key = '<paste-your-key-here>';
const endpoint = '<paste-your-endpoint-here>';

//an example document for entity recognition
const documents = [ "Microsoft was founded by Bill Gates and Paul Allen on April 4, 1975, to develop and sell BASIC interpreters for the Altair 8800"];

//example of how to use the client library to recognize entities in a document.
async function main() {
    console.log("== NER sample ==");
  
    const client = new TextAnalysisClient(endpoint, new AzureKeyCredential(key));
  
    const results = await client.analyze("EntityRecognition", documents);
  
    for (const result of results) {
      console.log(`- Document ${result.id}`);
      if (!result.error) {
        console.log("\tRecognized Entities:");
        for (const entity of result.entities) {
          console.log(`\t- Entity ${entity.text} of type ${entity.category}`);
        }
      } else console.error("\tError:", result.error);
    }
  }

//call the main function
main().catch((err) => {
    console.error("The sample encountered an error:", err);
});

Resultados

Document ID: 0
        Name: Microsoft         Category: Organization  Subcategory: N/A
        Score: 0.29
        Name: Bill Gates        Category: Person        Subcategory: N/A
        Score: 0.78
        Name: Paul Allen        Category: Person        Subcategory: N/A
        Score: 0.82
        Name: April 4, 1975     Category: DateTime      Subcategory: Date
        Score: 0.8
        Name: 8800      Category: Quantity      Subcategory: Number
        Score: 0.8
Document ID: 1
        Name: 21        Category: Quantity      Subcategory: Number
        Score: 0.8
        Name: Seattle   Category: Location      Subcategory: GPE
        Score: 0.25

Documentación de referencia | Ejemplos adicionales | Paquete (PyPi) | Código fuente de biblioteca

Use este inicio rápido para crear una aplicación de Reconocimiento de entidades con nombre (NER) con la biblioteca cliente de Python. En el ejemplo siguiente, creará una aplicación de Python que puede identificar entidades reconocidas en el texto.

Sugerencia

Puede usar Language Studio para probar las características del servicio de lenguaje sin necesidad de escribir código.

Requisitos previos

  • Una suscripción a Azure: cree una cuenta gratuita
  • Python 3.8 o versiones posteriores
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesitará la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido pegará la clave y el punto de conexión en el código siguiente.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
  • Para usar la característica Analizar, necesitará un recurso de idioma con el plan de tarifa estándar (S).

Instalación

Instalación de la biblioteca cliente

Después de instalar Python, puede instalar la biblioteca cliente con:

pip install azure-ai-textanalytics==5.2.0

Ejemplo de código

Cree un nuevo archivo de Python y copie el código siguiente. No olvide reemplazar la variable key por la clave del recurso y la variable endpoint por el punto de conexión del recurso. Luego, ejecute el código.

Importante

Vaya a Azure Portal. Si el recurso de lenguaje que ha creado en la sección Requisitos previos se ha implementado correctamente, haga clic en el botón Ir al recurso en Pasos siguientes. Para encontrar la clave y el punto de conexión, vaya a la página Claves y punto de conexión del recurso, en Administración de recursos.

Importante

Recuerde quitar la clave del código cuando haya terminado y no hacerla nunca pública. En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Consulte el artículo sobre seguridad de los servicios de Azure AI para más información.

key = "paste-your-key-here"
endpoint = "paste-your-endpoint-here"

from azure.ai.textanalytics import TextAnalyticsClient
from azure.core.credentials import AzureKeyCredential

# Authenticate the client using your key and endpoint 
def authenticate_client():
    ta_credential = AzureKeyCredential(key)
    text_analytics_client = TextAnalyticsClient(
            endpoint=endpoint, 
            credential=ta_credential)
    return text_analytics_client

client = authenticate_client()

# Example function for recognizing entities from text
def entity_recognition_example(client):

    try:
        documents = ["I had a wonderful trip to Seattle last week."]
        result = client.recognize_entities(documents = documents)[0]

        print("Named Entities:\n")
        for entity in result.entities:
            print("\tText: \t", entity.text, "\tCategory: \t", entity.category, "\tSubCategory: \t", entity.subcategory,
                    "\n\tConfidence Score: \t", round(entity.confidence_score, 2), "\tLength: \t", entity.length, "\tOffset: \t", entity.offset, "\n")

    except Exception as err:
        print("Encountered exception. {}".format(err))
entity_recognition_example(client)

Output

Named Entities:

    Text:    trip   Category:        Event  SubCategory:     None
    Confidence Score:        0.74   Length:          4      Offset:          18

    Text:    Seattle        Category:        Location       SubCategory:     GPE
    Confidence Score:        1.0    Length:          7      Offset:          26

    Text:    last week      Category:        DateTime       SubCategory:     DateRange
    Confidence Score:        0.8    Length:          9      Offset:          34

Documentación de referencia

Use este inicio rápido para enviar solicitudes de Reconocimiento de entidades con nombre (NER) mediante la API REST. En el ejemplo siguiente, usará cURL para identificar entidades reconocidas en el texto.

Sugerencia

Puede usar Language Studio para probar las características del servicio de lenguaje sin necesidad de escribir código.

Prerrequisitos

  • La versión actual de cURL.
  • Una vez que tenga la suscripción de Azure, create a Language resource en Azure Portal para obtener la clave y el punto de conexión. Tras su implementación, seleccione Ir al recurso.
    • Necesita la clave y el punto de conexión del recurso que cree para conectar la aplicación a la API. En una sección posterior de este mismo inicio rápido, pegue la clave y el punto de conexión en el código.
    • Puede usar el plan de tarifa gratis (Free F0) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.

Nota

  • En los siguientes ejemplos de BASH se usa el carácter de continuación de línea \. Si la consola o el terminal usan un carácter de continuación de línea diferente, use ese carácter.
  • Puede encontrar ejemplos específicos del lenguaje en GitHub.
  • Vaya a Azure Portal y busque la clave y el punto de conexión del recurso del idioma que creó en los requisitos previos. Los encontrará en la página de clave y punto de conexión del recurso, en Administración de recursos. A continuación, reemplace las cadenas del código por su clave y punto de conexión. Para llamar a la API, necesita la siguiente información:
parámetro Descripción
-X POST <endpoint> Especifica el punto de conexión para acceder a la API.
-H Content-Type: application/json Tipo de contenido para enviar datos JSON.
-H "Ocp-Apim-Subscription-Key:<key> Especifica la clave para acceder a la API.
-d <documents> JSON que contiene los documentos que desea enviar.

Los siguientes comandos de cURL se ejecutan desde un shell de BASH. Edite estos comandos con sus propios valores de nombre de recurso, clave de recurso y JSON.

Extracción de entidades con nombre (NER)

  1. Copie el comando en un editor de texto.
  2. Realice los siguientes cambios en el comando donde sea necesario:
    1. Reemplace el valor <your-language-resource-key> por su clave.
    2. Reemplace la primera parte de la dirección URL de la solicitud (<your-language-resource-endpoint>) por la dirección URL de su punto de conexión.
  3. Abra una ventana de símbolo del sistema.
  4. Pegue el comando del editor de texto en la ventana del símbolo del sistema y después ejecute el comando.
curl -i -X POST https://<your-language-resource-endpoint>/language/:analyze-text?api-version=2022-05-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key:<your-language-resource-key>" \
-d \
'
{
    "kind": "EntityRecognition",
    "parameters": {
        "modelVersion": "latest"
    },
    "analysisInput":{
        "documents":[
            {
                "id":"1",
                "language": "en",
                "text": "I had a wonderful trip to Seattle last week."
            }
        ]
    }
}
'

Respuesta JSON

Nota

{
	"kind": "EntityRecognitionResults",
	"results": {
		"documents": [{
			"id": "1",
			"entities": [{
				"text": "trip",
				"category": "Event",
				"offset": 18,
				"length": 4,
				"confidenceScore": 0.74
			}, {
				"text": "Seattle",
				"category": "Location",
				"subcategory": "GPE",
				"offset": 26,
				"length": 7,
				"confidenceScore": 1.0
			}, {
				"text": "last week",
				"category": "DateTime",
				"subcategory": "DateRange",
				"offset": 34,
				"length": 9,
				"confidenceScore": 0.8
			}],
			"warnings": []
		}],
		"errors": [],
		"modelVersion": "2021-06-01"
	}
}

Limpieza de recursos

Si quiere limpiar y eliminar una suscripción de servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él.

Pasos siguientes