Skip to main content

PARSELY-DIP: Deterministic Intent Parser — RegEx and NLP pipeline for intent recognition

Project description

PARSELY-DIP

Parsing And RegEx Syntactic Engine with Linguistic Yield — Deterministic Intent Parser

Parsely dip for silicon chips.

What It Does

PARSELY-DIP is a deterministic intent recognition engine. It processes natural language input through a cascading pipeline that resolves commands without an LLM whenever possible.

Pipeline: RegEx > Constituency + Dependency Parsing (Stanza) > LLM Fallback

Each layer only fires if the one above didn't match. The cheapest, fastest layer runs first. The LLM is the last resort, not the default.

Why It Exists

LLMs are expensive, slow, and unpredictable. When a user says "what time is it" or "move the card to done," there is zero ambiguity. A regex can handle it in microseconds. An LLM spends tokens guessing what you already know.

PARSELY-DIP intercepts deterministic commands before they reach the LLM, executes them directly, and returns the result. The LLM only gets involved when the input is genuinely ambiguous.

Architecture

Three-Tier Pipeline

  1. RegEx Layer — Pattern matching for known command structures. Fastest, cheapest, zero dependencies. Handles explicit commands and simple queries.

  2. NLP Layer — Stanza constituency and dependency parsing. Matches grammatical structure, not exact strings. Handles natural phrasing variations ("what's the time" vs "what time is it" vs "tell me the time").

  3. LLM Fallback — Only fires when neither deterministic layer can resolve the input. The input arrives with parsed metadata attached, so the LLM has structural context to work with.

Intent Libraries

Intent handlers are sideloadable — drop a folder into intents/ to add new capabilities:

  • Each library contains regex patterns, NLP patterns, and handler functions
  • Libraries are self-registering via decorators
  • Base examples: time telling, weather, scrum card operations

Integration

Designed to run as a Claude Code UserPromptSubmit hook. The hook intercepts the user's message, runs it through the pipeline, and either:

  • Handles it — executes the command, returns the result
  • Passes through — no match, the LLM processes it normally

Pattern Convention

RegEx patterns use leading \s+ before words, not trailing:

CORRECT: (what('s|\s+is)\s+the\s+time|what\s+time\s+is\s+it)
WRONG:   (what('s|is\s+)the\s+time\s+|what\s+time\s+is\s+it\s+)

The space belongs to the approach of the next word, not trailing from the previous.

Status

v0.0.0 — Package name placeholder. Development starting.

License

Source-available. Personal and development use permitted.

Author

George Butiri — george@iseestudios.com

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

parsely_dip-0.0.0.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

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

parsely_dip-0.0.0-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

File details

Details for the file parsely_dip-0.0.0.tar.gz.

File metadata

  • Download URL: parsely_dip-0.0.0.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for parsely_dip-0.0.0.tar.gz
Algorithm Hash digest
SHA256 b2d80f31f901abad41127de148eaa00eed35f27bf8aabbc607e65c1826a0287b
MD5 60f0b02c8fe75ac787f384f49410d31b
BLAKE2b-256 4ca11027112d66e07f2526e80384581cd94b52a88924c913d6c614c9394b9ff8

See more details on using hashes here.

File details

Details for the file parsely_dip-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: parsely_dip-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for parsely_dip-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b50bf83f44195f4cca7d59d879c077684870162b7d882fe91fc90f343feb6246
MD5 23cbcd43ceff2d5a72a26c5c7be08cea
BLAKE2b-256 6cca71177b7e70845646e735c45d547b756033205bd02fee584294b50ebd1adc

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