All pastes #2056997 Raw Edit

Mine

public text v1 · immutable
#2056997 ·published 2011-05-11 20:06 UTC
rendered paste body
#bot.py



import cPickle
from random import randint as rint

print 'Init.'

with open('db','r') as f:
    db = cPickle.load(f)

print 'Init\'ed db.'

if __name__ == "__main__":
    word = 'lolol'
    length = 10

    i = 0
    sentence = word + ' '
    lastword = word
    while i != length:
        print 'word: ' +str(word)
        row = db[word]
        max = row['blahblahmax']
        while word == lastword:
            for w in row:
                if w != 'blahblahmax' and w!= '' and w!=word:
                    if ((row[w] == max and rint(0,50) <40) or rint(0,40) < 1):
                        word = w
        sentence += word + ' '
        lastword = word
        i += 1
    print sentence



#createdb.py



import cPickle

with open('#xkcd.log','r') as f:
    db = { }
    curLine = 0
    for line in f:
        curLine += 1
        if curLine%100 == 0:
            print '100 lines done. Now at '+ str(curLine)
        if curLine == 1000000:
            break;
        if not line.count('<reply>') and not line.count('<action>') \
         and not line.count('bucket') and not line.count('-!-') and \
            line.count('>'):
                msg = line.split('>',1)[1]
                if msg.count(':')>0:
                    msg = msg.split(':',1)[1]
                msg = msg.lower()
                for i in '":!.,?\'\\/=+-)(*&^%$#@`~|][{}<>;\r\n':
                    msg = msg.replace(i,' ')
                while msg.count('  ')>0:
                    msg = msg.replace('  ',' ')
                words = msg.split(' ')
                for i in range(0,len(words)-1):
                    word = words[i]
                    prevword = words[i+1]
                    if word not in db:
                        db[word] = { 'blahblahmax' : 0}
                    if prevword not in db[word]:
                        db[word][prevword] = 0
                    db[word][prevword] += 1
                    if db[word][prevword]>db[word]['blahblahmax']:
                        db[word]['blahblahmax'] = db[word][prevword]

with open('db','w') as f:
    cPickle.dump(db,f)