Skip to main content
Help us improve Python packaging – donate today!

PyJoke: Fetch your jokes in Python.

Project Description

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/python
# -*- coding: utf-8 -*-

from pyjoke.PyJoke import *

s = "Sentence with keywords"

p = PyJoke()

p.changeParams()
p.changeDatabase("SoftJokes.db","jokesfr",True)
p.changeDatabase("HardJokes.db","jokes_fr_cat",False)

if p.params.conv==0:
    print p.getTheJoke(s)
else:
    for i in range(p.params.conv):
        s = p.getTheJoke(s)
        print "Personne "+str((i%2)+1)+" dit : "+s

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)

Release history Release notifications

This version
History Node

0.3.3

History Node

0.3.2

History Node

0.3.1

History Node

0.3.0

History Node

0.2.2

History Node

0.2.1

History Node

0.2.0

History Node

0.1.9

History Node

0.1.8

History Node

0.1.7

History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
PyJoke-0.3.3.tar.gz (326.5 kB) Copy SHA256 hash SHA256 Source None Aug 28, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page