Exemplo n.º 1
0
    def __init__(self, fnames, state_size=3):
        """
        Recommended `state_size` in [2,5]
        """
        if isinstance(fnames, str):
            fnames = [fnames]

        terms = []
        for fname in fnames:
            terms += data.load_lexicon(fname)
        mem = defaultdict(lambda: defaultdict(int))

        for t in terms:
            # Beginning & end
            mem['^'][t[:state_size]] += 1
            mem[t[-state_size:]]['$'] += 1

            for i in range(len(t) - state_size):
                prev = t[i:i+state_size]
                next = t[i+1:i+1+state_size]
                mem[prev][next] += 1

        self.mem = mem
        self.state_size = state_size
Exemplo n.º 2
0
import random
from saltbeef.generate import data, markov

animals = data.load_lexicon('data/animals.txt')
adjs = data.load_lexicons('data/adjectives/*.txt')
advs = data.load_lexicons('data/adverbs/*.txt')
cnt_nouns = data.load_lexicons('data/countable_nouns/*.txt')
ucnt_nouns = data.load_lexicons('data/uncountable_nouns/*.txt')
verbs = data.load_lexicons('data/verbs/*.txt')
prefixes = data.load_lexicon('data/prefixes.txt')
nation_mkv = markov.Markov('data/countries.txt')
anim_mkv = markov.Markov(['data/pokemon/pokemons.txt',
                          'data/animals.txt',
                          'data/monsters.txt'], state_size=3)
item_mkv  = markov.Markov(['data/pokemon/items.txt',
                           'data/star_trek/techs.txt',
                           'data/w40k/upgrades.txt'], state_size=3)
abil_mkv = markov.Markov(['data/pokemon/moves.txt',
                          'data/heroes_powers.txt',
                          'data/pokemon/abilities.txt',
                          'data/dota_skills.txt',
                          'data/lol_skills.txt',
                          'data/w40k/abilities.txt'], state_size=3)


def name():
    vocabs = [
        random.choice([adjs, nationalities]),
        [anim_mkv.generate() for i in range(100)]
    ]
    names = [random.choice(vocab) for vocab in vocabs]