Cómo funciona el reconocimiento de entidades

El reconocimiento de entidades, también conocido como reconocimiento de entidades con nombre (NER, por sus siglas en inglés) es el proceso de extraer información de frases, párrafos, informes textuales u otras formas de texto no estructurado. El conjunto de herramientas Análisis de texto de la caja de herramientas GeoAI contiene herramientas que utilizan técnicas de procesamiento de lenguaje natural (NLP, por sus siglas en inglés) para entrenar modelos de reconocimiento de entidades, así como para extraer entidades de texto no estructurado.

La herramienta Entrenar el modelo de reconocimiento de entidades entrena modelos NLP para extraer un conjunto predefinido de entidades (como organizaciones, personas, fechas o países) proporcionadas como parte de un dataset de entrenamiento. Los modelos de reconocimiento de entidades entrenados se pueden utilizar con la herramienta Extraer entidades con aprendizaje profundo para extraer esas entidades del texto sin procesar en un formato estructurado.

Potenciales aplicaciones

A continuación se describen aplicaciones potenciales para esta herramienta:

  • Extraer datos como, por ejemplo, ubicación, agente de la declaración o arma que se utiliza de informes de delitos. Puede ayudar a revelar tendencias y a planificar los procesos correctivos.
  • Información como, por ejemplo, la ubicación o si se requiere asistencia, se puede extraer de los tuits o de las publicaciones en redes sociales. Este método puede ayudar a identificar las áreas en las que se requiere ayuda inmediata durante una catástrofe natural.
Gráfico de flujo del modelo de reconocimiento de entidades
Este modelo de reconocimiento de entidades se usa para extraer entidades tales como fecha, hora y ubicación de informes de texto.

Los modelos de reconocimiento de entidades de ArcGIS se basan en la arquitectura Transformador, que funciona en el marco Integrar, codificar, asistir, predecir.

  • Integrar: en este proceso, el texto de entrada se transforma en integraciones de palabras densas. Estas integraciones capturan información semántica del texto de entrada y facilitan su uso en el modelo.
    Flujo de trabajo Integrar
  • Codificar: en este proceso, el contexto se codifica en un vector de palabra. Se realiza utilizando redes neuronales convolucionales de trigramas residuales (CNN).
    Flujo de trabajo Codificar
  • Asistir: la salida de matriz del paso anterior se reduce a un único vector que se entregará para la predicción a una red prealimentada estándar. Este paso tiene un efecto similar al del mecanismo de atención.
    Flujo de trabajo Asistir
  • Predecir: el paso final del modelo es realizar una predicción partiendo del texto de entrada. En este caso, el vector de la capa de atención se entrega a un perceptrón multicapa para generar el Id. de la etiqueta de entidad.
    Flujo de trabajo Predecir

El back-end basado en transformador utiliza la arquitectura propuesta por Vaswani y otros en su artículo "Attention Is All You Need". Proporciona modelos más precisos y paralelizables, a la vez que requiere datos etiquetados menos precisos para el entrenamiento. Internamente, los modelos de reconocimiento de entidades de ArcGIS basados en transformador presentan dos componentes:

  • Codificador: el codificador es la columna vertebral del modelo y transforma el texto de entrada en una representación de entidades en forma de vectores de tamaño fijo. El modelo utiliza codificadores conocidos como BERT, ALBERT y RoBERTa, basados en la arquitectura de transformador y previamente entrenados con ingentes cantidades de texto.
  • Clasificador de nivel token: un clasificador de nivel token es la cabeza del modelo y clasifica la representación de entidades de cada token en varias categorías que representan las distintas entidades. Con frecuencia, un clasificador es una capa lineal simple de la red neuronal.
Componentes de los modelos de reconocimiento de entidades

Nota:

Los modelos NLP pueden ser herramientas potentes a la hora de automatizar el análisis de volúmenes muy elevados de texto no estructurado. Al igual que con otros tipos de modelos, se debe prestar atención para asegurarse de que se apliquen a tareas relevantes con el nivel adecuado de supervisión humana y transparencia respecto al tipo de modelo y los datasets de entrenamiento utilizados para entrenar el modelo.

Usar modelos de reconocimiento de entidades

Puede utilizar la herramienta Extraer entidades con aprendizaje profundo para aplicar un modelo de reconocimiento de entidades entrenado a texto no estructurado y extraer información útil de él en forma de datos estructurados. Puede usar modelos de reconocimiento de entidades preentrenados desde ArcGIS Living Atlas of the World o entrenar sus propios modelos con la herramienta Entrenar modelo de reconocimiento de entidades.

