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.2a2
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.2a2.tar.gz | 18.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ovos_markov_pipeline_plugin-0.5.2a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.0 kB
Release files / ovos_markov_pipeline_plugin-0.5.2a2.tar.gz
| Download URL | ovos_markov_pipeline_plugin-0.5.2a2.tar.gz |
|---|---|
| Size | 18.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c0d4d38696594a48b75e05163c195344cab33bc534f3e74f7e5452ff0af76d9e
|
|
BLAKE2b-256 checksum How to use checksums |
d786302335fb395ea941e15b6d16dc9565bc7eb446e8be8962c889df1559e1d4
|
| 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.2a2-py3-none-any.whl
| Download URL | ovos_markov_pipeline_plugin-0.5.2a2-py3-none-any.whl |
|---|---|
| Size | 20.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ecd6e7da6a7a2471d6b5f995ad8a227ae7a2e96422709f95d2f79da098acfdbe
|
|
BLAKE2b-256 checksum How to use checksums |
7336535c17e4ab512a3ddc257e54d7366983f7b1882143f5f0ee41ecb69b7f69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|