# HG changeset patch # User k0s # Date 1266171901 18000 # Node ID 0c2b1fe8f53fc320c014b3f5fa881c27ff4019cc # Parent 28c7009bc463cf571d8da8873b6df08e5c4a79eb update documentation a little diff -r 28c7009bc463 -r 0c2b1fe8f53f README.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.txt Sun Feb 14 13:25:01 2010 -0500 @@ -0,0 +1,45 @@ +wordstream +========== + +wordstream is a simple corpus of text associations and tools to use them. Feeding the corpus text will grow a stack of left to right word associations on a per word basis. Words are defined (for now) as the bits that sit between whitespace. The corpus can then be eaten: given a word, pop the top of its stack. + +There are two interfaces to the corpus in the wordstream package: +wordstream and dissociate. Additional applications of wordstream can +also be imagined. + +The wordstream source is at http://k0s.org/hg/wordstream + + +wordstream interface +-------------------- + +An interactive interface for eating and feeding the corpus. Wordstream has a command line interface, ``wordstream``, and a web interface usable by running ``paster serve wordstream.ini`` . In both cases, the usage is the same. From an initial corpus, the user types lines of text. wordstream will eat the corpus and print a response to the text and feed the user's lines to the corpus + + +dissociate interface +-------------------- + +Named after emacs' ``M-x dissociated-press`` (try it!), dissociate will feed documents to a corpus, scramble the corpus (shuffle the stack order for each word), and output the corpus eating itself, selecting random words, eating their associations, and then eating the associations of the associations until the corpus is empty. Dissociate has a command line interface (install the software and run ``dissociate --help`` for usage), and a web interface usable via paster serve dissociate.ini. + +Applications +------------ + +While the wordstream corpus is a simple model, the basic idea can be +used to + + * Thesaurus: By feeding the corpus synonyms, wordstream could be used + as a thesaurus program. Synonymity could be indicated via either + word count or by position towards the top of the stack. The + thesaurus could be displayed as a web interface to allow automatic + suggestions while writing + + * Writing analysis: The amount of text on the web is vast. + Wordstream could be used to present what is being talked about most + within a number of websites and what is associated to it. + + * Collaborative fiction: Since wordstream can use a collective corpus + that is fed by interacting with it, several authors could + simultaneously iteract with the wordstream web interface each + feeding the collective corpus and literally eating each others' + words + diff -r 28c7009bc463 -r 0c2b1fe8f53f setup.py --- a/setup.py Fri Feb 12 12:39:14 2010 -0500 +++ b/setup.py Sun Feb 14 13:25:01 2010 -0500 @@ -1,15 +1,18 @@ +import os from setuptools import setup, find_packages -version = "0.1" +try: + filename = os.path.join(os.path.dirname(__file__), 'README.txt') + description = file(filename).read() +except: + description = "" + +version = "0.1.1" setup(name='wordstream', version=version, description="word streamer; conversational and dissociatively play with text with a command line and web interface", - long_description=""" -for a demo, see http://k0s.org/wordstream and http://k0s.org/dissociate - -Additional documentation forthcoming, until the, the docs == the source -""", + long_description=description, classifiers=[], # Get strings from http://www.python.org/pypi?%3Aaction=list_classifiers author='Jeff Hammel', author_email='k0scist@gmail.com', diff -r 28c7009bc463 -r 0c2b1fe8f53f wordstream/dissociate.py --- a/wordstream/dissociate.py Fri Feb 12 12:39:14 2010 -0500 +++ b/wordstream/dissociate.py Sun Feb 14 13:25:01 2010 -0500 @@ -21,11 +21,14 @@ def main(args=sys.argv[1:]): - parser = OptionParser() + parser = OptionParser('%prog <...>') options, args = parser.parse_args() corpus = Corpus() - corpus.feed_stuff(*args) + if args: + corpus.feed_stuff(*args) + else: + corpus.feed_stream(sys.stdin.read()) corpus.scramble() dissociate(corpus) diff -r 28c7009bc463 -r 0c2b1fe8f53f wordstream/main.py --- a/wordstream/main.py Fri Feb 12 12:39:14 2010 -0500 +++ b/wordstream/main.py Sun Feb 14 13:25:01 2010 -0500 @@ -9,11 +9,12 @@ from wordstream.api import Corpus def main(args=sys.argv[1:]): - parser = OptionParser() + parser = OptionParser('%prog [options] <...>') parser.add_option('--print-corpus', dest='print_corpus', default=False, - action='store_true') + action='store_true', + help="print the given corpus of associations") parser.add_option('-n', type='int', dest='n', default=1, - help='number of words to eat') + help='number of words to eat per munch') options, args = parser.parse_args() corpus = Corpus() @@ -21,6 +22,7 @@ corpus.feed_stuff(*args) if options.print_corpus: pprint(corpus) + sys.exit(0) n = 1