La entrada de la herramienta Extraer entidades con aprendizaje profundo es una carpeta que contiene los archivos de texto en los que se llevará a cabo el reconocimiento de entidades con nombre. El modelo de entrada puede ser un archivo JSON de definición de modelo de Esri (.emd) o un paquete de modelo de aprendizaje profundo (.dlpk). El modelo contiene la ruta al archivo de modelo de aprendizaje profundo (que contiene las ponderaciones del modelo) y otros parámetros de modelo. Algunos modelos pueden tener argumentos de modelo adicionales.

La herramienta crea una tabla que contiene las entidades extraídas de cada archivo de texto de la carpeta de entrada. Si se proporciona un localizador y el modelo puede extraer direcciones, se producirá en su lugar una clase de entidad mediante la geocodificación de las direcciones extraídas. Si un archivo de texto contiene varias direcciones, se crea una entidad geocodificando cada dirección y replicando las demás entidades para ese archivo de texto.

Aunque la herramienta se puede ejecutar en CPU, se recomienda el uso de GPU para el procesamiento, ya que el aprendizaje profundo supone un alto coste de cómputo. Para ejecutar esta herramienta con una GPU, configure el ajuste de entorno Tipo de procesador como GPU. Si tiene más de una GPU, especifique en su lugar el ajuste de entorno Id. de GPU.

Entrenar modelos de reconocimiento de entidades

Puede usar la herramienta Entrenar modelo de reconocimiento de entidades para entrenar modelos NLP para el reconocimiento de entidades con nombre. Esta herramienta utiliza un planteamiento de aprendizaje automático y entrena el modelo proporcionándole muestras de entrenamiento formadas por pares de texto de entrada y entidades etiquetadas en ese texto. El entrenamiento de modelos NLP requiere gran potencia de cómputo, por lo que se recomienda el uso de una GPU.

Los datos de entrenamiento se proporcionan en forma de una carpeta que contiene datos de entrenamiento en forma de datasets estándar para tareas NER. Los datos de entrenamiento se encuentran en forma de archivos .json o .csv. Estos son los tipos de dataset admitidos:

  • ner_json: la carpeta debe contener un archivo .json con texto y las entidades etiquetadas con el formato de entrenamiento JSON de spaCy.
  • IOB: formato dentro, fuera, inicio (IOB, por sus siglas en inglés) propuesto por Ramshaw y Marcus en el artículo "Text Chunking using Transformation-Based Learning". En este formato, la carpeta debe contener los dos archivos .csv siguientes:
    • token.csv: este archivo debe contener texto como fragmentos de entrada.
    • tags.csv: este archivo debe contener etiquetas IOB para los fragmentos de texto.
  • BILUO: una extensión del formato IOB que contiene las siguientes etiquetas: B para "beginning" (inicial), I para "inside" (interior), L para "last" (final), U para "unit" (unidad), O para "outside" (exterior). Si se usa este formato, la carpeta que contiene los datos de entrenamiento debe contener los dos archivos .csv siguientes:
    • token.csv: este archivo debe contener texto como fragmentos de entrada.
    • tags.csv: este archivo debe contener etiquetas BILUO para los fragmentos de texto.

Para obtener más información acerca de estos formatos y el etiquetado de datos en estos formatos, visite la Guía de etiquetado de texto con Doccano.

Al entrenar un modelo de reconocimiento de entidades, puede optar por entrenar el modelo desde cero o afinar un modelo ya entrenado.

Si ya tiene acceso a un modelo de reconocimiento de entidades preentrenado con el mismo conjunto de entidades objetivo que en las muestras de entrenamiento, tiene la opción de afinarlo para los nuevos datos de entrenamiento. Ajustar un modelo existente a menudo es más rápido que entrenar un modelo nuevo, y este proceso también requiere menos muestras de entrenamiento. Al perfeccionar un modelo preentrenado, asegúrese de mantener el mismo modelo base utilizado en el modelo preentrenado.

El modelo preentrenado puede ser un archivo de definición de modelo de Esri (.emd) o un archivo de paquete de aprendizaje profundo (.dlpk). El modelo de salida también se guarda en estos formatos en la carpeta de modelo de salida especificada.

Los modelos de reconocimiento de entidades de ArcGIS tratan las entidades de dirección de manera diferente a otras entidades. Si se desea tratar una entidad como una ubicación, se debe especificar como una entidad de dirección en los parámetros de la herramienta. Durante la inferencia, estas entidades se geocodifican con el localizador especificado y se produce una clase de entidad como resultado del proceso de extracción de entidades. Si no se proporciona un localizador o el modelo entrenado no extrae entidades de dirección, se genera en su lugar una tabla con las entidades extraídas.

