Найти - Пользователи
Полная версия: Алгоритм размножения текста
Начало » Python для новичков » Алгоритм размножения текста
1
ajib6ept
# -*- coding: UTF-8 -*-
import re
import random
txt = '{Копирайтер|Автор} {сделал|выполнил|закончил} {трудную|сложную|нелёгкую} работу.'
for t in re.findall('{(.*?)}', txt):
    words = t.split('|')
    txt = txt.replace(t, random.choice(words))
    txt = txt.replace('{', '')
    txt = txt.replace('}', '')
print txt.decode('utf-8')

Вопрос по алгоритму генерации статей, если список не вложенный, то все легко получается.

Не могу придумать алгоритм для следующего (вложенного случая)

{Вы {получаете|можете получить}|Можно получить} {{большое|огромное} количество|множество|много} {бонусов|плюсов}: {экономия времени, денег, нервов|экономите время, деньги, нервы}'

т.е. задача каждый раз получать новый текст.
doza_and
см itertools.product https://docs.python.org/2/library/itertools.html
Для древовидных входных данных по моему мнению лучше древовидное а не строковое представление данных.
Вы это имеете ввиду?
Seq(["Вы",Or(["получаете","можете получить"]),Seq(Or(["большое","огромное"]),Or(["количество","множество","много"]))])...
Для генерации будет естественно применить рекурсию.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB