Skip to main content

LLOYD symbolic drift detection engine

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.


🔗 Try It Now


🔍 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-drift-demo==0.1.0
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.
Baseline : Why wasn’t this done earlier?
Incoming : I had to take out the garbage.
Drift    : False
Label    : neutral
Δ        : 5
Badge    : none
Rationale: No drift detected — response remains within expected symbolic frame.

📊 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_Language_Engine/
├── README.md
├── media/
│   └── graph.png
├── src/
│   └── lloyd_drift_demo/
│       └── engine/
│           └── drift_utils_v2.py
├── demos/
│   └── sandbox_demo/
│       └── app/
│           └── app.py

📦 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.2.tar.gz (19.1 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.2-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for lloyd_drift_demo-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4fd5a3cff8c662c62a24bcec17d1b5e36aa738ba9e6bf2b8d1e49438759b334a
MD5 acd462b28735615dc7e99946af9f2dea
BLAKE2b-256 acfc3fbb451456d6abe5eadb57f4b1a56ca4e547de2822cb175b9ee6c6450210

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lloyd_drift_demo-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7f40442dd8e391fd775fceb724a7b34696f0b90e195fa7ee4643e2ff863e8dc0
MD5 c4ac9b4215886686e3d186924bf2e1bd
BLAKE2b-256 91d5a99aec615be531f2aabb5d4d9ec17917289350f3caf016d69b85086de10c

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