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
-
RegEx Layer — Pattern matching for known command structures. Fastest, cheapest, zero dependencies. Handles explicit commands and simple queries.
-
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").
-
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2d80f31f901abad41127de148eaa00eed35f27bf8aabbc607e65c1826a0287b
|
|
| MD5 |
60f0b02c8fe75ac787f384f49410d31b
|
|
| BLAKE2b-256 |
4ca11027112d66e07f2526e80384581cd94b52a88924c913d6c614c9394b9ff8
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b50bf83f44195f4cca7d59d879c077684870162b7d882fe91fc90f343feb6246
|
|
| MD5 |
23cbcd43ceff2d5a72a26c5c7be08cea
|
|
| BLAKE2b-256 |
6cca71177b7e70845646e735c45d547b756033205bd02fee584294b50ebd1adc
|