{"id":21259238,"url":"https://github.com/mycroftai/padaos","last_synced_at":"2025-07-09T20:32:46.282Z","repository":{"id":32417766,"uuid":"132994382","full_name":"MycroftAI/padaos","owner":"MycroftAI","description":"A rigid, lightweight, dead-simple intent parser","archived":false,"fork":false,"pushed_at":"2022-05-30T14:18:07.000Z","size":20,"stargazers_count":11,"open_issues_count":2,"forks_count":10,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-15T20:19:21.216Z","etag":null,"topics":["intent-parser","library","natural-language-processing","regex","text-classification"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MycroftAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-11T05:40:24.000Z","updated_at":"2024-03-01T12:20:10.000Z","dependencies_parsed_at":"2022-08-25T23:00:49.078Z","dependency_job_id":null,"html_url":"https://github.com/MycroftAI/padaos","commit_stats":null,"previous_names":["matthewscholefield/padaos"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/MycroftAI/padaos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MycroftAI%2Fpadaos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MycroftAI%2Fpadaos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MycroftAI%2Fpadaos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MycroftAI%2Fpadaos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MycroftAI","download_url":"https://codeload.github.com/MycroftAI/padaos/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MycroftAI%2Fpadaos/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502666,"owners_count":23618671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["intent-parser","library","natural-language-processing","regex","text-classification"],"created_at":"2024-11-21T04:13:11.804Z","updated_at":"2025-07-09T20:32:46.254Z","avatar_url":"https://github.com/MycroftAI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Padaos\n\n*A rigid, lightweight, dead-simple intent parser*\n\nTo deploy an intent parser into production with an automated feedback loop,\nit's essential that the new data doesn't interfere with the old data. It's\nalso necessary that the parser can learn from sentences that closely match\nwritten English (or any other language). That's what Padaos does.\n\n## Example\n\n```python\nfrom padaos import IntentContainer\n\ncontainer = IntentContainer()\ncontainer.add_intent('hello', [\n    'hello', 'hi', 'how are you', \"what's up\"\n])\ncontainer.add_intent('buy', [\n    'buy {item}', 'purchase {item}', 'get {item}', 'get {item} for me'\n])\ncontainer.add_intent('search', [\n    'search for {query} on {engine}', 'using {engine} (search|look) for {query}',\n    'find {query} (with|using) {engine}'\n])\ncontainer.add_entity('engine', ['abc', 'xyz'])\ncontainer.calc_intent('find cats using xyz')\n# {'name': 'search', 'entities': {'query': 'cats', 'engine': 'xyz'}}\n```\n\n## How it works\n\nPadaos converts a series of example sentences into\none big chunk of regex. Each intent is a single compiled regex matcher.\nHere's a fex examples of the input example and the output regex.\n\n```\nThis is a test\n-\u003e\n\\W*This\\W+is\\W+a\\W+test\\W*\n```\n\n```\nEat an (apple|orange).\n-\u003e\n\\W*Eat\\W+an\\W*(\\W*apple\\W*|\\W*orange\\W*)\\.?\\W*\n```\n\n```\nHello!\nHi!\n-\u003e\n(\\W*Hello\\W*\\!?\\W*|\\W*Hi\\W*\\!?\\W*)\n```\n\n```\nThis is something (inside parentheses)\n-\u003e\n(\\W*This\\W+is\\W+something\\W*\\(?\\W*inside\\W+parentheses\\W*\\)?\\W*)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmycroftai%2Fpadaos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmycroftai%2Fpadaos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmycroftai%2Fpadaos/lists"}