Metadata-Version: 2.4
Name: ovos_padatious
Version: 1.4.4a1
Summary: A neural network intent parser
Home-page: https://github.com/OpenVoiceOS/ovos-padatious-pipeline-plugin
Author: Matthew Scholefield
License: Apache-2.0
Keywords: intent-parser parser text text-processing
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Text Processing :: Linguistic
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.0
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fann2<1.1.0,>=1.0.7
Requires-Dist: xxhash
Requires-Dist: ovos-plugin-manager<3.0.0,>=0.5.0
Requires-Dist: ovos-workshop<8.0.0,>=0.1.7
Requires-Dist: ovos-utils<1.0.0,>=0.7.0
Requires-Dist: langcodes
Requires-Dist: snowballstemmer
Requires-Dist: PyStemmer
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: summary

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE.md) 
# Padatious

An efficient and agile neural network intent parser powered by [fann](https://github.com/libfann/fann).

This repository contains a OVOS pipeline plugin and bundles a fork of the original [padatious](https://github.com/MycroftAI/padatious) from the defunct MycroftAI

## Features

 - Intents are easy to create
 - Requires a relatively small amount of data
 - Intents run independent of each other
 - Easily extract entities (ie. Find the nearest *gas station* -> `place: gas station`)
 - Fast training with a modular approach to neural networks


### Installing

Padatious requires the following native packages to be installed:

 - [`FANN`][fann] (with dev headers)
 - Python development headers
 - `pip3`
 - `swig`

Ubuntu:

```
sudo apt-get install libfann-dev python3-dev python3-pip swig libfann-dev python3-fann2
```

Next, install Padatious via `pip3`:

```
pip3 install padatious
```
Padatious also works in Python 2 if you are unable to upgrade.

### Direct Usage

Here's a simple example of how to use Padatious:

```Python
from ovos_padatious import IntentContainer

container = IntentContainer('intent_cache')
container.add_intent('hello', ['Hi there!', 'Hello.'])
container.add_intent('goodbye', ['See you!', 'Goodbye!'])
container.add_intent('search', ['Search for {query} (using|on) {engine}.'])
container.train()

print(container.calc_intent('Hello there!'))
print(container.calc_intent('Search for cats on CatTube.'))

container.remove_intent('goodbye')
```

### License

> **NOTE**: This plugin is an exception to [OVOS universal donor policy](https://openvoiceos.github.io/ovos-technical-manual/license/)

It is licensed under the Apache 2 license, however it depends on fann2 which is licensed under the LGPL. [Why is this an issue?](https://softwareengineering.stackexchange.com/questions/119436/what-does-gpl-with-classpath-exception-mean-in-practice/326325#326325)