Entrenar modelos de aprendizaje profundo es un proceso iterativo en el que los datos de entrenamiento de entrada pasan por la red neuronal varias veces. Cada pase de entrenamiento por la totalidad de los datos de entrenamiento se conoce como ciclo. El parámetro Máximo de épocas especifica el número máximo de veces que el modelo ve los datos de entrenamiento mientras se está entrenando. Depende del modelo que esté entrenando, la complejidad de la tarea y el número de muestras de entrenamiento de que disponga. Si tiene un gran número de muestras de entrenamiento, puede usar un valor bajo. En general, conviene repetir el entrenamiento durante varios ciclos, hasta que la pérdida de validación siga disminuyendo.

El parámetro Base del modelo especifica la red neuronal preconfigurada que actúa como codificador del modelo y extrae representaciones de entidades del texto de entrada. Este modelo admite codificadores basados en BERT, ALBERT y RoBERTa, basados en la arquitectura de transformador y previamente entrenados con ingentes cantidades de texto de forma semisupervisada.

El entrenamiento de modelos tiene lugar por lotes, y el parámetro de tamaño de lote especifica la cantidad de muestras de entrenamiento que se procesan al mismo tiempo para el entrenamiento. Aumentar el tamaño de lote puede mejorar el rendimiento de la herramienta; sin embargo, a medida que aumenta el tamaño del lote, se utiliza más memoria. Si se produce un error de memoria insuficiente mientras está entrenando el modelo, utilice un tamaño de lote más pequeño.

El parámetro Tasa de aprendizaje es uno de los hiperparámetros más importantes. Es la velocidad a la que se ajustan las ponderaciones del modelo durante el entrenamiento. Si especifica una tasa de aprendizaje baja, el modelo mejora lentamente y puede tardar mucho tiempo en entrenarse, lo cual se traduce en desaprovechamiento de tiempo y recursos. Una tasa de aprendizaje alta puede ser contraproducente y el modelo podría no aprender bien. Con tasas de aprendizaje altas, es posible que las ponderaciones del modelo se ajusten drásticamente, lo que provoca resultados erróneos. A menudo, es mejor no especificar un valor para el parámetro Tasa de aprendizaje, ya que la herramienta utiliza un buscador automático de tasa de aprendizaje basado en el ensayo Cyclical Learning Rates for Training Neural Networks de Leslie N. Smith.

La herramienta utiliza una parte de los datos de entrenamiento (10 por ciento de forma predeterminada) a modo de conjunto de validación. El parámetro Porcentaje de validación permite ajustar la cantidad de datos de entrenamiento que se van a utilizar para la validación.

De forma predeterminada, la herramienta utiliza una técnica de detención temprana que hace que el entrenamiento del modelo se detenga cuando este ya no mejora en los posteriores ciclos de entrenamiento. Puede desactivar este comportamiento desactivando la casilla de verificación Detener cuando el modelo deje de mejorar.

También puede especificar si las capas de base del modelo previamente entrenado se inmovilizarán, de modo que las ponderaciones y sesgos permanezcan tal como se diseñaron originalmente. De forma predeterminada, las capas del modelo base no se inmovilizan, y las ponderaciones y los sesgos del valor de Base del modelo se pueden modificar para ajustarlos a las muestras de entrenamiento. Esto tarda más tiempo en procesarse, pero generalmente produce mejores resultados.

Recursos

Consulte lo siguiente para más información:

"Attention Is All You Need", de Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser y Illia Polosukhin, en arXivLabs, Cornell University

Honnibal, Matthew. "Embed, encode, attend, predict: The new deep learning formula for state-of-the-art NLP models." https://explosion.ai/blog/deep-learning-formula-nlp.

Devlin, Jacob, Ming-Wei Chang, Kenton Lee y Kristina Toutanova. "Fully Understanding the Hashing Trick". 22 de mayo de 2018. https://arxiv.org/pdf/1805.08539.pdf.

"Doccano". https://github.com/doccano/doccano.

Devlin, Jacob, Ming-Wei Chang, Kenton Lee y Kristina Toutanova. "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding." 24 de mayo de 2019. https://arxiv.org/pdf/1810.04805.pdf.

Smith, Leslie N. "Cyclical Learning Rates for Training Neural Networks." 4 de abril de 2017. https://doi.org/10.48550/arxiv.1506.01186.

Ramshaw, Lance y Mitch Marcus. "Text Chunking using Transformation-Based Learning". 1995. En Third Workshop on Very Large Corpora.