Cómo funciona Reconocimiento de entidades

El reconocimiento de entidades, también conocido como reconocimiento de entidades con nombre (NER), es el proceso de extraer información de frases, párrafos, informes textuales u otras formas de texto no estructurado. El conjunto de herramientas de análisis de texto del conjunto de herramientas GeoAI contiene herramientas que utilizan técnicas de procesamiento del lenguaje natural (PLN) para entrenar modelos de reconocimiento de entidades y utilizar estos modelos para extraer entidades de texto no estructurados.

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 utilizan la herramienta Extraer entidades con aprendizaje profundo para extraer esas entidades de texto sin formato a un formato estructurado.

Potenciales aplicaciones

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

  • Extracción de datos como la ubicación, el agente denunciante o el arma utilizada a partir de informes sobre delitos. Esto puede ayudar a visualizar las tendencias y a planificar las medidas correctoras.
  • A partir de tuits o publicaciones en redes sociales se puede extraer información como la ubicación o si se necesita ayuda. Esto puede ayudar a identificar las zonas en las que se necesita ayuda inmediata durante una catástrofe natural.
Diagrama de flujo del modelo de reconocimiento de entidades
Este modelo de reconocimiento de entidades sirve para extraer de los informes de texto entidades como la fecha, la hora y la ubicación.

Los modelos de reconocimiento de entidades de ArcGIS se basan en dos backends: uno basado en la arquitectura de Transformador, y el otro asado en la biblioteca spaCy que se utiliza en el marco Incorporar, codificar, asistir, predecir.

  • Incorporar: en este proceso, el texto de entrada se transforma en incorporaciones de palabras densas. Estas incorporaciones capturan la información semántica del texto de entrada y facilitan mucho el trabajo del modelo.
    Flujo de trabajo de incorporación
  • Codificar: en este proceso, el contexto se codifica en un vector de palabras. Para ello se utilizan redes neuronales convolucionales (CNN) de trigramas residuales.
    Flujo de trabajo de codificación
  • Asistir: la matriz de salida del paso anterior se reduce a un único vector que se pasará para la predicción a una red de tipo feed-forward estándar. Este paso tiene un efecto similar al del mecanismo de atención.
    Flujo de trabajo de asistencia
  • Predicción: el último paso del modelo consiste en realizar una predicción a partir del texto de entrada. Aquí, el vector de la capa de atención se pasa a un perceptrón multicapa para obtener el Id. de la etiqueta de la entidad.
    Flujo de trabajo de predicción

El backend basado en transformador utiliza la arquitectura propuesta por Vaswani et al. en el artículo “Attention Is All You Need”. Esto permite que los modelos sean más precisos y paralelizables, al tiempo que requieren datos etiquetados menos precisos para el entrenamiento. Internamente, los modelos de reconocimiento de entidades basados en transformadores en ArcGIS tienen dos componentes:

  • Codificador: el codificador es la base 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, que se basan en la arquitectura de transformadores y están preentrenados en enormes volúmenes de texto.
  • Clasificador a nivel de token: un clasificador a nivel de token actúa como cabecera del modelo y clasifica la representación de entidades de cada token en múltiples categorías que representan las distintas entidades. Un clasificador suele ser una simple capa lineal de la red neuronal.
Componentes del modelo de reconocimiento de entidades

Nota:

Los modelos de PNL pueden ser herramientas muy eficaces para automatizar el análisis de grandes volúmenes de texto no estructurado. Como sucede con otros tipos de modelos, hay que tener cuidado para garantizar que se aplican a las tareas pertinentes, con el nivel adecuado de supervisión humana y transparencia sobre el tipo de modelo y los datasets de entrenamiento utilizados para entrenar el modelo.

Utilizar modelos de reconocimiento de entidades

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

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

La herramienta crea una tabla que contiene las entidades extraídas de cada archivo de texto en la carpeta de entrada. Si se proporciona un localizador y el modelo puede extraer direcciones, se generará una clase de entidad geocodificando 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 puede ejecutarse en CPU, se recomienda una GPU para el procesamiento, ya que el proceso de aprendizaje profundo requiere muchos recursos del sistema. Para ejecutar esta herramienta con una GPU, establezca el ajuste de entorno Tipo de procesador en GPU. Si dispone de más de una GPU, especifique en su lugar el ajuste de entorno Id. de GPU.

Entrenar modelos de reconocimiento de entidades

