Skip to content

Add documentation for tc_pipeline.py in English and Spanish

Documentation for tc_pipeline.py

This MR adds comprehensive documentation for the src/topic_finder/topic_calculator/tc_pipeline.py script in both English and Spanish.

Files to be added:

📄 Docs/tc_pipeline_en.md (English Documentation)

# tc_pipeline.py - Topic Calculation Pipeline

## Overview
This script implements a topic modeling pipeline using BERTopic to discover and extract topics from text data. It processes ticket descriptions and applies advanced NLP techniques to identify thematic clusters.

## Main Functions

### `custom_preprocessing(dataset, column='problem_definition')`
Preprocesses the input dataset before topic modeling.

**Parameters:**
- `dataset` (pd.DataFrame): Input dataframe containing text data
- `column` (str): Column name to process (default: 'problem_definition')

**Process:**
- Removes duplicate entries based on 'cleaner_subject'
- Fills missing values with 'cleaner_description'
- Applies lemmatization to normalize text

**Returns:** Preprocessed DataFrame

### `calculate_topics(dataset, column='problem_definition')`
Main pipeline function that calculates topics from the dataset.

**Parameters:**
- `dataset` (pd.DataFrame): Input dataframe with text data
- `column` (str): Column containing text to analyze

**Pipeline Steps:**
1. **Preprocessing**: Cleans and lemmatizes text
2. **Embeddings**: Generates sentence embeddings using 'all-mpnet-base-v2' model
3. **Vocabulary**: Builds custom vocabulary with min frequency of 10
4. **Vectorization**: Creates token count matrix (1-3 n-grams)
5. **Dimensionality Reduction**: UMAP reduces to 5 components
6. **Clustering**: HDBSCAN identifies density-based clusters
7. **Representation**: KeyBERT and MMR enhance topic keywords
8. **Topic Modeling**: BERTopic assembles all components

**Configuration:**
- UMAP: 5 components, 35 neighbors, cosine metric
- HDBSCAN: min 25 samples per cluster, Manhattan metric
- MMR diversity: 0.3
- Top 15 words per topic

**Returns:** Trained BERTopic model (also saved to disk with timestamp)

## Dependencies
- BERTopic, sentence-transformers, UMAP, HDBSCAN
- pandas, sklearn, tqdm
- Custom NLP module from topic_finder

## Output
Model saved to: `models/topic_model/bertopic_model_YYYYMMDD_HHMMSS`

📄 Docs/tc_pipeline_es.md (Spanish Documentation)

# tc_pipeline.py - Pipeline de Cálculo de Tópicos

## Descripción General
Este script implementa un pipeline de modelado de tópicos usando BERTopic para descubrir y extraer temas de datos textuales. Procesa descripciones de tickets y aplica técnicas avanzadas de PLN para identificar clusters temáticos.

## Funciones Principales

### `custom_preprocessing(dataset, column='problem_definition')`
Preprocesa el conjunto de datos antes del modelado de tópicos.

**Parámetros:**
- `dataset` (pd.DataFrame): DataFrame de entrada con datos textuales
- `column` (str): Nombre de la columna a procesar (predeterminado: 'problem_definition')

**Proceso:**
- Elimina entradas duplicadas basándose en 'cleaner_subject'
- Rellena valores faltantes con 'cleaner_description'
- Aplica lematización para normalizar el texto

**Retorna:** DataFrame preprocesado

### `calculate_topics(dataset, column='problem_definition')`
Función principal del pipeline que calcula tópicos del conjunto de datos.

**Parámetros:**
- `dataset` (pd.DataFrame): DataFrame de entrada con datos textuales
- `column` (str): Columna que contiene el texto a analizar

**Pasos del Pipeline:**
1. **Preprocesamiento**: Limpia y lematiza el texto
2. **Embeddings**: Genera embeddings de oraciones usando el modelo 'all-mpnet-base-v2'
3. **Vocabulario**: Construye vocabulario personalizado con frecuencia mínima de 10
4. **Vectorización**: Crea matriz de conteo de tokens (n-gramas de 1-3)
5. **Reducción Dimensional**: UMAP reduce a 5 componentes
6. **Clustering**: HDBSCAN identifica clusters basados en densidad
7. **Representación**: KeyBERT y MMR mejoran las palabras clave de los tópicos
8. **Modelado de Tópicos**: BERTopic ensambla todos los componentes

**Configuración:**
- UMAP: 5 componentes, 35 vecinos, métrica coseno
- HDBSCAN: mínimo 25 muestras por cluster, métrica Manhattan
- Diversidad MMR: 0.3
- Top 15 palabras por tópico

**Retorna:** Modelo BERTopic entrenado (también guardado en disco con marca de tiempo)

## Dependencias
- BERTopic, sentence-transformers, UMAP, HDBSCAN
- pandas, sklearn, tqdm
- Módulo NLP personalizado de topic_finder

## Salida
Modelo guardado en: `models/topic_model/bertopic_model_YYYYMMDD_HHMMSS`

Instructions to Complete this MR

To add these files to the repository, please:

  1. Create a new branch: docs/tc-pipeline-documentation
  2. Create the Docs/ folder if it doesn't exist
  3. Add the file Docs/tc_pipeline_en.md with the English documentation above
  4. Add the file Docs/tc_pipeline_es.md with the Spanish documentation above
  5. Commit and push the changes
  6. This MR will be ready for review

Checklist

  • English documentation created
  • Spanish documentation created
  • Files placed in Docs/ folder
  • Documentation reviewed for accuracy

Merge request reports

Loading