OVOS intent pipeline plugin using Markov chain perplexity ensemble
Project description
ovos-markov-pipeline-plugin
An OVOS intent pipeline plugin that classifies utterances with an ensemble of per-intent Markov chains, scored by perplexity.
It trains one word-level Markov chain per intent from example utterances. At query time it computes the perplexity of the utterance under every model and picks the intent whose model is least "surprised" — lowest perplexity wins. Confidence is derived from perplexity, so the plugin slots cleanly into the OVOS high / medium / low confidence pipeline tiers.
Why a Markov pipeline?
Most OVOS intent matchers either pattern-match (Adapt, padacioso) or train a neural / SVM classifier (padatious, linha-fina). A Markov-chain language model sits in between: it is a lightweight statistical model that learns the word order of each intent's sample set, trains in milliseconds, needs no GPU, and degrades gracefully with very few samples. It is a practical baseline for small skill sets and a useful comparison point against the other matchers.
Install
pip install ovos-markov-pipeline-plugin
Optional stemming support (recommended for non-English use):
pip install ovos-markov-pipeline-plugin[stem]
Quick example
Enable the pipeline in mycroft.conf:
{
"intents": {
"pipeline": [
"ovos-markov-pipeline-plugin-high",
"ovos-markov-pipeline-plugin-medium",
"ovos-markov-pipeline-plugin-low"
]
}
}
Skills register their intents over the bus exactly as they do for padatious — no skill-side changes are required.
Documentation
Full documentation lives in docs/:
- Concepts — how Markov-chain perplexity matching works
- Quickstart — install, configure, run
- Configuration — every config key explained
- Pipeline integration — OPM entry point and bus protocol
- Entity extraction — HMM BIO slot tagging
- Calibration — measuring and tuning confidence
- Model caching — ONNX disk cache
- Tuning — order, smoothing, stemming, fallbacks
- Troubleshooting — common issues and FAQ
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
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 ovos_markov_pipeline_plugin-0.1.0a2.tar.gz.
File metadata
- Download URL: ovos_markov_pipeline_plugin-0.1.0a2.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e95115450f2cef0837484d1268759a723da7abdb61e809668efeccf7c888524
|
|
| MD5 |
a559405291dc7dd341e0381d5630736d
|
|
| BLAKE2b-256 |
b4a6b504ff0ab303bce4429393815b344921f5c0b4f8ebb8c622bf1bef886484
|
File details
Details for the file ovos_markov_pipeline_plugin-0.1.0a2-py3-none-any.whl.
File metadata
- Download URL: ovos_markov_pipeline_plugin-0.1.0a2-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e440248a7c064786779ced38a18d47e56c8b35201f76a76cb2460aa768564c21
|
|
| MD5 |
93f8b0519dfddf11a90d30e1046ee4c8
|
|
| BLAKE2b-256 |
cdfbd7628ca02760de5fb5a8f5d3a87adcab4d44dcd03e2417a78662033584f1
|