Puede utilizar la herramienta Entrenar modelo de reconocimiento de entidades para entrenar modelos NLP para el reconocimiento de entidades con nombre. Esta herramienta utiliza un método de aprendizaje automático y entrena el modelo proporcionándole muestras de entrenamiento consistentes en pares de texto de entrada y entidades etiquetadas en ese texto. El entrenamiento de modelos de PNL es una tarea de alta carga computacional, por lo que se recomienda utilizar 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 tienen el formato de archivo .json o .csv. Estos son los tipos de dataset compatibles:

  • ner_json: la carpeta debe contener un archivo .json con texto y las entidades etiquetadas formateadas utilizando 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 dete contener texto en forma de fragmentos de entrada.
    • tags.csv: este archivo debe contener etiquetas IOB para los fragmentos de texto.
  • BILUO: extensión del formato IOB que contiene las etiquetas siguientes: B (inicio), I (dentro), L (último), U (unidad), O (fuera). Cuando se utiliza este formato, la carpeta que contiene datos de entrenamiento debe contener los dos archivos .csv siguientes:
    • token.csv: este archivo dete contener texto en forma de fragmentos de entrada.
    • tags.csv: este archivo debe contener etiquetas BILUO para los fragmentos de texto.

Para obtener más información sobre estos formatos y datos de etiquetado en estos formatos, consulte la guía sobre cómo etiquetar con Doccano.

Cuando se entrena un modelo de reconocimiento de entidades, se puede elegir entre entrenar el modelo desde cero o afinar aún más un modelo ya entrenado.

Si ya tiene acceso a un modelo de reconocimiento de entidades preentrenado con el mismo conjunto de entidades objetivo incluido en las muestras de entrenamiento, puede optar por ajustarlo aún más en los nuevos datos de entrenamiento. Ajustar un modelo existente suele ser más rápido que entrenar un modelo nuevo, y este proceso también requiere menos muestras de entrenamiento. Al ajustar un modelo preentrenado, asegúrese de mantener el mismo modelo base que se utilizó en el modelo preentrenado.

El modelo preentrenado puede ser un archivo de definición de modelos esri 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 direcciones de forma diferente a las demás entidades. Si una entidad debe tratarse como una localización, debe especificarse como una entidad de dirección en los parámetros de la herramienta. Durante la inferencia, estas entidades se geocodifican utilizando el localizador especificado y se genera 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 direcciones, se genera una tabla que contiene las entidades extraídas.

El entrenamiento de modelos de aprendizaje profundo es un proceso iterativo en el que los datos de entrenamiento de entrada pasan varias veces por la red neuronal. Cada pasada de entrenamiento a través de la totalidad de los datos de entrenamiento se conoce como una época. El parámetro Épocas máximas especifica el número máximo de veces que un modelo ve los datos de entrenamiento mientras se está entrenando. Esto depende del modelo que esté entrenando, de la complejidad de la tarea y del número de muestras de entrenamiento de que disponga. Si dispone de un gran número de muestras de entrenamiento, puede utilizar un valor pequeño. En general, es conveniente seguir entrenando repetidamente durante más épocas, hasta que la pérdida de validación siga disminuyendo.

El parámetro Modelo central especifica la red neuronal preconfigurada que sirve de codificador para el modelo y extrae representaciones de entidades del texto de entrada. Este modelo admite codificadores basados en BERT-, ALBERT-, RoBERTa- y spaCy que se basan en la arquitectura de transformadores y se preentrenan en grandes volúmenes de texto de forma parcialmente supervisada.

El entrenamiento del modelo se realiza por lotes, y el parámetro de tamaño del lote especifica el número de muestras de entrenamiento que se procesan a la vez. Aumentar el tamaño del lote puede mejorar el rendimiento de la herramienta, pero, cuanto mayor es el tamaño, más memoria se utiliza. Si se produce un error de memoria insuficiente durante el entrenamiento del modelo, utilice un tamaño de lote menor.

El parámetro Tasa de aprendizaje es uno de los hiperparámetros más importantes. Es la tasa a la que se ajustan los pesos del modelo durante el entrenamiento. Si especifica una tasa de aprendizaje baja, el modelo mejora lentamente y puede tardar mucho tiempo en entrenarse, lo que supone una pérdida de tiempo y recursos. Una tasa de aprendizaje elevada puede ser contraproducente y el modelo puede no aprender bien. Con tasas de aprendizaje elevadas, las ponderaciones del modelo pueden ajustarse drásticamente, haciendo que produzca resultados erróneos. Suele ser mejor no especificar un valor para el parámetro Tasa de aprendizaje, ya que la herramienta utiliza un buscador automático de tasas de aprendizaje basado en el artículo Cyclical Learning Rates for Training Neural Networks de Leslie N. Smith.

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

De forma predeterminada, la herramienta utiliza una técnica de parada anticipada que hace que el entrenamiento del modelo se detenga cuando deja de mejorar en las siguientes épocas de entrenamiento. Para desactivar este comportamiento, desactive la casilla Detener cuando el modelo deja de mejorar.

También puede especificar si las capas base del modelo previamente entrenado se congelarán, de modo que los pesos y sesgos sigan tal como se diseñaron originalmente. De forma predeterminada, las capas del modelo central no están congeladas, y los pesos y sesgos del valor Modelo central pueden modificarse para ajustarse a las muestras de entrenamiento. Esto conlleva más tiempo de procesamiento, pero suele producir mejores resultados.

Referencias

Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin. "Attention Is All You Need." 6 de diciembre de 2017. https://arxiv.org/abs/1706.03762.

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.