===========
PyJoke
===========

PyJoke is a package for fetching the perfect joke in a database.
You give a sentence, you get a joke. Isn't that great? Common usage is::

    #!/usr/bin/env python

    from pyjoke.PyJoke import *

    p = PyJoke()
    print p.getTheJoke("keywords listed as such")

PyJoke has been developed for as a NAO module (in French), but can also work as a standalone.
It should be possible to make it work in English.

# How does it work?

* Give a sentence to PyJoke (see script above)
* PyJoke will analyse the sentence
* First, create a keywords list (by removing stopwords)
* If POSTAG is active, it will add a score to each kword
* Then, create a query, connect to database and send query
* The query (above) is meant to filter the jokes
  It will get the jokes with at least 1 keyword
* Then, score each joke
* And return the best one

# What can the user change?

* Config a MySQL or a SQLite database
* Use of Postag (and the scores)
* NAO mode
* Language (French by default)
* Maximum joke length
* Conversation mode (experimental)

# Database format

The joke database needs to have two fields at least:
* text
* score
Text being the joke itself, and score being an arbitrary score that's not going to be used, really (should do that...)

# Useful libs and dependencies

PyJoke has dependencies, some are optional
* NTLK
* SQLite (or MySQL)
* YAML
* TreeTagger (opt)
* /usr/lib/sqlite3/pcre.so (opt)
