Skip to main content

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

Project description

disclaimer

mkv-this makes some of the features of the excellent markovify module available as a command line tool. i started on it because i wanted to process my own offline files the same way fedibooks processes mastodon toots. then i published it to share with friends. i'm a 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 end users 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, a URL or a directory, and saves the results to another text file. if you run it again with the same output file, new results are appended after old ones.

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 webz.

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; NB: if your input does not use initial capitals, each 'sentence' will be more like a paragraph).
  • 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. handy for inputting poetry.
  • an additional file or URL to use for text input. 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/URL if used.

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

directories

mkv-this accepts a directory as input. it will read all text files in it and use them as a single input.

if for some reason you want to concatenate your files yourself, you can easily do so 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 the file: mkv-this outputfile.txt

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.

if you don't have text files, but odt files, use a tool like odt2txt or unoconv to convert them to text en masse. both are available in the repos.

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, timestamps, HTML, links, metadata, stars, bullets, lines, tables, etc.), unless you want mashed versions of those things in your output. (no need to clean up the webpages you input 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.

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

  • hook it up to a web-scraper.
  • hook it up to pdfs.
  • option to also append input model to a saved JSON file. (i.e. text_model.to_json(), markovify.Text.from_json()). that way you could build up a bank over time.
  • 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.2.1.tar.gz (12.7 kB view details)

Uploaded Source

Built Distributions

mkv_this-0.2.1-py3.7.egg (15.3 kB view details)

Uploaded Source

mkv_this-0.2.1-py3-none-any.whl (34.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mkv-this-0.2.1.tar.gz
  • Upload date:
  • Size: 12.7 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.2.1.tar.gz
Algorithm Hash digest
SHA256 ed5088945ef3e92e254537a2bcbbe0cb65770fabdf9c4bb4bbce7cc73a871475
MD5 cb904257927d8f3d7c3b02111c4c8aa2
BLAKE2b-256 a829c85774ab79bc733ea0b480ebf3c20c16b75519c30e9829af96a9fc0b8769

See more details on using hashes here.

File details

Details for the file mkv_this-0.2.1-py3.7.egg.

File metadata

  • Download URL: mkv_this-0.2.1-py3.7.egg
  • Upload date:
  • Size: 15.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.2.1-py3.7.egg
Algorithm Hash digest
SHA256 d944161fb48ee2728f18121d488e959ac2f6cc89af8ebff3b76d86ae2d41bb69
MD5 71a2f701927735e219bd599871b71cc8
BLAKE2b-256 996899dbe0fa70fac21841b4adad423eaa0fda8a1d2d8a2598b6236d758bec74

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mkv_this-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 34.3 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fa6c73405b1f95a3437badcd05b9082999942f2f629b9b3a01175dcb7ab6d450
MD5 53f4efa8fa3d1837de4db56a73b5d6d0
BLAKE2b-256 5d645fedd8fec2d784a752c9ba9f9638a15975cc1e0fc47a6507b1939ff22528

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