Skip to content

Repository files navigation

TFG - Sistema de Detección de Anglicismos

Este proyecto contiene los programas desarrollados para el Trabajo de Fin de Grado enfocado en la detección automática de anglicismos en textos en español utilizando técnicas de procesamiento de lenguaje natural y aprendizaje automático.

📁 Estructura del Proyecto

Carpetas Principales

  • resultados/: Contiene todas las métricas y resultados de las pruebas obtenidas durante el desarrollo y evaluación del modelo y la aplicación web.

  • Adobo2025/: Incluye los resultados y archivos pertinentes a la fase de desarrollo y test de la tarea Adobo2025, incluyendo datasets específicos y evaluaciones del modelo en este contexto.

  • desarrollo_modelo/: Contiene los programas principales utilizados para el desarrollo, entrenamiento y evaluación del modelo de detección de anglicismos.

  • easier/: Documentación del proyecto EASIER del grupo de investigación HULAT, que proporciona el contexto académico y las bases teóricas del trabajo.

🛠️ Instalación y Configuración

Prerrequisitos

  • Python 3.8 o superior
  • pip (gestor de paquetes de Python)
  • CUDA (opcional, para aceleración GPU)

Instalación de Dependencias

  1. Clonar el repositorio:

    git clone <repository-url>
  2. Crear un entorno virtual (recomendado):

    python -m venv venv
    source venv/bin/activate  # En Windows: venv\Scripts\activate
  3. Instalar las dependencias:

    pip install -r requirements.txt
  4. Descargar el modelo de spaCy para español:

    python -m spacy download es_core_news_lg

🚀 Uso del Sistema

1. Entrenamiento del Modelo (desarrollo_modelo/modelo_anglicismos.py)

Este script entrena un modelo de clasificación de tokens para detectar anglicismos utilizando el dataset COALAS.

cd desarrollo_modelo
python modelo_anglicismos.py

Funcionalidades:

  • Carga automática del dataset COALAS desde repositorios remotos
  • Entrenamiento con XLM-RoBERTa fine-tuned
  • Evaluación automática con métricas detalladas
  • Guardado del modelo entrenado en ./borrowing_classifier_model

2. Pipeline de Predicción (desarrollo_modelo/pipeline.py)

Contiene las funciones principales para cargar el modelo entrenado y realizar predicciones sobre textos.

Uso programático:

from pipeline import load_model, predecir_anglicismo, predict_borrowings_with_pos

# Cargar modelo
tokenizer, trainer = load_model("./borrowing_classifier_model_extended_v2")

# Predecir anglicismos en un texto
text = "El 'whataboutism' es una técnica muy común en política"
predictions = predecir_anglicismo(load_model, predict_borrowings_with_pos, text)
print(predictions)

Ejecución directa:

python pipeline.py

3. Procesamiento para Adobo2025 (desarrollo_modelo/adobo2025.py)

Script especializado para procesar archivos CSV en el formato requerido por la tarea Adobo2025.

python adobo2025.py --input_file ./adobo2025/input.csv --output_file ./adobo2025/results.csv

Parámetros:

  • --input_file: Archivo CSV de entrada con oraciones a procesar
  • --output_file: Archivo CSV de salida con anglicismos detectados

Formato del archivo de entrada:

Esta es una oración con un posible anglicismo
Otra oración para analizar

Formato del archivo de salida:

Esta es una oración con un posible anglicismo;anglicismo_detectado
Otra oración para analizar;

🔧 Componentes Técnicos

Modelo Base

  • Arquitectura: XLM-RoBERTa Large fine-tuned en CoNLL-02 Spanish
  • Tarea: Clasificación de tokens (NER)
  • Etiquetas:
    • B-ENG: Inicio de anglicismo
    • I-ENG: Continuación de anglicismo
    • O: No es anglicismo

Dataset

  • Fuente: COALAS (Corpus of Anglicisms in Spanish)
  • Formato: CoNLL
  • Divisiones: Entrenamiento, validación y test

Características del Pipeline

  • Preprocesamiento con spaCy
  • Verificación con diccionario RAE
  • Filtrado de nombres propios y números
  • Procesamiento por lotes optimizado

📊 Métricas y Evaluación

El sistema proporciona métricas detalladas incluyendo:

  • Precisión, recall y F1-score generales
  • Métricas específicas para anglicismos
  • Métricas para palabras no anglicismos
  • Accuracy del modelo

🔍 Ejemplos de Uso

Detección Básica

text = "El marketing digital incluye muchas strategies nuevas"
predictions = predecir_anglicismo(load_model, predict_borrowings_with_pos, text)
# Resultado: [('el', 'O'), ('marketing', 'B-ENG'), ('digital', 'O'), ...]

Procesamiento de Archivo

python adobo2025.py --input_file mi_archivo.csv --output_file resultados.csv

🤝 Contribuciones

Este proyecto forma parte del grupo de investigación HULAT (Human Language and Accessibility Technologies) de la Universidad Carlos III de Madrid.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages