Libreria para clasificar texto
Project description
Twotuples: Clasificador de Texto con Lógica Difusa
La librería twotuples tiene como objetivo clasificar opiniones o comentarios en tres categorías: positivo (POS), negativo (NEG) o neutral (NEU).
A diferencia de otras librerías de procesamiento de lenguaje natural (NLP), twotuples utiliza tres clasificadores de texto robustos internamente y combina sus resultados utilizando un clasificador difuso basado en el modelo de 2-tuplas lingüísticas, ofreciendo resultados más precisos y de consenso.
Durante su desarrollo, la librería fue probada con 21,847 comentarios de hoteles extraídos de TripAdvisor, obteniendo resultados excelentes evaluados a través del análisis de diversas métricas.
Características
- Integración de múltiples modelos de estado del arte: Pysentimiento, Bert Multilingual y Asent.
- Sistema de decisión consensuada basado en Lógica Difusa (Fuzzy Logic).
- Soporte para textos nativos, utilizando modelos multilingües que evitan la necesidad de traducciones previas.
- Exportación automática de resultados y métricas a archivos Excel.
Instalación
Puedes instalar la librería utilizando pip. Como la librería está alojada en TestPyPI, debes incluir el parámetro --extra-index-url para que las dependencias estándar se descarguen de PyPI correctamente.
pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ Twotuples==1.3.8
[!TIP] Recomendación: Es altamente aconsejable ejecutar e instalar esta librería en entornos como Google Colab o un entorno virtual local dedicado, ya que requiere descargar modelos pesados de Machine Learning y diccionarios como
transformersyspacy.
Uso Rápido (Quickstart)
1. Clasificación Difusa de Opiniones
Esta es la funcionalidad principal. Toma un archivo Excel con una columna de textos, ejecuta los tres modelos, aplica la lógica difusa y devuelve archivos Excel con las predicciones.
from Twotuples import Twotuples
# 1. Definimos la ruta al archivo y la columna a analizar
archivo_excel = "data.xlsx"
nombre_columna = "Opinion"
# 2. Ejecutamos el clasificador difuso
Twotuples.difuso_clasificator(data=archivo_excel, ColumnName=nombre_columna)
Archivos generados tras la ejecución:
score_diffuse.xlsx: Archivo final recomendado. Contiene el texto original y una nueva columna llamadaClasicacion_Difusacon las etiquetas finales (POS, NEG, NEU).score_pysentiment.xlsx,score_bert.xlsx,score_asent.xlsx: Archivos con los resultados individuales por cada modelo.score.xlsx: Resumen unificado numérico.
2. Evaluación de Métricas
Si tu archivo Excel original contiene una columna con las etiquetas reales o esperadas (Ground Truth), puedes comparar las predicciones de la librería con la realidad utilizando la función Metric.
# Reporte de métricas (Precision, Recall, F1-Score)
# Sustituye 'Etiqueta_Real' por el nombre de la columna que contiene los valores esperados en tu Excel.
Twotuples.Metric(etiqueta='Etiqueta_Real', metric='ClassificationReport', sorter='difuse', ClassNumber=3)
# Mostrar la matriz de confusión de forma gráfica
Twotuples.Metric(etiqueta='Etiqueta_Real', metric='ConfusionMatrix', sorter='difuse', ClassNumber=3)
Referencia de la API
Twotuples.difuso_clasificator(data, ColumnName, C=False)
Ejecuta la predicción sobre un dataset completo.
data(str): Ruta al archivo.xlsxque contiene los datos. Debe tener una hoja llamadaSheet1.ColumnName(str): Nombre de la columna en el Excel que contiene el texto a analizar.C(bool, opcional): Parámetro heredado por compatibilidad; ya no es necesario activarlo porque los modelos son multilingües.
Twotuples.Metric(etiqueta, metric='ClassificationReport', sorter='difuse', ClassNumber=3)
Evalúa y visualiza el rendimiento de las predicciones.
etiqueta(str): Nombre de la columna con las clasificaciones manuales/reales.metric(str, opcional): Tipo de visualización. Opciones:'ClassificationReport'(tabla de texto) o'ConfusionMatrix'(gráfico visual).sorter(str, opcional): Define qué modelo específico evaluar. Opciones:'difuse','pysentiment','bert','asent'. Por defecto es'difuse'.ClassNumber(int, opcional): Cantidad de clases de salida. Valores válidos son2o3. Por defecto es3.
Tecnologías Usadas
- Pysentimiento (v0.7.2): Herramienta de NLP basada en Transformers para español e inglés.
- Bert Multilingual Sentiment: Modelo fine-tuned de BERT para clasificación de reseñas en múltiples idiomas.
- Asent (v0.8.0): Análisis de sentimientos basado en reglas para Spacy.
- Transformers & PyTorch: Framework principal para los modelos de deep learning subyacentes.
- Otras dependencias:
spacy,scikit-learn,pandas,numpy,matplotlib.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file twotuples-1.9.0.tar.gz.
File metadata
- Download URL: twotuples-1.9.0.tar.gz
- Upload date:
- Size: 108.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79a0f72ad7072b8de24ae26d8af8868d7e2fc11ff23ad239451c0f2bb077a65c
|
|
| MD5 |
15b222a5414ee1363dfef0f24e7675a6
|
|
| BLAKE2b-256 |
a0f7c582d9a165e073578a5471209e4a23b3a7f5c9991650d22168c35c28819c
|
File details
Details for the file twotuples-1.9.0-py3-none-any.whl.
File metadata
- Download URL: twotuples-1.9.0-py3-none-any.whl
- Upload date:
- Size: 110.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8889dd6f938b526edc34fbcd628fef0a9a6f9c0c5caecd7f6c4762c010d85599
|
|
| MD5 |
a224a429b0b4ab68a6bef5d1405a3904
|
|
| BLAKE2b-256 |
8098c1bdba7ef233ae969d89680b80d8f7017b7a959201cff92328c5dd8bd246
|