Reconocimiento de entidad nombrada (NER) es una técnica en procesamiento del lenguaje natural (PNL) que se centra en identificar y clasificar entidades. El propósito de NER es extraer automáticamente información estructurada de texto no estructurado, permitiendo a las máquinas comprender y categorizar entidades de manera significativa para diversas aplicaciones como resumen de texto, creación de gráficos de conocimiento, respuesta a preguntas y construcción de gráficos de conocimiento. El artículo explora la fundamentos, métodos e implementación del modelo NER.
¿Qué es el reconocimiento de entidades nombradas (NER)?
Reconocimiento de nombre-entidad (NER) también se le conoce como identificación de entidad , fragmentación de entidades, y extracción de entidades . NER es el componente de extracción de información que tiene como objetivo identificar y categorizar entidades nombradas dentro de texto no estructurado. NER implica la identificación de información clave en el texto y su clasificación en un conjunto de categorías predefinidas. Una entidad es aquello de lo que se habla o se hace referencia constantemente en el texto, como nombres de personas, organizaciones, ubicaciones, expresiones de tiempo, cantidades, porcentajes y categorías más predefinidas.
El sistema NER encuentra aplicaciones en varios dominios, incluida la respuesta a preguntas, la recuperación de información y la traducción automática. NER juega un papel importante en la mejora de la precisión de otros PNL tareas como el etiquetado y análisis de partes del discurso. En esencia, la PNL es solo un proceso de dos pasos; a continuación se detallan los dos pasos involucrados:
- Detectando las entidades del texto.
- Clasificándolos en diferentes categorías.
Ambigüedad en NER
- Para una persona, la definición de categoría es intuitivamente bastante clara, pero para las computadoras existe cierta ambigüedad en la clasificación. Veamos algunos ejemplos ambiguos:
- Inglaterra (Organización) ganó la copa del mundo de 2019 vs. La copa del mundo de 2019 tuvo lugar en Inglaterra (Ubicación).
- Washington (Ubicación) es la capital de los EE. UU. vs. El primer presidente de los EE. UU. fue Washington (Persona).
¿Cómo funciona el reconocimiento de entidades nombradas (NER)?
El funcionamiento del reconocimiento de entidades nombradas se analiza a continuación:
- El sistema NER analiza todo el texto de entrada para identificar y localizar las entidades nombradas.
- Luego, el sistema identifica los límites de la oración considerando las reglas de uso de mayúsculas. Reconoce el final de la oración cuando una palabra comienza con mayúscula, suponiendo que podría ser el comienzo de una nueva oración. Conocer los límites de las oraciones ayuda a contextualizar entidades dentro del texto, lo que permite que el modelo comprenda las relaciones y los significados.
- Se puede entrenar a NER para clasificar documentos completos en diferentes tipos, como facturas, recibos o pasaportes. La clasificación de documentos mejora la versatilidad de NER, permitiéndole adaptar su reconocimiento de entidades en función de las características específicas y el contexto de los diferentes tipos de documentos.
- NER emplea algoritmos de aprendizaje automático, incluido el aprendizaje supervisado, para analizar conjuntos de datos etiquetados. Estos conjuntos de datos contienen ejemplos de entidades anotadas, lo que guía al modelo a reconocer entidades similares en datos nuevos e invisibles.
- A través de múltiples iteraciones de entrenamiento, el modelo refina su comprensión de las características contextuales, las estructuras sintácticas y los patrones de entidades, mejorando continuamente su precisión con el tiempo.
- La capacidad del modelo para adaptarse a nuevos datos le permite manejar variaciones en el idioma, el contexto y los tipos de entidades, lo que lo hace más sólido y efectivo.
Reconocimiento de entidad nombrada (NER) Métodos
Método basado en léxico
El NER utiliza un diccionario con una lista de palabras o términos. El proceso consiste en comprobar si alguna de estas palabras está presente en un texto determinado. Sin embargo, este enfoque no se utiliza habitualmente porque requiere una actualización constante y un mantenimiento cuidadoso del diccionario para que siga siendo preciso y eficaz.
Método basado en reglas
El método NER basado en reglas utiliza un conjunto de reglas predefinidas que guían la extracción de información. Estas reglas se basan en patrones y contexto. Las reglas basadas en patrones se centran en la estructura y forma de las palabras, observando sus patrones morfológicos. Por otro lado, las reglas basadas en contexto consideran las palabras circundantes o el contexto en el que aparece una palabra dentro del documento de texto. Esta combinación de reglas basadas en patrones y en contexto mejora la precisión de la extracción de información en el reconocimiento de entidades nombradas (NER).
Método basado en aprendizaje automático
Clasificación de clases múltiples con algoritmos de aprendizaje automático
- Una forma es entrenar el modelo para clasificación multiclase utilizando diferentes algoritmos de aprendizaje automático, pero requiere mucho etiquetado. Además de etiquetar el modelo, también se requiere una comprensión profunda del contexto para hacer frente a la ambigüedad de las oraciones. Esto lo convierte en una tarea desafiante para un algoritmo simple de aprendizaje automático.
Campo aleatorio condicional (CRF)
- El campo aleatorio condicional es implementado tanto por NLP Speech Tagger como por NLTK. Es un modelo probabilístico que se puede utilizar para modelar datos secuenciales como palabras.
- El CRF puede capturar una comprensión profunda del contexto de la oración. En este modelo, la entrada

