Code Monkey home page Code Monkey logo

writer-monkey's Introduction

Writer Monkey

Writer Monkey is an experiment at attempting to generate text automatically using Markov chains (resulting in what is basically a [Markov text generator] 1. It's designed for purely didactic purposes, so the goal is to have a clean, understandable code base rather than computational efficiency.

The final result will prove to be nothing more than a clone of [dadadodo] 2 with a few features for normalization of particular data such as texts written in Romanian. The coding process as well as the results will be documented on the [spyked bricks in the wall] 3 (most probably only in Romanian) and the blog itself will be used as a basis for text generation.

writer-monkey's People

Contributors

spyked avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

mdebar

writer-monkey's Issues

Restructure project tree

There should be a clear separation between code and other stuff. The most obvious thing to do is move all code to a src/ directory.

Add support for Cabal packaging

Some people might feel more motivated to build the project using Cabal rather than the crude Makefile. This would make it more of a standard Haskell package.

How do other Haskell projects achieve this? Should the library (or libraries) be packaged, or should there be a single package for the whole program?

Analyze and generate sentences

The current way of doing analysis doesn't take into account the fact that natural language texts are composed of sentences. This is obviously not acceptable. The user should be able to generate individual sentences, and this should be reflected in the way analysis is done.

This issue is closely related to #3, as sentence analysis can't be done if chains are not built iteratively.

Can we combine Markov chains with other text generation methods?

Can other methods be used in conjuction with Markov chains to generate text that has a closer resemblance to text generated by humans? Issue #5 addresses this by analyzing sentences instead of arbitrary chunks of texts.

Could Markov text generation be done based on parsing trees or some other NLP technique? How do we measure relative performance of one method versus another?

Factor Markov Chain into separate library

Create a libmonkey (or something similar) as a generic API for building Markov generators. This has the major advantage of making Writer Monkey useful for other applications than Markov text generation (e.g. for music, graphics, various forms of text etc.)

Build Markov chains iteratively

Right now, Monkey.Analysis builds Markov chains from a large chunk of text in one big pass. This works, but it isn't very flexible. The programmer should be able to enhance or strip the model however he/she pleases. This requires support for building of Markov chains "on the fly", as new text is added.

Ideally, this would be implemented as a monoid over Markov chains (if such a thing exists).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.