Skip to main content

Generate random words based on Markov chains

Project description

Gibi is a random word generator, based on Markov chains.

It analyzes a text in order to deduce the probability of transition from one character to another, and then generates a completely random word that will look alike what you have feeded it as input.

Build status

develop:

build-develop

master:

build-master

Usage

Gibi can be used either as a CLI tool, either as a library.

CLI

A tool named gibi helps you to generate a matrix file, and then use it to generate words. It is self-documented using the –help switch, however here is a typical workflow.

$ gibi analyze corpus.txt matrix.gibi
$ gibi generate matrix.gibi

This will analyze the corpus.txt file into the matrix.gibi file, and then produce 10 random words.

API

Basic usage

In its simplest form, using the API looks like:

with codecs.open(path, 'r', encoding='utf-8') as f:
    n = FrenchNormalizer(f)
    m = Matrix()

    m.feed(n)

print(m.make_word())

You can also make something deterministic by providing a seed to make_word(). Given the same Matrix and the same seed, you will always get the same result. The provided seed is anything that Python’s random would accept. See the following example:

assert m.make_word(42) == m.make_word(42)

Using matrix files

You will probably pre-generate a matrix file using gibi analyze, and then load the resulting file like this

m = Matrix()
with open('matrix.gibi', 'rb') as f:
    m.load(f)

print(m.make_word())

This is much more performant, as generating the matrix can be time-consuming if the corpus is big.

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

gibi-0.2.3.tar.gz (7.1 kB view details)

Uploaded Source

File details

Details for the file gibi-0.2.3.tar.gz.

File metadata

  • Download URL: gibi-0.2.3.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for gibi-0.2.3.tar.gz
Algorithm Hash digest
SHA256 0b869aec92dc080e0bad70e0b5de291509297e60f61417b1ef80d03bf005d5c0
MD5 33a427505c2852f8cbf898d52a399139
BLAKE2b-256 3cb945b94ffcc61b7a1fd3e3a6bf773dc1e5f2b18e953e1251df2dbeae4a4684

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