Método basado en aprendizaje profundo
- El sistema NER de aprendizaje profundo es mucho más preciso que el método anterior, ya que es capaz de ensamblar palabras. Esto se debe a que utilizó un método llamado incrustación de palabras, que es capaz de comprender la relación semántica y sintáctica entre varias palabras.
- También es capaz de aprender, analizar temas específicos y palabras de alto nivel automáticamente.
- Esto hace que el aprendizaje profundo NER sea aplicable para realizar múltiples tareas. Aprendizaje profundo puede hacer la mayor parte del trabajo repetitivo por sí mismo, por lo que los investigadores, por ejemplo, pueden utilizar su tiempo de manera más eficiente.
¿Cómo implementar NER en Python?
Para implementar el sistema NER, aprovecharemos la biblioteca Spacy. El código se puede ejecutar en colab, aunque con fines de visualización. Recomiendo el entorno local. Podemos instalar las bibliotecas requeridas usando:
!pip install spacy !pip install nltk ! python -m spacy download en_core_web_sm>
Instalar bibliotecas importantes
Python3
import> pandas as pd> import> spacy> import> requests> from> bs4>import> BeautifulSoup> nlp>=> spacy.load(>'en_core_web_sm'>)> pd.set_option(>'display.max_rows'>,>200>)> |
>
>
NER usando Spacy
En el siguiente código usamos espacio, una biblioteca de procesamiento de lenguaje natural para procesar texto y extraer entidades nombradas. El código recorre en iteración las entidades nombradas identificadas en el documento procesado e imprime el texto, el carácter inicial, el carácter final y la etiqueta de cada entidad.
Python3
content>=> 'Trinamool Congress leader Mahua Moitra has moved the Supreme Court against her expulsion from the Lok Sabha over the cash-for-query allegations against her. Moitra was ousted from the Parliament last week after the Ethics Committee of the Lok Sabha found her guilty of jeopardising national security by sharing her parliamentary portal's login credentials with businessman Darshan Hiranandani.'> doc>=> nlp(content)> for> ent>in> doc.ents:> >print>(ent.text, ent.start_char, ent.end_char, ent.label_)> |
>
>
Producción:
Congress 10 18 ORG Mahua Moitra 26 38 PERSON the Supreme Court 49 66 ORG the Lok Sabha 94 107 PERSON Moitra 157 163 ORG Parliament 184 194 ORG last week 195 204 DATE the Ethics Committee 211 231 ORG Darshan Hiranandani 373 392 PERSON>
El resultado mostró los nombres de las entidades, sus posiciones inicial y final en el texto y sus etiquetas previstas.
Visualizar
Eldisplacy.render>La función de spaCy se utiliza para visualizar las entidades nombradas en un texto. Genera una representación visual con resaltados de colores que indican las entidades reconocidas y sus respectivas categorías.
Python3
from> spacy>import> displacy> displacy.render(doc, style>=>'ent'>)> |
>
>
Producción:

Usando el siguiente código, crearemos un marco de datos a partir de las entidades nombradas extraídas por spaCy, incluido el texto, el tipo (etiqueta) y el lema de cada entidad.
Python3
entities>=> [(ent.text, ent.label_, ent.lemma_)>for> ent>in> doc.ents]> df>=> pd.DataFrame(entities, columns>=>[>'text'>,>'type'>,>'lemma'>])> print>(df)> |
>
>
Producción:
text type lemma 0 Congress ORG Congress 1 Mahua Moitra PERSON Mahua Moitra 2 the Supreme Court ORG the Supreme Court 3 the Lok Sabha PERSON the Lok Sabha 4 Moitra ORG Moitra 5 Parliament ORG Parliament 6 last week DATE last week 7 the Ethics Committee ORG the Ethics Committee 8 Darshan Hiranandani PERSON Darshan Hiranandani>
El marco de datos proporciona una representación estructurada de las entidades nombradas, sus tipos y formas lematizadas.
Preguntas frecuentes (FAQ)
1. ¿Cuál es el propósito del sistema NER?
El propósito de NER es extraer automáticamente la información estructurada del texto no estructurado, permitiendo a las máquinas comprender y categorizar entidades de manera significativa para diversas aplicaciones como resumen de texto, creación de gráficos de conocimiento, respuesta a preguntas y construcción de gráficos de conocimiento.
2. ¿Cuáles son los métodos de NER en PNL?
Los métodos de NER en PNL incluyen:
- NER basado en léxico.
- Basado en reglas
- Basado en aprendizaje automático
- Basado en aprendizaje profundo.
3. ¿Cuáles son los usos de NER en PNL?
NER juega un papel importante en la mejora de la precisión de otras tareas de PNL, como el etiquetado y el análisis de partes del discurso.
4. ¿Puede BERT realizar el reconocimiento de entidades nombradas?
Sí, BERT se puede utilizar para NER.
