TextGenerator icon indicating copy to clipboard operation
TextGenerator copied to clipboard

generator eating random words

Open mgkirs opened this issue 7 years ago • 4 comments

`<?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

mgkirs avatar Oct 31 '17 09:10 mgkirs

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 !

neveldo avatar Nov 03 '17 09:11 neveldo

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: давно мечтала именно о такой люстре

mgkirs avatar Nov 08 '17 17:11 mgkirs

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.

neveldo avatar Nov 11 '17 21:11 neveldo

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: давно мечтала именно о такой люстре

mgkirs avatar Nov 17 '17 19:11 mgkirs