Skip to main content

cli wrapper for markovify: take a text file or URL, markovify, save the results.

Project description

disclaimer

mkv-this simply makes some of the features of the excellent markovify module available as a command line tool. i started on it because i wanted to to process my own offline files. i published it to share with friends. i'm a totally novice coder. so you are a programmer and felt like picking it up and improving on it, then by all means!

the rest of these notes are for laypersons rather than programmers.

mkv-this

mkv-this is a script that outputs a bunch of bot-like sentences based on a bank of text that you feed it, either from a local text file or a URL, and saves the results to a text file. if you run it again with the same output file, the new results are appended after the old ones.

a second command, mkv-this-dir (see below) allows you to input a directory and it will read all text files within it as the input.

both commands allow you to add a second file or URL to the input, so you can combine your secret diary with some vile shit from the web.

installing

install it with pip, the python package manager:

python3 -m pip install mkv-this

or

pip install mkv-this

to do this you need python3 and pip. install them through your system's package manager. on debian (+ derivatives), for example, you'd run:

sudo apt install python3 python3-pip

markovify is a dependency, but should install along with mkv-this.

if you get sth like ModuleNotFound error: No module named '$modulename', just run pip install $modulename to get the missing module.

options

the script implements a number of the basic markovify options, so you can specify:

  • how many sentences to output (default = 5).
  • the state size, i.e. the number of preceding words to be used in calculating the choice of the next word (default = 2).
  • a maximum sentence length, in characters.
  • the amount of (verbatim) overlap allowed between input and output.
  • if your text's sentences end with newlines rather than full-stops.
  • an additional file or URL to use for text input. you can add only one. if you want to feed a stack of files into your bank, use mkv-this-dir (see below).
  • the relative weight to give to the second file if it is used.

run mkv-this -h to see how to use these options.

mkv-this-dir: markovify a directory of text files

if you want to input a stack of files, use mkv-this-dir instead. specify a directory and all text files in it will be used as input.

as with mkv-this you can also combine it with a URL.

if for some reason you want to get a similar funtionality with mkv-this, you can easily concatenate the files yourself from the command line, then process the resulting file:

  • copy all your text files into a directory
  • cd into the directory
  • run cat * > outputfile.txt
  • run mkv-this on your newly created file: mkv-this outputfile.txt
  • if mkv-this-dir returns lots of chars that don't display because they it can't read the encoding, try this out instead.

file types

you need to input plain text files. currently accepted file extensions are .txt, .org and .md. it is trivial to add others, so if you want one included just ask.

for best results

feed mkv-this large-ish amounts of well punctuated text. it works best if you bulk replace/remove as much mess as possible (code, HTML tags, links, metadata, stars, bullets, lines, tables, etc.), unless you want mashed versions of those things in your output. (no need to clean up URLs though.)

you’ll probably want to edit or select things from the output. it doesn't rly output print-ready boilerplate bosh, although many bots are happily publishing its output directly. you might find that it prompts you to edit it like a bot.

for a few further tips, see https://github.com/jsvine/markovify#basic-usage.

happy zaning.

macos

it seems to run on macos.

you may already have python installed. if not, install homebrew, edit your PATH so that it works, then install python3 with brew install python3. if you are already running an old version of homebrew you might need to run brew install python3 && brew postinstall python3 to get python3 and pip running right.

i know nothing about macs so if you ask me for help i'll just send you random copypasta from the interwebs.

todo

  • option to also append input model to a saved JSON file. (i.e. text_model.to_json(), markovify.Text.from_json())
  • learn how to programme.

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

mkv-this-0.1.34.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

mkv_this-0.1.34-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file mkv-this-0.1.34.tar.gz.

File metadata

  • Download URL: mkv-this-0.1.34.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3

File hashes

Hashes for mkv-this-0.1.34.tar.gz
Algorithm Hash digest
SHA256 c816a67b9d97d6fffa66e4da5fcda1ea25a18a314850e9de230df9e2faedbd0c
MD5 1658c0a6d65e7d1acd10ed5d4e960117
BLAKE2b-256 255b6bc58ec6a00f9556a89795ae71cc82d4072d924c9e1993725093f49d6361

See more details on using hashes here.

File details

Details for the file mkv_this-0.1.34-py3-none-any.whl.

File metadata

  • Download URL: mkv_this-0.1.34-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.3

File hashes

Hashes for mkv_this-0.1.34-py3-none-any.whl
Algorithm Hash digest
SHA256 c5647447b8135380e40e42ca26bf34c69867b8d87372c46d421f8146ca45ef1a
MD5 8af1bddbb461e53aa28f34b399a145de
BLAKE2b-256 df3f0cf8b1122f480e44a606c98d232d84ed894dc660540ac78d3dd3d99b7445

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page