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.
-
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.
- Python 3.8 o superior
- pip (gestor de paquetes de Python)
- CUDA (opcional, para aceleración GPU)
-
Clonar el repositorio:
git clone <repository-url>
-
Crear un entorno virtual (recomendado):
python -m venv venv source venv/bin/activate # En Windows: venv\Scripts\activate
-
Instalar las dependencias:
pip install -r requirements.txt
-
Descargar el modelo de spaCy para español:
python -m spacy download es_core_news_lg
Este script entrena un modelo de clasificación de tokens para detectar anglicismos utilizando el dataset COALAS.
cd desarrollo_modelo
python modelo_anglicismos.pyFuncionalidades:
- 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
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.pyScript 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.csvPará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 analizarFormato del archivo de salida:
Esta es una oración con un posible anglicismo;anglicismo_detectado
Otra oración para analizar;- Arquitectura: XLM-RoBERTa Large fine-tuned en CoNLL-02 Spanish
- Tarea: Clasificación de tokens (NER)
- Etiquetas:
B-ENG: Inicio de anglicismoI-ENG: Continuación de anglicismoO: No es anglicismo
- Fuente: COALAS (Corpus of Anglicisms in Spanish)
- Formato: CoNLL
- Divisiones: Entrenamiento, validación y test
- Preprocesamiento con spaCy
- Verificación con diccionario RAE
- Filtrado de nombres propios y números
- Procesamiento por lotes optimizado
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
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'), ...]python adobo2025.py --input_file mi_archivo.csv --output_file resultados.csvEste proyecto forma parte del grupo de investigación HULAT (Human Language and Accessibility Technologies) de la Universidad Carlos III de Madrid.