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