Exemple #1
0
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)
Exemple #2
0
    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())