Skip to main content

Detect and analyze tone and symbolic drift in text.

Project description

L.L.O.Y.D. — Language Layers Over Your Data

A symbolic drift detection and tone deviation engine that listens like a human would — tracking not just sentiment, but meaning breaks, symbolic conflict, and emotional escalation.


🔍 What Is LLOYD?

LLOYD isn’t another sentiment classifier.
It’s a drift-aware analyzer that tells you when a conversation turns — emotionally, symbolically, or relationally.

From sarcastic reversals to performative breakdowns, LLOYD is designed to detect subtle shifts in tone that traditional NLP often misses.

Calibration is limited, but customizable.
LLOYD is lightly tuned, but designed for adaptation to domain-specific tone models.

Work-in-progress with feedback welcome.
This is an active project — contributions, questions, and use-case tests are encouraged.
Contact: putmanmodel@pm.me


✨ What Makes It Different?

🧱 How LLOYD Compares: Above the Stack

LLOYD doesn’t just label tone — it listens like a person, tracking symbolic shifts, emotional slope, and layered meaning.

Here’s how it stacks up:

Tier Model Type Capabilities Notes
🟩 LLOYD Symbolic Drift Engine Emotional drift scoring, override logic, symbolic pattern detection, sarcasm flags, badges ✅ Built for human-level nuance and meaning tracking
🟨 Mid-Level Sentiment Classifier Polarity scoring, intensity detection ⚠️ Misses sarcasm, symbolic shifts, escalation cues
🟥 Legacy Keyword Matcher Token triggers, emotion word lists ❌ Fails on nuance, symbolic inversion, or context

🟢 LLOYD hears the difference between “Great job” and “Great job…”
🔴 Others just check for “positive” or “negative.”

Please note: LLOYD is already scaffolded for Drift Memory and short-term tone weighting —
this table excludes those in-progress features until the official demo drops.

It’s better — and it’s not even done yet.

  • Symbolic override detection ("Great job…", "You helped?")
  • Emphasis escalation tracking (ALL CAPS, !!!, emoji floods)
  • Drift memory modeling to detect emotional pressure buildup
  • Mirror match and mocked echo detection
  • Output includes rationale, badge label, override label

🧪 Quick Start

pip install lloyd-engine  # placeholder for future release
python devtools/run.py

Sample output:

Badge    : 🛳 override: emphasis_override
🔹 [sarcasm_hint]
Baseline : Great job.
Incoming : Great job...
Drift    : True
Label    : sarcasm_hint
Δ        : 80
Rationale: Trailing or embedded sarcasm marker detected.

🌐 Streamlit GUI

Launch the visual interface:

streamlit run devtools/sandbox_demo/app/app.py

Try this real example:

Baseline : Why wasn’t this done earlier?
Incoming : You are garbage.
Drift    : True
Label    : hostile_emphasis
Δ        : 92
Badge    : 🛳 override: hostile_emphasis
Rationale: Intensified hostile language detected — override triggered.

📊 Drift Graph — Tone Shift Over Time

Drift Graph

This plot captures real drift data across a conversation, showing:

  • Δ tone changes turn by turn
  • Sudden spikes in emotional pressure
  • Contextual difference between neutral and hostile replies
  • Future use of short-term memory to weight recent drift and override impact

🧠 Coming Soon — Drift Memory + Field Responsiveness Demo

Scaffolding is already in place for a future interactive demo that showcases:

  • Short-term memory tracking across turns
  • Escalation detection (e.g., passive → sarcastic → hostile)
  • Override arbitration with memory decay
  • Field responsiveness (proactive vs. reactive tone shifts)

Prototype logic lives in:

src/lloyd_drift_demo/engine/drift_memory.py

🛠 Drift Thresholds (Tunable)

Users can modify:

  • DRIFT_THRESHOLD (default = 0.15)
  • Emphasis override sensitivity
  • Symbolic override rules

Feedback is welcome for future tuning.


💡 Tip: Use ChatGPT as a Temporary Code Lab Assistant

You can copy and paste full Python files into ChatGPT to get live analysis, refactors, and debugging help — just like a pair programmer.

✅ Totally legal — as long as it’s your code (or permissively licensed)
✅ Session-aware — ChatGPT can remember your pasted files for the whole conversation
✅ No training risk — Your code stays private; nothing is used to train the model

⚠️ Session memory resets when you refresh, log out, or start a new chat
⚠️ Don’t paste private or proprietary code unless you’re sure it’s safe


🗂 Project Structure

📁 lloyd_drift_demo/
├── devtools/
│   ├── run.py
│   └── sandbox_demo/app/app.py
├── src/lloyd_drift_demo/
│   ├── engine/
│   ├── drift_utils.py
│   └── override_scores.py
📁 media/
└── examples/   # (Planned)

📦 Requirements

  • Python 3.11+
  • pip install -r requirements.txt

🤝 Contribute or Collaborate

This is an active research project.
Feedback, testing, and conceptual contributions welcome.

📬 Contact: putmanmodel@pm.me
🧵 Twitter/Reddit: @putmanmodel


📚 Credits

  • Built on top of the excellent GoEmotions dataset from Google Research
  • Special thanks to the community at r/datasets for sharing valuable resources and inspiration
  • And to Lloyd, my brother — whom I "accidentally" named this project after

📜 License

Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
Use, modify, and remix freely — just don’t sell it.

“Most sentiment systems end with polarity.
LLOYD starts with meaning.”

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

lloyd_drift_demo-0.1.0.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

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

lloyd_drift_demo-0.1.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file lloyd_drift_demo-0.1.0.tar.gz.

File metadata

  • Download URL: lloyd_drift_demo-0.1.0.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for lloyd_drift_demo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1ddea0148e76d278f637bf62ca870f9eff403f343d07516d285a4d10db551622
MD5 8f54813bd7099bb566539b3fb03771b7
BLAKE2b-256 8db31df087423cb603d2fa59904c083d87edf6011a3904637bb0565a878db59a

See more details on using hashes here.

File details

Details for the file lloyd_drift_demo-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for lloyd_drift_demo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e03e81bddd5755dc23d023eae3959956032672eae398775fdbe777dbdb5511e3
MD5 84d9d7775750d0a042aa283f1fc159f4
BLAKE2b-256 49331fa29cff761fe2ec37cdf85a8c8129419edba739f5ea0618e0ff26e14a7c

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