Skip to content
Snippets Groups Projects
Commit 11a02332 authored by ale's avatar ale
Browse files

a few fixes

parent e8f11785
Branches
No related tags found
No related merge requests found
...@@ -14,18 +14,20 @@ log = logging.getLogger(__name__) ...@@ -14,18 +14,20 @@ log = logging.getLogger(__name__)
class MarkovModel(object): class MarkovModel(object):
def __init__(self): def __init__(self):
self._hash2i = {} self._hash2i = {'nil': 0}
self._i2hash = [] self._i2hash = ['nil']
self._map = {} self._map = {}
self._rnd = random.Random() self._rnd = random.Random()
def _to_i(self, sha1): def _to_i(self, sha1):
if sha1 is None:
sha1 = 'nil'
if sha1 not in self._hash2i: if sha1 not in self._hash2i:
n = len(self._i2hash) n = len(self._i2hash)
self._i2hash.append(sha1) self._i2hash.append(sha1)
self._hash2i[sha1] = n self._hash2i[sha1] = n
else: else:
n = self._i2hash[sha1] n = self._hash2i[sha1]
return n return n
def save(self, filename): def save(self, filename):
...@@ -73,6 +75,7 @@ class MarkovModel(object): ...@@ -73,6 +75,7 @@ class MarkovModel(object):
def main(): def main():
parser = optparse.OptionParser() parser = optparse.OptionParser()
parser.add_option('--db_url') parser.add_option('--db_url')
parser.add_option('--output', default='markov.dat')
utils.read_config_defaults( utils.read_config_defaults(
parser, os.getenv('DJRANDOM_CONF', '/etc/djrandom.conf')) parser, os.getenv('DJRANDOM_CONF', '/etc/djrandom.conf'))
opts, args = parser.parse_args() opts, args = parser.parse_args()
...@@ -86,7 +89,10 @@ def main(): ...@@ -86,7 +89,10 @@ def main():
markov_model = MarkovModel() markov_model = MarkovModel()
markov_model.create(PlayLog.generate_tuples()) markov_model.create(PlayLog.generate_tuples())
markov_model.normalize() markov_model.normalize()
markov_model.save('markov.dat') markov_model.save(opts.output)
from pprint import pprint
pprint(markov_model._map)
if __name__ == '__main__': if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment