def generate_all(strings, max_length=75, descr_depth=2): """ :param strings: (all_titles, all_authors, all_descr) :return: (new_title, new_author, new_descr) Generate the random title/author/description using the Markov chains """ m1 = Markov(prob=True, level=1) m2 = Markov(prob=True, level=1) m3 = Markov(prob=True, level=descr_depth) m1.parse(strings[0]) m2.parse(strings[1]) m3.parse(strings[2]) t_string = kill_chars(generate_title(m1)) a_string = kill_chars(generate_author(m2)) d_string = kill_chars(generate_description(m3, max_length)) #t_string = generate_title(m1) #a_string = generate_author(m2) #d_string = generate_description(m3) t_list = t_string.split() while t_list[-1] in stop_words: t_list = t_list[0:-1] t_string = " ".join(t_list) return (t_string, a_string, d_string)
def handle(self, *args, **options): """Create fake users and statuses for Mowdie.""" from faker import Faker import random from django.conf import settings from PyMarkovTextGenerator import Markov fake = Faker() textgen = Markov(prob=True, level=3) with open(settings.BASE_DIR + "/../john_carter.txt") as file: textgen.parse(file.read()) def update_text(): return textgen.generate( startf=lambda db: random.choice([x for x in db if x[0][0].isupper()]), endf=lambda s: len(s) > 120) Favorite.objects.all().delete() Update.objects.all().delete() User.objects.all().delete() users = [] for _ in range(20): user = User(username=fake.user_name(), email=fake.email()) user.set_password("password") user.save() Profile(user=user).save() users.append(user) user = User(username="******", email="*****@*****.**", is_staff=True, is_superuser=True) user.set_password("password") user.save() Profile(user=user).save() updates = [] for _ in range(100): update = Update(text=update_text(), posted_at=make_aware(fake.date_time_this_year()), user=random.choice(users)) update.save() updates.append(update) combos = random.sample([(user, update) for user in users for update in updates], 200) for user, update in combos: favorite = Favorite(user=user, update=update) favorite.save()
def __init__(self, text_file): self.markov_dictionary = Markov() with open(text_file) as file: self.markov_dictionary.parse(file.read())