npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ivoire-markov

v1.0.0

Published

Markov chains for the Ivoire random number generator framework.

Downloads

6

Readme

ivoire-markov

Markov chains for the Ivoire random number generator framework.

Installing

To install, use npm:

npm install ivoire-markov

Alternately, you can find the source on Github.

Getting Started

ivoire-markov extends the ivoire package. You can require it directly:

var Ivoire = require('ivoire-markov');

Or you can require it alongside ivoire:

var Ivoire = require('ivoire');
require('ivoire-markov');

Either way, instantiate and start making chains!

var i = new Ivoire();
// Markov chains must be trained on example data.
var chain = Ivoire.train_markov_chain(['foo', 'bar', 'baz', 'boo', 'blah', 'banana']);

// We use the trained chain to create a generator from an Ivoire instance:
var generator = i.get_markov_generator(trained);

// The generator synthesizes new output from the trained chain, using our
// instance's pseudo-random sequence.
console.log(generator.generate())

Reference

ivoire-markov adds some methods to the Ivoire prototype object, making them available on all Ivoire instances. It also adds methods to the Ivoire "class" object itself, available through the Ivoire namespace.

.train_markov_chain()

Syntax

Ivoire.train_markov_chain(corpus[, lookback])

Usage

Train a markov chain on a corpus of text, that is, an array of strings, providing an optional lookback distance for the chain.

var Ivoire = require('ivoire-markov');

var trained = Ivoire.train_markov_chain(['foo', 'foobar', 'bar', 'baz', 'boo', 'blah', 'boom'], 1);

The lookback controls how much context should be considered when generating text from a chain. lookback defaults to 1 if not provided.

#get_markov_generator()

Syntax

ivoire.get_markov_generator(trained)

Usage

Obtain a markov text generator from an Ivoire instance, based on the provided training data (as returned by .train_markov_chain()).

var Ivoire = require('ivoire-markov');
var trained = Ivoire.train_markov_chain(['foo', 'foobar', 'bar', 'baz', 'boo', 'blah', 'boom'], 1);
var ivoire = new Ivoire();

var generator = ivoire.get_markov_generator(trained);

generator.generate()

Usage

Using the generator object obtained from ivoire.get_markov_generator(), the #generate() method will return randomized strings that look similar to the training corpus.

var Ivoire = require('ivoire-markov');
var trained = Ivoire.train_markov_chain(['foo', 'foobar', 'bar', 'baz', 'boo', 'blah', 'boom'], 1);
var ivoire = new Ivoire();
var generator = ivoire.get_markov_generator(trained);

console.log(generator.generate());

Acknowledgements

Markov chain algorithm based on the implementation in Darmok, and modified to interoperate with the Ivoire framework.