This release is a pre-release and may not be stable for production use.
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": the lowest perplexity wins. Confidence comes from perplexity, so the plugin fits into the OVOS high, medium, and low confidence pipeline tiers.
Why a Markov pipeline?
Most OVOS intent matchers either pattern-match (Adapt, padacioso) or train a neural or 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. It 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
Metadata
Release files for ovos-markov-pipeline-plugin 0.5.1a1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ovos_markov_pipeline_plugin-0.5.1a1.tar.gz | 18.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ovos_markov_pipeline_plugin-0.5.1a1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.5 kB
Release files / ovos_markov_pipeline_plugin-0.5.1a1.tar.gz
| Download URL | ovos_markov_pipeline_plugin-0.5.1a1.tar.gz |
|---|---|
| Size | 18.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4f1a7a25b0679e7b7d04a1347ae0de5cac500ec116672f60c255d422493d6efa
|
|
BLAKE2b-256 checksum How to use checksums |
210d1cd4ca986130c3a8f83516ca8a4602ac17adb73df748eec942669f80c980
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / ovos_markov_pipeline_plugin-0.5.1a1-py3-none-any.whl
| Download URL | ovos_markov_pipeline_plugin-0.5.1a1-py3-none-any.whl |
|---|---|
| Size | 19.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
67e63e04c365aacd551b800c6d20f34d3ffde1e1b5b1e82f921187c7ecc63e9c
|
|
BLAKE2b-256 checksum How to use checksums |
f752797af500a0e07f87de299cbd86b58de464db4685d09f10d611bff1617cf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|