TextGenerator
TextGenerator copied to clipboard
generator eating random words
`<?php mb_internal_encoding("UTF-8");
if (! file_exists(DIR . '/../../vendor/autoload.php')) { echo "Please run 'composer install' on the root directory before running the sample script."; return; }
require DIR . '/../../vendor/autoload.php';
use Neveldo\TextGenerator\TextGenerator; $data = [
[
'sex' => 'f',
'sexg' => 'f',
'itemip' => 'люстрa',
'itemvp' => 'люстру',
'itemdp' => 'люстрe',
'itempp' => 'люстрe'
],
[
'sex' => 'f',
'sexg' => 'm',
'itemip' => 'шкаф',
'itemvp' => 'шкаф',
'itemdp' => 'шкафу',
'itempp' => 'шкафе'
],
[
'sex' => 'm',
'sexg' => 'f',
'itemip' => 'люстрa',
'itemvp' => 'люстру',
'itemdp' => 'люстрe',
'itempp' => 'люстрe'
],
[
'sex' => 'f',
'sexg' => 'f',
'itemip' => 'люстрa',
'itemvp' => 'люстру',
'itemdp' => 'люстрe',
'itempp' => 'люстрe'
],
[
'sex' => 'f',
'sexg' => 'f',
'itemip' => 'люстрa',
'itemvp' => 'люстру',
'itemdp' => 'люстрe',
'itempp' => 'люстрe'
],
[
'sex' => 'm',
'sexg' => 'f',
'itemip' => 'люстрa',
'itemvp' => 'люстру',
'itemdp' => 'люстрe',
'itempp' => 'люстрe'
],
[
'sex' => 'm',
'sexg' => 'f',
'itemip' => 'люстрa',
'itemvp' => 'люстру',
'itemdp' => 'люстрe',
'itempp' => 'люстрe'
],
[
'sex' => 'm',
'sexg' => 'f',
'itemip' => 'люстрa',
'itemvp' => 'люстру',
'itemdp' => 'люстрe',
'itempp' => 'люстрe'
],
[
'sex' => 'm',
'sexg' => 'f',
'itemip' => 'люстрa',
'itemvp' => 'люстру',
'itemdp' => 'люстрe',
'itempp' => 'люстрe'
],
[
'sex' => 'm',
'sexg' => 'f',
'itemip' => 'люстрa',
'itemvp' => 'люстру',
'itemdp' => 'люстрe',
'itempp' => 'люстрe'
]
]; $template = <<<EOF #set{@hellor|#random{Здраствуйте|Привет|Привет всем|Добрый день|Всем привет}};; #set{@hello|#prandom{10:|90:@hellor, }};;
#set{@aaa|#if{sex == 'f'|а|}};; #set{@iiuy|#if{sex == 'm'|ий|ую}};; #set{@aaiaiiy|#if{sex == 'm'|ый|ая}};; #set{@aassia|#if{sex == 'm'|ся|ась}};;
#set{@ag|#if{sexg == 'f'|а|}};; #set{@negog|#if{sexg == 'm'|него|нее}};; #set{@oiuyg|#if{sexg == 'm'|ой|ю}};; #set{@iiuyg|#if{sexg == 'm'|ий|ую}};; #set{@aaiaiiyg|#if{sexg == 'm'|ый|ая}};; #set{@aassiag|#if{sexg == 'm'|ся|ась}};;
#set{@etotg|#if{sexg == 'm'|этот|эта} @itemip};; #set{@etug|#if{sexg == 'm'|этот|эту} @itemvp};; #set{@egog|#if{sexg == 'm'|его|ее}};; #set{@takomg|#if{sexg == 'm'|таком|такой} @itempp};; #set{@takuyg|#if{sexg == 'm'|такого|такую} @itemvp};; #set{@takoyg|#if{sexg == 'm'|такой|такую} @itemvp};;
#set{@want|#random{|давно }#random{хотел@aaa именно @takoyg|искал@aaa именно @takoyg|мечтала о #random{@takomg}}};;
#set{@service|#random{купить|приобрел|заказал|взял}};;
#set{@buydo|#random{купить|приобрести|заказать|взять}};; #set{@buym|#random{купил|приобрел|заказал|взял}};; #set{@buyf|#random{купила|приобрла|заказала|взяла}};; #set{@buy|#if{sex == 'm'|@buym|@buyf}};; #set{@buyitem|@buy #random{@takoyg|@etug|@egog} #random{|здесь }#random{в этом магазине|на сайте|в интернет магазине}};;
#set{@emo|#random{класс|супер}};; #set{@super|#random{класс|супер}};; #set{@silno|#random{очень|сильно|}};; #set{@coolseemw|#random{престижно|стильно|кашерно|солидно}};; #set{@seemw|#random{выглядет|смотрится}};; #set{@seem|#random{улет|класс|супер|огонь|офигенно}};; #set{@see|@seemw #random{это|-|} просто @seem};;
#set{@imho|#random{@itemip #random{|мне}@silno понравил@aassiag|отличный сайт}};; #set{@shvy|#random{стыки|швы}};; #set{@seeshvy|#random{нет #random{никаких #random{лишних|} #random{щелей|зазоров},|} #random{все|} @shvy #random{идеальные|идеально ровные} #random{не к чему придраться|не придерешся|}}};; #set{@seeassembly|#random{идеальная|качественная|отличная} #random{сборано|сделанно|изготовленно} из #random{хороших|качественных|приятных} материалов};; #set{@seefeel|#random{#random{по ощюениям|на ощюп|} #random{приятная|качественная#random{, дорогая|}|дорогая#random{, качественная|} вещ}|#random{ощющается|чувствуется} что вещ}};;
#set{@subrealsee|#random{@seeshvy|@seeassembly|@seefeel}};;
#set{@realsee|#random{в реальности|в жизни|на деле|} @seemw #random{приятнее|лутше|красивее} чем на #random{фото|картинке|сайте} @subrealsee};;
#set{@isee|@coolseemw @seemw, @realsee};; #set{@goodnow|};;
#set{@select|#random{|так вот }#random{здесь|тут} #random{#random{выбор|линейка|линейка товаров} #random{гораздо |}#random{лутше|шире|красивее|на любой вкус}|#random{большой|широкий} выбор}};;
#set{@notfind|#random{#random{|только }#random{|зря} #random{потратил@aaa|убил@aaa} #random{столько времени|время}|ничего #random{ подходящего| приличного |хороего |}не #if{sex == 'm'|нашел|нашла}}};; #set{@walkstory|#random{#random{исколесил@aaa|#if{sex == 'm'|обошел|обошла}|изъездил@aaa} #random{кучу|много} магазинов|#random{#if{sex == 'm'|прошел|прошла}|#if{sex == 'm'|обошел|обошла}|#if{sex == 'm'|зашел|зашла} во} все #random{#random{доступные|известные} #random{мне |}магазины}|#random{прошел@aassia|прогулял@aassia} по всем #random{#random{доступным|известным} #random{мне |}магазинам}}};;
#set{@cat|#random{разделено на категории|разложенно по категорииям|поделено на категории|разбито на категории}};;
#set{@findstory|#random{все #random{очень|довольно} #random{красиво|доступно|просто|понятно} #random{#random{удобно|хорошо}|} представленно|#random{находиться|расположенно} #random{в одном месте|на одном сайте} @cat, очень удобно.| #random{наконец#random{ таки|-то} выбрала|#if{sex == 'm'|нашел|нашла}} #random{сво@oiuyg|} #random{любим@iiuyg|} @itemvp}};;
#set{@bigstory|#random{вообще #random{тут|здесь}} #random{огромный|широкий|большой} #random{выбор|ассортимент}, #random{|@walkstory @notfind, }#random{#if{sex == 'm'|зашел|зашла}|#if{sex == 'm'|перешел|перешла}} на сайит @findstory. #random{очень рад@aaa|#random{|до сих пор }радуюсь} что #random{#if{sex == 'm'|нашел|нашла} сайт|#if{sex == 'm'|зашел|зашла} сюда|#if{sex == 'm'|зашел|зашла} на сайт}#random{, pекомендую|}};;
#set{@clickstory|#random{#random{нажал@aaa|кликнул@aaa} #random{кноку купить|кноку заказать|кноку оформить заказ|на кнопку оформления заказа}|#random{1 нажатие|одно нажатие|1 клик|один клик}} #random{ввел@aaa|забил@aaa} #random{свои|} #random{данные|контаты}, #random{мне позвонил менеджер|со мной связались|мне #random{|быстро} перезвонили}, #random{|все |заказ }#random{доставили|привезли} #random{в тот же день|на следующий день}};; #set{@longfindstory|#random{очень} долго #random{искал@aaa|искали} #random{подходящ@iiuyg|хорош@iiuyg} @itemvp #random{под дизайн|под интерьер}#random{,|#random{, то по #random{цвету|материалам} не подходил@aaa, то по #random{стилю|дизайну}, то по #random{размерам|габаритам}, a|}} @etotg просто #random{великолепн@ag|замечателн@aaiaiiyg}, влюбил@aassia в @negog сразу };; #set{@repairstory|#random{мы|} #random{делали|сделали|делаем} ремонт, @longfindstory};;
#set{@thankyou|};;
#set{@story|#random{@clickstory|@repairstory|@walkstory @notfind|@bigstory}};; @hello#random{@want|@buyitem}, #random{@story|@imho} @thankyou
EOF;
$textGenerator = new TextGenerator(); $textGenerator->compile($template);
foreach ($data as $row) { echo $textGenerator->generate($row) . "\n\n"; }`
INPUT: #set{@clickstory|#random{#random{нажал@aaa|кликнул@aaa} #random{кноку купить|кноку заказать|кноку оформить заказ|на кнопку оформления заказа}|#random{1 нажатие|одно нажатие|1 клик|один клик}} #random{ввел@aaa|забил@aaa} #random{свои|} #random{данные|контаты}, #random{мне позвонил менеджер|со мной связались|мне #random{|быстро} перезвонили}, #random{|все |заказ }#random{доставили|привезли} #random{в тот же день|на следующий день}};;` OUTPUT: Привет всем, давно мечтала о такой люстрe, 1 нажатие данные, мне быстро перезвонили, все привезли в тот же день EATING: #random{ввел@aaa|забил@aaa}
INPUT: #set{@want|#random{|давно }#random{хотел@aaa именно @takoyg|искал@aaa именно @takoyg|мечтал@aaa о #random{@takomg}}};; OUTPUT: давно
PS
PHP 7.1.10 (cli) (built: Sep 27 2017 09:03:44) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.1.10, Copyright (c) 1999-2017, by Zend Technologies
Hello @mgkirs ,
Thanks for having reported an issue ! However, it's a little but confuse to me as your code snippet is huge (and I think the russian characters which I'm not familar with didn't help :) ).
Could you provide a snippet as small as possible that whould highlight the issue you encountered ? It would help me a lot in order to try to fix the library and provide a new version !
INPUT: $data = [ 'sex' => 'f'', 'sexg' => 'а', 'itempp' => 'люстрe', 'itemvp' => 'люстру' ];
<<<EOL #set{@aaa|#if{sex == 'f'|а|}};;
#set{@takomg|#if{sexg == 'm'|таком|такой} @itempp};; #set{@takuyg|#if{sexg == 'm'|такого|такую} @itemvp};; #set{@want|#random{|давно }#random{хотел@aaa именно @takoyg|искал@aaa именно @takoyg|мечтал@aaa о #random{@takomg}}};; EOL;
WHITH MY BIG TPL OUTPUT: давно VALID OUTPUT: давно мечтала именно о такой люстре
Hello,
I'm sorry but I still can't understand well your issue with your last example as itcontains several errors (double single quotes at the line 3 : 'sex' => 'f''
). Moreover, it does output nothing as it only contains set
instructions.
Thats is a fragment of problem generation. Please try run this: INPUT: $data = [[ 'sex' => 'f', 'sexg' => 'а', 'itempp' => 'люстрe', 'itemvp' => 'люстру' ]];
$t = <<<EOL #set{@aaa|#if{sex == 'f'|а|}};;
#set{@takomg|#if{sexg == 'm'|таком|такой} @itempp};; #set{@takuyg|#if{sexg == 'm'|такого|такую} @itemvp};; #set{@want|#random{|давно }#random{хотел@aaa именно @takoyg|искал@aaa именно @takoyg|мечтал@aaa о #random{@takomg}}};; @want EOL;
$textGenerator = new TextGenerator(); $textGenerator->compile($t);
foreach ($data as $row) { echo $textGenerator->generate($row) . "\n\n"; }`
MY OUTPUT: давно VALID OUTPUT: давно мечтала именно о такой люстре