Skip to main content

Libreria para clasificar texto

Project description

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 1.9.8, 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==1.9.8

[!TIP] Rendimiento: A diferencia de versiones iniciales, Twotuples 1.9.8 es ultra-ligero. No requiere descargar modelos base de transformers masivos, por lo que puede correr perfectamente en cualquier entorno local.

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

twotuples-1.9.9.tar.gz (104.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

twotuples-1.9.9-py3-none-any.whl (105.5 kB view details)

Uploaded Python 3

File details

Details for the file twotuples-1.9.9.tar.gz.

File metadata

  • Download URL: twotuples-1.9.9.tar.gz
  • Upload date:
  • Size: 104.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.6

File hashes

Hashes for twotuples-1.9.9.tar.gz
Algorithm Hash digest
SHA256 2052531b2e47455107eac1ed014e9e0b530982ec7e654bd18d70c49210eee8b6
MD5 1601f12073e4f74f681bff40e019fbc3
BLAKE2b-256 c1243d1e59ae010088f76d44d9f2adc938d591b46fa7849bcaaa595bab2f5377

See more details on using hashes here.

File details

Details for the file twotuples-1.9.9-py3-none-any.whl.

File metadata

  • Download URL: twotuples-1.9.9-py3-none-any.whl
  • Upload date:
  • Size: 105.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.6

File hashes

Hashes for twotuples-1.9.9-py3-none-any.whl
Algorithm Hash digest
SHA256 b1c1b2df84e50b20017097a73a4cf9517ff1eaa05770da785fb20a8b5d70666d
MD5 1881d05d3713479c01e3dfaa13355c30
BLAKE2b-256 384c27f0e90714dd2811daace6e613c707266d17b1dec93d2cfcf7024b16cfdf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page