Skip to main content

A modern sentiment analysis library with optional LLM support

Project description

🎭 Sentimetric - Modern Sentiment Analysis

PyPI version Python 3.8+ License: MIT

Sentimetric is a modern, fast, and accurate sentiment analysis library with optional LLM support for complex emotions, sarcasm, and nuanced context.

✨ Features

  • 🚀 Fast Rule-Based Analysis
  • 🧠 Multi-LLM Support (OpenAI, Google Gemini, Anthropic Claude, Cohere, Hugging Face)
  • 💰 Cost-Aware Model Selection with automatic fallback to cheaper models
  • 📊 Batch Processing with parallel execution
  • 🎯 High Accuracy with modern slang & emojis
  • 🔧 Simple API: from sentimetric import analyze

🚀 Quick Start

Installation

pip install sentimetric

Basic Usage

from sentimetric import analyze

# Quick analysis
result = analyze("This is amazing!")
print(result)
# Example output: SentimentResult(polarity=+0.90, category='positive', confidence=0.85)

Multi-LLM Usage

Sentimetric now supports multiple LLM providers! Choose from OpenAI, Google Gemini, Anthropic Claude, Cohere, or Hugging Face.

Basic LLM Usage

from sentimetric import LLMAnalyzer

# Auto-selects the best available provider
analyzer = LLMAnalyzer()  # Automatically detects available API keys

# Or specify a provider
analyzer = LLMAnalyzer(provider="openai", model="gpt-3.5-turbo")
# analyzer = LLMAnalyzer(provider="google", model="gemini-1.5-flash")
# analyzer = LLMAnalyzer(provider="anthropic", model="claude-3-haiku-20240307")
# analyzer = LLMAnalyzer(provider="cohere", model="command")
# analyzer = LLMAnalyzer(provider="huggingface", model="mistralai/Mixtral-8x7B-Instruct-v0.1")

result = analyzer.analyze("Oh great, another bug 🙄")
print(result.category)  # 'negative' (catches sarcasm)
print(result.reasoning) # Explanation from the LLM

Environment Variables

Set your API keys as environment variables:

# OpenAI
export OPENAI_API_KEY="your-openai-key"

# Google Gemini
export GOOGLE_API_KEY="your-google-key"

# Anthropic Claude
export ANTHROPIC_API_KEY="your-anthropic-key"

# Cohere
export COHERE_API_KEY="your-cohere-key"

# Hugging Face
export HUGGINGFACE_API_KEY="your-hf-key"

Cost-Aware Features

# Auto-select cheapest model
analyzer = LLMAnalyzer(provider="openai", model="auto")  # Uses gpt-3.5-turbo

# Fallback to cheaper models on failure
analyzer = LLMAnalyzer(
    provider="openai",
    model="gpt-4",
    fallback_to_cheaper=True  # Falls back to gpt-3.5-turbo if gpt-4 fails
)

📚 Examples

See examples.py for comprehensive usage examples. Use python examples.py to run them locally.

🛠️ API Reference

Core Functions

  • analyze(text, method='auto') - Quick sentiment analysis
  • analyze_batch(texts, method='rule') - Batch sentiment analysis
  • compare_methods(text, api_key=None) - Compare rule-based vs LLM analysis

Classes

  • Analyzer - Fast rule-based sentiment analyzer
  • LLMAnalyzer - Multi-provider LLM analyzer (OpenAI, Google, Anthropic, Cohere, Hugging Face)
  • SentimentResult - Result container with polarity, category, confidence, reasoning, emotions, tone
  • Benchmark - Accuracy testing and comparison utilities

LLMAnalyzer Constructor Parameters

  • provider - LLM provider ('openai', 'google', 'anthropic', 'cohere', 'huggingface', or 'auto')
  • model - Model name or 'auto' for cheapest available
  • api_key - API key (optional, uses environment variables)
  • fallback_to_cheaper - Whether to fall back to cheaper models if requested model fails (default: True)

📞 Support


Made with ❤️ by Abel Peter

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

sentimetric-1.0.3.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

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

sentimetric-1.0.3-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file sentimetric-1.0.3.tar.gz.

File metadata

  • Download URL: sentimetric-1.0.3.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for sentimetric-1.0.3.tar.gz
Algorithm Hash digest
SHA256 b7f5660d6a11f6617187f322f7b6e78ae2240bfe77ac92a89923509cef1e1b87
MD5 342bad2f235e4beedaf1142fa22def6b
BLAKE2b-256 96aca4e90370a06af2bb9ab46aca3a77f387d3e525a014adea4f8489ae53ff97

See more details on using hashes here.

File details

Details for the file sentimetric-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: sentimetric-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 14.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for sentimetric-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 93837cb32988b0783d07d57481a8c5c4fed0d7accc1abb2883ea0ec386eb2607
MD5 e9eca1bcbc1c29289d8c68c0ba8714c5
BLAKE2b-256 df9b74f3f5ccab97967c39497dd026465329c8c73753a29476d2adddd62dc775

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