Reconocimiento de entidades con nombre

Reconoce entidades con nombre en una columna de texto.

Categoría: Text Analytics

Nota

Se aplica a: machine learning Studio (clásico)

Este contenido solo pertenece a Studio (clásico). Se han agregado módulos similares de arrastrar y colocar al diseñador de Azure Machine Learning. Obtenga más información en este artículo comparativa de las dos versiones.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo de reconocimiento de entidades con nombre en Azure machine learning Studio (clásico) para identificar los nombres de las cosas, como personas, compañías o ubicaciones en una columna de texto.

El reconocimiento de entidades con nombre es un área importante de la investigación en el aprendizaje automático de máquinas y en el procesamiento de lenguaje natural (NLP) porque se puede utilizar para responder a muchas preguntas del mundo real, tales como:

  • ¿Contiene un tweet el nombre de una persona? ¿El tweet también proporciona su ubicación actual?

  • ¿Qué empresas se mencionaron en un artículo de noticias?

  • ¿Se han especificado productos mencionados en quejas o revisiones?

Para obtener una lista de entidades con nombre, debe proporcionar un conjunto de datos como entrada que contiene una columna de texto. El módulo reconocimiento de entidades con nombre identificará tres tipos de entidades: personas (por), ubicaciones (LOC) y organizaciones (org).

El módulo también etiqueta las secuencias por el lugar donde se encontraron estas palabras, por lo que puede usar los términos en un análisis más exhaustivo.

Por ejemplo, la siguiente tabla muestra una sencilla oración de entrada y los términos y valores generados por el módulo:

Texto de entrada Salida del módulo
"Boston es un excelente lugar para vivir." 0,Boston,0,6,LOC

La salida se puede interpretar como sigue:

  • El primer ‘0’ significa que esta cadena es la primera entrada del artículo para el módulo.

    Como un solo artículo puede tener varias entidades, es importante incluir el número de fila del artículo en la salida para asignar características a los artículos.

  • Boston es la entidad reconocida.

  • El 0 siguiente Boston significa que la entidad Boston comienza en la primera letra de la cadena de entrada. Los índices son de base cero.

  • 6 significa que la longitud de la entidad Boston es 6.

  • LOC significa que la entidad Boston es un lugar o una ubicación. Otros tipos de entidad con nombre admitidos son person ( PER ) y Organization ( ORG ).

Configuración del reconocimiento de entidades con nombre

  1. Agregue el módulo reconocimiento de entidades con nombre al experimento en Studio (clásico). Puede encontrar el módulo en la categoría Text Analytics .

  2. En la entrada denominada Story, conecte un conjunto de datos que contenga el texto que se va a analizar.

    El "caso" debe contener el texto del que se van a extraer las entidades con nombre.

    La columna utilizada como historia debe contener varias filas, donde cada fila está formada por una cadena. la cadena puede ser corta, como una oración, o largo, como un artículo de noticias.

    Puede conectar cualquier conjunto de DataSet que contenga una columna de texto. Sin embargo, si el conjunto de datos de entrada contiene varias columnas, use seleccionar columnas en el conjunto de datos para elegir solo la columna que contiene el texto que desea analizar.

    Nota

    En este momento no se admite la segunda entrada, recursos personalizados (zip).

    En el futuro, puede Agregar archivos de recursos personalizados aquí para identificar distintos tipos de entidad.

  3. Ejecute el experimento.

Results

El módulo genera un conjunto de resultados que contiene una fila para cada entidad reconocida, junto con los desplazamientos.

Dado que cada fila de texto de entrada puede contener varias entidades con nombre, se genera automáticamente un número de identificador de artículo y se incluye en la salida para identificar la fila de entrada que contenía la entidad con nombre. El identificador de artículo se basa en el orden natural de las filas del conjunto de datos de entrada.

Puede convertir este conjunto de información de salida en CSV para descargarlo o guardarlo como un conjunto de resultados para reutilizarlo.

Uso del reconocimiento de entidades con nombre en un servicio Web

Si publica un servicio web desde Azure Machine Learning Studio (clásico) y desea consumir el servicio Web mediante C#, Python u otro lenguaje como R, primero debe implementar el código de servicio proporcionado en la página de ayuda del servicio Web.

Si el servicio web proporciona varias filas de salida, la dirección URL del servicio web que agregue al código de C#, Python o R debería tener el sufijo scoremultirow en lugar de score.

Por ejemplo, supongamos que usa la siguiente dirección URL para el servicio Web: https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/score

Para habilitar la salida de varias filas, cambie la dirección URL a https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/scoremultirow

Para publicar este servicio Web, debe agregar un módulo Ejecutar script R adicional después del módulo reconocimiento de entidades con nombre , para transformar la salida de varias filas en una sola delimitada con punto y coma (;). La razón para consolidar las múltiples filas de la salida en una sola fila es devolver varias entidades por fila de entrada.

Por ejemplo, supongamos que tiene una oración de entrada con dos entidades con nombre. En lugar de devolver dos filas por cada fila de entrada, puede devolver una sola fila con varias entidades, separadas por puntos y coma tal y como se muestra aquí:

Texto de entrada Salida del servicio web
Microsoft tiene dos ubicaciones de oficinas en Boston. 0,Microsoft,0,9,ORG,;,0,Boston,38,6,LOC,;

El ejemplo de código siguiente muestra cómo hacerlo:

# Map 1-based optional input ports to variables  
d <- maml.mapInputPort(1) # class: data.frame  
y=length(d) ##size of cols  
x=dim(d)[1] ##size of rows  
longd=matrix("NA",nrow=1,ncol=x*(y+1))  
for (i in 1:x)  
  {   
     for (j in 1:y)  
     {  
       longd[1,j+(i-1)*(y+1)]=toString(d[i,j])   
     }  
     longd[1,j+(i-1)*(y+1)+1]=c(";")  
  }   

final_output=as.data.frame(longd)  
# Select data.frame to be sent to the output Dataset port  
maml.mapOutputPort("final_output");  

Ejemplos

Este blog proporciona una explicación amplia de cómo funciona el reconocimiento de entidades con nombre, su fondo y las aplicaciones posibles:

Consulte también los experimentos de ejemplo siguientes en el Azure AI Gallery para obtener demostraciones de cómo usar los métodos de clasificación de texto que se usan habitualmente en aprendizaje automático:

Notas técnicas

Compatibilidad con idiomas

Actualmente, el módulo Reconocimiento de entidades con nombre solo admite texto en inglés. Puede detectar los nombres de organización, nombres de personas y ubicaciones en oraciones en inglés. Si usa el módulo en otros idiomas, es posible que no reciba ningún error, pero los resultados no son tan buenos como para el texto en inglés.

En el futuro, se puede habilitar la compatibilidad con otros idiomas mediante la integración de los componentes multilingües proporcionados en el kit de herramientas de lenguaje natural de Office.

Entradas esperadas

Nombre Tipo Descripción
Argumento Tabla de datos Un conjunto de datos de entrada (tabla de datos) que contiene la columna de texto que desea analizar.
CustomResources Zip (Opcional) Un archivo en formato ZIP que contiene recursos personalizados adicionales.

Esta opción no está disponible actualmente y solamente se proporciona para futura compatibilidad.

Salidas

Nombre Tipo Descripción
Entidades Tabla de datos Una lista de desplazamientos de caracteres y entidades

Vea también

Text Analytics
Hash de características
Puntuar Vowpal Wabbit modelo 7-4
Entrenar el modelo 7-4 de Vowpal Wabbit