Markov: size -> max_size, since I'm going to try adding a min_size soon
This commit is contained in:
parent
176ca25c68
commit
ac0429569e
@ -166,18 +166,18 @@ class Markov(Module):
|
|||||||
# cap the end of the chain
|
# cap the end of the chain
|
||||||
self.brain.setdefault((w1, w2), []).append(self.stop)
|
self.brain.setdefault((w1, w2), []).append(self.stop)
|
||||||
|
|
||||||
def _reply(self, size=100):
|
def _reply(self, max_size=100):
|
||||||
"""Generate a totally random string from the chains, of specified limit of words."""
|
"""Generate a totally random string from the chains, of specified limit of words."""
|
||||||
|
|
||||||
# if the limit is too low, there's nothing to do
|
# if the limit is too low, there's nothing to do
|
||||||
if (size <= 3):
|
if (max_size <= 3):
|
||||||
raise Exception("size is too small: %d" % size)
|
raise Exception("max_size is too small: %d" % max_size)
|
||||||
|
|
||||||
# start with an empty chain, and work from there
|
# start with an empty chain, and work from there
|
||||||
gen_words = [self.start1, self.start2]
|
gen_words = [self.start1, self.start2]
|
||||||
|
|
||||||
# walk a chain, randomly, building the list of words
|
# walk a chain, randomly, building the list of words
|
||||||
while len(gen_words) < size + 2 and gen_words[-1] != self.stop:
|
while len(gen_words) < max_size + 2 and gen_words[-1] != self.stop:
|
||||||
gen_words.append(random.choice(self.brain[(gen_words[-2], gen_words[-1])]))
|
gen_words.append(random.choice(self.brain[(gen_words[-2], gen_words[-1])]))
|
||||||
|
|
||||||
# chop off the seed data at the start
|
# chop off the seed data at the start
|
||||||
@ -189,12 +189,12 @@ class Markov(Module):
|
|||||||
|
|
||||||
return ' '.join(gen_words)
|
return ' '.join(gen_words)
|
||||||
|
|
||||||
def _reply_to_line(self, line, size=100):
|
def _reply_to_line(self, line, max_size=100):
|
||||||
"""Reply to a line, using some text in the line as a point in the chain."""
|
"""Reply to a line, using some text in the line as a point in the chain."""
|
||||||
|
|
||||||
# if the limit is too low, there's nothing to do
|
# if the limit is too low, there's nothing to do
|
||||||
if (size <= 3):
|
if (max_size <= 3):
|
||||||
raise Exception("size is too small: %d" % size)
|
raise Exception("max_size is too small: %d" % max_size)
|
||||||
|
|
||||||
# get a random word from the input
|
# get a random word from the input
|
||||||
words = line.split()
|
words = line.split()
|
||||||
@ -204,7 +204,7 @@ class Markov(Module):
|
|||||||
gen_words = [self.start1, self.start2]
|
gen_words = [self.start1, self.start2]
|
||||||
|
|
||||||
# walk a chain, randomly, building the list of words
|
# walk a chain, randomly, building the list of words
|
||||||
while len(gen_words) < size + 2 and gen_words[-1] != self.stop:
|
while len(gen_words) < max_size + 2 and gen_words[-1] != self.stop:
|
||||||
# use the chain that includes the target word, if it is found
|
# use the chain that includes the target word, if it is found
|
||||||
if target_word in self.brain[(gen_words[-2], gen_words[-1])]:
|
if target_word in self.brain[(gen_words[-2], gen_words[-1])]:
|
||||||
gen_words.append(target_word)
|
gen_words.append(target_word)
|
||||||
|
Loading…
Reference in New Issue
Block a user