Skip to main content

Twotuples: Clasificador de Texto con Lógica Difusa (High-Speed Lexicon Edition)

GitHub Repo

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 las librerías basadas en pesados modelos de Deep Learning, Twotuples es un "Machete Láser": un motor híbrido multi-agente extremadamente rápido y ligero que combina lógica semántica, probabilidad estadística y diccionarios mediante Lógica Difusa (Fuzzy Logic).

En su versión 2.0.0, la arquitectura ha sido validada con un dataset de 21,847 comentarios, logrando resultados consistentes procesando miles de comentarios en segundos sin necesidad de GPU.

Características Principales

  • Arquitectura Triunvirato Multi-Agente:
    • Sentiment_Spanish: IA de sentimientos optimizada para lenguaje natural.
    • Lexicon_JSON: Diccionario experto nativo con soporte para negaciones, intensificadores (muy, poco) y contrastes (pero).
    • Senticon_XML: Diccionario semántico estructurado en XML basado en el léxico Elhuyar, que complementa la precisión en ciertas palabras clave.
  • Lógica de Bigramas (NUEVO): El sistema escanea y "consume" frases compuestas ("nada_mal", "pesimo_servicio") antes de procesar palabras individuales, elevando drásticamente el entendimiento contextual.
  • Velocidad Extrema: Ejecución puramente secuencial en CPU, ideal para entornos de producción de alto volumen.
  • Decisión Difusa: Los tres agentes votan (30%, 40%, 30%) y el resultado se mapea en un espacio difuso (2-tuplas) para la decisión final.

Instalación

Puedes instalar la librería directamente desde PyPI.

pip install Twotuples==2.0.0

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 agentes, 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
Twotuples.difuso_clasificator(data=archivo_excel, ColumnName=nombre_columna)

Archivos generados tras la ejecución:

  • score.xlsx: Archivo final recomendado. Contiene el texto original y la columna Clasicacion_Difusa con las etiquetas finales (POS, NEG, NEU), junto con las predicciones individuales de cada agente.

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 del triunvirato 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.
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)

Ejecuta la predicción sobre un dataset completo.

  • data (str): Ruta al archivo .xlsx que contiene los datos.
  • ColumnName (str): Nombre de la columna en el Excel que contiene el texto a analizar.

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' o 'ConfusionMatrix'.
  • sorter (str, opcional): Define qué modelo evaluar individualmente. Opciones: 'difuse', 'lexicon', 'sentiment', 'senticon'. Por defecto es 'difuse' (Consenso total).
  • ClassNumber (int, opcional): Cantidad de clases de salida. Valores válidos son 2 o 3. Por defecto es 3.

Tecnologías Usadas

  • Lógica Fuzzy 2-Tuple: Implementación matemática nativa para ponderación de votaciones.
  • Sentiment-Analysis-Spanish: Base de IA pre-entrenada para análisis contextual.
  • scikit-learn: Generación de métricas y evaluación de modelos.
  • Otras dependencias: pandas, numpy, matplotlib, tqdm.

Metadata

Release files for Twotuples 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Twotuples 2.0.0
File Size Uploaded
twotuples-2.0.0.tar.gz 104.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Twotuples 2.0.0
File Interpreter ABI Platform
twotuples-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 209.7 kB

Release files / twotuples-2.0.0.tar.gz

Download URL twotuples-2.0.0.tar.gz
Size 104.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d4ae2be34c925ac93b63ff99196da079a1993ba0f86a0ceb6a64b29be0bc6be7
BLAKE2b-256 checksum
How to use checksums
69961227892c1c45dc5ca740ecf4c5cab604792baf6c4cb26ee72769568601fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.6

Release files / twotuples-2.0.0-py3-none-any.whl

Download URL twotuples-2.0.0-py3-none-any.whl
Size 105.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f239e91a441da46649162776defc3d115dd7b9b3f804fec6ddb8efd685643ccf
BLAKE2b-256 checksum
How to use checksums
87528307d65a82f2f9fd10a527bf6c147be7343774e4ffb2eab0597334fd00df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.6

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.9.9

2 release files

1.9.8

2 release files

1.9.7

2 release files

1.9.4

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.9

2 release files

1.8.8

2 release files

1.8.5

2 release files

1.8.4

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.9

2 release files

1.7.8

2 release files

1.7.7

2 release files

1.7.6

2 release files

1.7.4

2 release files

1.7.2

2 release files

1.7.0

2 release files

1.6.3

2 release files

1.6.1

2 release files

1.5.9

2 release files

1.5.8

2 release files

1.5.7

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.8

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page