A Python project inspired by the research of Chloé Kiddon and Yuriy Brun. Paper available here.
Thanks to Henry Garner for original coding initiative, to Marcin Tolysz for awesome super-fast server modifications, and to Andrew Ng for the ML course
Part of the Funniest Computer Ever Open Source Initiative
This code supported Zarquon Squelchmama III in the chatbotbattles contest. We didn't come anywhere near close to winning (our coding was all a bit last minute) but we did get one TWSS in there:
Judge: Hello Zarquon
Zarquon: Greetings.
Judge: How are you?
Zarquon: How do you suppose?
Judge: I suppose you are good but I don't know
Zarquon: That's what she said!
Judge: Hehe. Very funny
Note we now have some other chatbot related initiatives in the faq and worldmodel directories. Ultimately hoping these will all be integrated into a single coherent whole :-)
-
libsvm with python bindings required: http://www.csie.ntu.edu.tw/~cjlin/libsvm
-
Apply patch to allow svm_predict to produce quiet output
cp svmutil.patch LIBSVM_HOME/python & cd LIBSVM_HOME/python & patch < svmutil.patch
[N.B. here's how I add libsvm to my PYTHONPATH: export PYTHONPATH="/Users/samueljoseph/Code/libsvm-3.12/python/:$PYTHONPATH"]
-
Download TWSS source data into data directory in current project
-
You can run some limited unit tests like so
python testTokeniseContents.py
-
Run
python preprocessData.py
to tokenise the files and create a shared vocabulary which is saved in data/vocab.txt. The resulting vector contains about 20k words.preprocessData
will also split sentences and save the results in pickle files. -
Run
python generateTrainTestData.py
to create a training data set saved in data/train.pk and data/test.pk which are in the form of a array of dictionaries X -
Run
python train.py
from the command line THIS MAY TAKE A FEW MINUTES -
Run
python twss.py "<insert your sentence>"
to have a little chat with the resulting system
Code is MIT Licence. Data is released under its own licence.