Skip to content

Examples

Practical examples showing how to use Sentimatrix for real-world scenarios.

Example Categories

:material-rocket-launch: Basic Usage

Getting started with sentiment analysis and emotion detection.

View examples →

:material-cart: E-commerce Analysis

Analyze product reviews from Amazon and other platforms.

View examples →

:material-forum: Social Media

Monitor sentiment on Reddit, YouTube, and social platforms.

View examples →

:material-chart-line: Review Aggregation

Aggregate and analyze reviews across multiple sources.

View examples →

Quick Examples

Basic Sentiment Analysis

import asyncio
from sentimatrix import Sentimatrix

async def main():
    async with Sentimatrix() as sm:
        # Single analysis
        result = await sm.analyze("This product is amazing!")
        print(f"Sentiment: {result.sentiment} ({result.confidence:.0%})")

        # Batch analysis
        texts = [
            "Great quality!",
            "Terrible experience",
            "It's okay",
        ]
        results = await sm.analyze_batch(texts)

        for text, result in zip(texts, results):
            print(f"{result.sentiment:>10}: {text}")

asyncio.run(main())

Steam Game Analysis

import asyncio
from sentimatrix import Sentimatrix
from sentimatrix.config import SentimatrixConfig, LLMConfig

async def analyze_game(app_id: str):
    config = SentimatrixConfig(
        llm=LLMConfig(provider="groq", model="llama-3.3-70b-versatile")
    )

    async with Sentimatrix(config) as sm:
        # Scrape reviews
        reviews = await sm.scrape_reviews(
            url=f"https://store.steampowered.com/app/{app_id}",
            platform="steam",
            max_reviews=100
        )

        # Analyze sentiments
        results = await sm.analyze_batch([r.text for r in reviews])

        # Calculate distribution
        positive = sum(1 for r in results if r.sentiment == "positive")
        total = len(results)

        print(f"Positive: {positive/total*100:.1f}%")

        # Generate summary
        summary = await sm.summarize_reviews(
            [{"text": r.text} for r in reviews[:50]]
        )
        print(f"\nSummary:\n{summary}")

asyncio.run(analyze_game("1245620"))  # Elden Ring

Amazon Product Monitoring

import asyncio
from sentimatrix import Sentimatrix

async def monitor_product(asin: str):
    async with Sentimatrix() as sm:
        reviews = await sm.scrape_reviews(
            url=asin,
            platform="amazon",
            max_reviews=50,
            use_browser=True
        )

        # Rating distribution
        ratings = {}
        for review in reviews:
            ratings[review.rating] = ratings.get(review.rating, 0) + 1

        print("Rating Distribution:")
        for rating in sorted(ratings.keys(), reverse=True):
            count = ratings[rating]
            bar = "=" * (count * 2)
            print(f"{rating}: {bar} ({count})")

        # Analyze verified purchases only
        verified = [r for r in reviews if r.verified_purchase]
        if verified:
            results = await sm.analyze_batch([r.text for r in verified])
            positive = sum(1 for r in results if r.sentiment == "positive")
            print(f"\nVerified purchase sentiment: {positive/len(verified)*100:.0f}% positive")

asyncio.run(monitor_product("B0BSHF7WHW"))

Multi-Platform Comparison

import asyncio
from sentimatrix import Sentimatrix
from sentimatrix.config import SentimatrixConfig, LLMConfig

async def compare_platforms():
    config = SentimatrixConfig(
        llm=LLMConfig(provider="groq", model="llama-3.3-70b-versatile")
    )

    async with Sentimatrix(config) as sm:
        platforms = {
            "steam": "https://store.steampowered.com/app/1245620",
            "reddit": "https://reddit.com/r/Eldenring",
        }

        results = {}
        for platform, url in platforms.items():
            reviews = await sm.scrape_reviews(
                url=url,
                platform=platform,
                max_reviews=50
            )
            analysis = await sm.analyze_batch([r.text for r in reviews])

            positive = sum(1 for r in analysis if r.sentiment == "positive")
            results[platform] = positive / len(analysis) * 100

        print("Sentiment by Platform:")
        for platform, pct in sorted(results.items(), key=lambda x: -x[1]):
            print(f"  {platform}: {pct:.1f}% positive")

asyncio.run(compare_platforms())
Example Difficulty Features Used
Basic Analysis Beginner Sentiment, Batch
E-commerce Analysis Intermediate Scraping, Aspects
Social Media Intermediate Reddit, YouTube
Review Aggregation Advanced Multi-platform, LLM
Real-time Analysis Advanced Streaming, Webhooks
Batch Processing Advanced Large datasets

Running Examples

Clone the examples repository:

git clone https://github.com/sentimatrix/sentimatrix-examples.git
cd sentimatrix-examples
pip install -e .

Run an example:

python examples/basic_analysis.py

Contributing Examples

We welcome example contributions! See our contribution guide.