La clasificación de texto es el proceso de asignar una categoría o etiqueta predefinida a 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 (PLN) para entrenar modelos de clasificación de texto, así como para utilizar los modelos para clasificar texto.
La herramienta Entrenar modelo de clasificación de texto entrena modelos PLN para clasificar texto basándose en clases o categorías conocidas proporcionadas como parte de un dataset de entrenamiento. Los modelos entrenados se pueden utilizar con la herramienta Clasificar texto con aprendizaje profundo para clasificar texto similar en esas categorías.
Potenciales aplicaciones
A continuación se describen aplicaciones potenciales para esta herramienta:
- Las direcciones incompletas se pueden clasificar por el país al que pertenecen. Puede ayudar a asignar el localizador adecuado para geocodificar esas direcciones con mayor precisión.
- Los tuits geolocalizados se pueden clasificar en función de si indican un sentimiento de duda hacia las vacunas. Puede ayudar a identificar las áreas en las que las campañas de educación pública pueden aumentar la confianza del público y la aceptación de las vacunas.
- Categorizar el tipo de delito basándose en informes de incidentes. Puede ayudar a comprender las tendencias, al agregar delitos por categoría, y a planificar las medidas correctivas.
Los modelos de clasificación de texto de ArcGIS se basan en la arquitectura Transformador propuesta por Vaswani, et al. en el influyente ensayo "Attention is All you Need". Permite que los modelos sean más precisos y paralelos, y además se necesitan menos datos etiquetados para el entrenamiento.
Internamente, los modelos de clasificación de texto en ArcGIS son redes neuronales profundas que tienen 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: un clasificador es la cabeza del modelo y clasifica las representaciones de entidades en varias categorías. Con frecuencia, un clasificador es una capa lineal simple de la red neuronal.
Nota:
Los modelos PLN pueden ser herramientas eficaces a la hora de automatizar el análisis de grandes volúmenes de texto no estructurado. Al igual que con otros tipos de modelos, asegúrese 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.
Utilizar modelos de clasificación de texto
Puede utilizar la herramienta Clasificar texto con aprendizaje profundo para aplicar un modelo de clasificación de texto entrenado a texto no estructurado y categorizarlo en tipos predeterminados. Puede usar modelos de clasificación de texto previamente entrenados desde ArcGIS Living Atlas of the World, o bien entrenar modelos personalizados con la herramienta Entrenar modelo de clasificación de texto.
La entrada de la herramienta Clasificar texto con aprendizaje profundo es una clase de entidad o tabla que contiene el texto que se va a clasificar. 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 un campo en la tabla de entrada que contiene la etiqueta de clase o categoría asignada al texto de entrada por el modelo.
Aunque la herramienta se puede ejecutar en CPU, se recomienda el uso de GPU para el procesamiento, ya que el aprendizaje profundo requiere gran potencia 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 clasificación de texto
La herramienta Entrenar modelo de clasificación de texto se puede usar para entrenar modelos de PLN para la clasificación del texto. Esta herramienta utiliza un planteamiento de aprendizaje automático y entrena el modelo al alimentarle muestras de entrenamiento formadas por pares de clases de etiquetas y texto de entrada. El entrenamiento de modelos PLN 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 tabla de entrada que contiene un campo de texto que actúa como variable de indicador y un campo de etiqueta que contiene la etiqueta de clase de destino para cada texto de entrada de la tabla.
Al entrenar un modelo de clasificación de texto, puede optar por entrenar el modelo desde cero o ajustar con precisión un modelo entrenado. En general, los modelos de idioma que utilizan la arquitectura de transformador se considera que aprenden con unas pocas muestras.
Sin embargo, si tiene acceso a un modelo de clasificación de texto preentrenado con el mismo conjunto de clases objetivo que en las muestras de entrenamiento, puede ajustarlo en 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 o un archivo de paquete de aprendizaje profundo. El modelo de salida también se guarda en estos formatos en la carpeta de modelo de salida especificada.
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 todos 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. Si tiene muchas muestras de entrenamiento, puede usar un valor bajo. En general, es buena idea 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. Estos codificadores tienen un buen conocimiento del lenguaje y pueden representar el texto de entrada en forma de vectores de longitud fija que sirven como entradas para la cabeza de clasificación del modelo.
El entrenamiento de modelos se realiza por lotes, y el parámetro 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 de 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 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 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 al desmarcar el parámetro 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.
Los datos de texto a menudo contienen ruido en forma de etiquetas HTML y direcciones URL. Puede utilizar los parámetros Eliminar etiquetas HTML y Eliminar URL para preprocesar el texto y eliminar las etiquetas antes del procesamiento.
Referencias
Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser e Illia Polosukhin. "Attention Is All You Need." 6 de diciembre de 2017. https://arxiv.org/abs/1706.03762.
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://doi.org/10.48550/arxiv.1810.04805.
"Encoder models." https://huggingface.co/course/chapter1/5?fw=pt.
Brown, Tom B. et al. "Language Models are Few-Shot Learners." 22 de julio de 2020. https://doi.org/10.48550/arxiv.2005.14165.
Smith, Leslie N. "Cyclical Learning Rates for Training Neural Networks." 4 de abril de 2017. https://doi.org/10.48550/arxiv.1506.01186.