Bag Of Words Library README
***************************

     [file version.texi not included]

libbow, version BOWVERSION.

     [file libbow-desc.texi not included]

Rainbow
=======

Rainbow is a standalone program that does document classification.  Here are some examples:

  * rainbow -i ./training/positive ./training/negative

     Using the text files found under the directories ./positive and ./negative, tokenize, build word vectors, and write the resulting data structures to disk.

  * rainbow --query=./testing/254

     Tokenize the text document ./testing/254, and classify it, producing output like:

          /home/mccallum/training/positive 0.72
          /home/mccallum/training/negative 0.28

  * rainbow --test-set=0.5 -t 5

     Perform 5 trials, each consisting of a new random test/train split and outputs of the classification of the test documents.

Typing rainbow --help will give list of all rainbow options.

After you have compiled libbow and rainbow, you can run the shell script ./demo/script to see an annotated demonstration of the classifier in action.

More information and documentation is available at http://www.cs.cmu.edu/~mccallum/bow

     Rainbow improvements coming eventually:
        Better documentation.
        Incremental model training.

Arrow
=====

Arrow is a standalone program that does document retrieval by TFIDF.

Index all the documents in directory foo by typing

     arrow --index foo

Make a single query by typing

     arrow --query

then typing your query, and pressing Control-D.

If you want to make many queries, it will be more efficient to run arrow as a server, and query it multiple times without restarts by communicating through a socket.  Type, for example,

     arrow --query-server=9876

And access it through port number 9876.  For example:

     telnet localhost 9876

In this mode there is no need to press Control-D to end a query.  Simply type your query on one line, and press return.

Crossbow
========

Crossbow is a standalone program that does document clustering. Sorry, there is no documentation yet.

Archer
======

Archer is a standalone program that does document retrieval with AltaVista-type queries.  Sorry, there is no documentation yet, however, the basic interface is much like arrow.