Skip to main content

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/:

License

Apache-2.0

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

ovos_markov_pipeline_plugin-0.4.0a1.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovos_markov_pipeline_plugin-0.4.0a1-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file ovos_markov_pipeline_plugin-0.4.0a1.tar.gz.

File metadata

File hashes

Hashes for ovos_markov_pipeline_plugin-0.4.0a1.tar.gz
Algorithm Hash digest
SHA256 369793fa2f55d308630d2f607b56f6449c073f14348a4c048ea6b2a3a0e4e774
MD5 569613cd0614f23909ed88ffc5497df2
BLAKE2b-256 86f9ec26c837ea16c7ce67d62c09f1716d1458b4245d02f311b3493b468eca9e

See more details on using hashes here.

File details

Details for the file ovos_markov_pipeline_plugin-0.4.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_markov_pipeline_plugin-0.4.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 ec3f6b18bc94dfe0020092ee60a2c30b7da919f7b247a0cb2cf560ba4a6e5b3a
MD5 dbd1ed2dbdc5d2f8082f90af50290028
BLAKE2b-256 c81e05b7a2515d38231269e141d0d7574e6961e0fe3372e16b8b9601f9aa99d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page