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:
- Create a new branch:
docs/tc-pipeline-documentation - Create the
Docs/folder if it doesn't exist - Add the file
Docs/tc_pipeline_en.mdwith the English documentation above - Add the file
Docs/tc_pipeline_es.mdwith the Spanish documentation above - Commit and push the changes
- This MR will be ready for review
Checklist
-
English documentation created -
Spanish documentation created -
Files placed in Docs/folder -
Documentation reviewed for accuracy