Modelado de temas con BERTtopic en Python |  de Petr Korab |  abril de 2024

Tutorial práctico sobre cómo modelar declaraciones políticas con un modelo temático de última generación basado en transformadores

Foto por harryarts en Freepik

Modelado de temas (es decir, la identificación de temas en un corpus de datos de texto) se ha desarrollado rápidamente desde la Asignación latente de Dirichlet (LDA) modelo fue publicado. Este modelo de tema clásico, sin embargo, no capta bien las relaciones entre palabras porque se basa en el concepto estadístico de bolsa de palabras. Basado en incrustación reciente Top2Vec y BERTopic Los modelos abordan sus inconvenientes explotando modelos de lenguaje previamente entrenados para generar temas.

En este artículo, usaremos Maarten Grootendorst (2022) BERTopic Identificar los términos que representan temas en las transcripciones de discursos políticos. Supera a la mayoría de los modelos de temas tradicionales y modernos en métricas de modelado de temas en varios corpus y se ha utilizado en compañíasacademia (Chagnon, 2024), y el sector público. Exploraremos en código Python:

  • cómo preprocesar datos de manera efectiva
  • cómo crear un modelo de tema de Bigram
  • cómo explorar los términos más frecuentes a lo largo del tiempo.

Como conjunto de datos de ejemplo, usaremos el Empoliticon: conjunto de datos de discursos políticos, contexto y emocionespublicado bajo el Licencia internacional Atribución 4.0, como parte de la Efat et al. (2023) papel. Contiene transcripciones de discursos políticos de 2010 de los presidentes y primeros ministros de EE. UU., Reino Unido, China y Rusia. Para enfocar más el modelo temático, el subconjunto solo incluye los 556 discursos de líderes de Rusia:

Fuente: Emopoliticon: conjunto de datos de discursos políticos, contexto y emociones

Trabajar con conjuntos de datos de texto es complejo. La simple limpieza implica varios pasos que deberían eliminar sistemáticamente toda la información innecesaria del conjunto de datos. Comprobar todo requisitos para este proyecto aquí.

2.1. Arreglando errores de mojibake

Mojibake es una palabra japonesa para el texto confuso que resulta de errores de codificación de caracteres. Aquí hay un ejemplo: