123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250 |
- {
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "ABgLYF9R8viP"
- },
- "source": [
- "# Setup Env"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "I3VDTSYocPBc",
- "outputId": "3754bb06-930b-464a-fb3a-255166482bde"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Collecting hazm\n",
- " Downloading hazm-0.10.0-py3-none-any.whl.metadata (11 kB)\n",
- "Collecting fasttext-wheel<0.10.0,>=0.9.2 (from hazm)\n",
- " Downloading fasttext_wheel-0.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (16 kB)\n",
- "Collecting flashtext<3.0,>=2.7 (from hazm)\n",
- " Downloading flashtext-2.7.tar.gz (14 kB)\n",
- " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
- "Requirement already satisfied: gensim<5.0.0,>=4.3.1 in /usr/local/lib/python3.10/dist-packages (from hazm) (4.3.3)\n",
- "Requirement already satisfied: nltk<4.0.0,>=3.8.1 in /usr/local/lib/python3.10/dist-packages (from hazm) (3.9.1)\n",
- "Collecting numpy==1.24.3 (from hazm)\n",
- " Downloading numpy-1.24.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.6 kB)\n",
- "Collecting python-crfsuite<0.10.0,>=0.9.9 (from hazm)\n",
- " Downloading python_crfsuite-0.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.3 kB)\n",
- "Requirement already satisfied: scikit-learn<2.0.0,>=1.2.2 in /usr/local/lib/python3.10/dist-packages (from hazm) (1.6.0)\n",
- "Collecting pybind11>=2.2 (from fasttext-wheel<0.10.0,>=0.9.2->hazm)\n",
- " Downloading pybind11-2.13.6-py3-none-any.whl.metadata (9.5 kB)\n",
- "Requirement already satisfied: setuptools>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from fasttext-wheel<0.10.0,>=0.9.2->hazm) (75.1.0)\n",
- "Requirement already satisfied: scipy<1.14.0,>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from gensim<5.0.0,>=4.3.1->hazm) (1.13.1)\n",
- "Requirement already satisfied: smart-open>=1.8.1 in /usr/local/lib/python3.10/dist-packages (from gensim<5.0.0,>=4.3.1->hazm) (7.1.0)\n",
- "Requirement already satisfied: click in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->hazm) (8.1.7)\n",
- "Requirement already satisfied: joblib in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->hazm) (1.4.2)\n",
- "Requirement already satisfied: regex>=2021.8.3 in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->hazm) (2024.11.6)\n",
- "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from nltk<4.0.0,>=3.8.1->hazm) (4.67.1)\n",
- "Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn<2.0.0,>=1.2.2->hazm) (3.5.0)\n",
- "Requirement already satisfied: wrapt in /usr/local/lib/python3.10/dist-packages (from smart-open>=1.8.1->gensim<5.0.0,>=4.3.1->hazm) (1.17.0)\n",
- "Downloading hazm-0.10.0-py3-none-any.whl (892 kB)\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m892.6/892.6 kB\u001b[0m \u001b[31m14.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25hDownloading numpy-1.24.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m17.3/17.3 MB\u001b[0m \u001b[31m56.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25hDownloading fasttext_wheel-0.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB)\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.4/4.4 MB\u001b[0m \u001b[31m58.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25hDownloading python_crfsuite-0.9.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB)\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.2/1.2 MB\u001b[0m \u001b[31m41.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25hDownloading pybind11-2.13.6-py3-none-any.whl (243 kB)\n",
- "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m243.3/243.3 kB\u001b[0m \u001b[31m17.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
- "\u001b[?25hBuilding wheels for collected packages: flashtext\n",
- " Building wheel for flashtext (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
- " Created wheel for flashtext: filename=flashtext-2.7-py2.py3-none-any.whl size=9298 sha256=07b9871db4252e34efafbcb1ba9b3165e7f646639182f409c6aaf746c32c3999\n",
- " Stored in directory: /root/.cache/pip/wheels/bc/be/39/c37ad168eb2ff644c9685f52554440372129450f0b8ed203dd\n",
- "Successfully built flashtext\n",
- "Installing collected packages: flashtext, python-crfsuite, pybind11, numpy, fasttext-wheel, hazm\n",
- " Attempting uninstall: numpy\n",
- " Found existing installation: numpy 1.26.4\n",
- " Uninstalling numpy-1.26.4:\n",
- " Successfully uninstalled numpy-1.26.4\n",
- "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
- "albucore 0.0.19 requires numpy>=1.24.4, but you have numpy 1.24.3 which is incompatible.\n",
- "albumentations 1.4.20 requires numpy>=1.24.4, but you have numpy 1.24.3 which is incompatible.\n",
- "pymc 5.19.1 requires numpy>=1.25.0, but you have numpy 1.24.3 which is incompatible.\u001b[0m\u001b[31m\n",
- "\u001b[0mSuccessfully installed fasttext-wheel-0.9.2 flashtext-2.7 hazm-0.10.0 numpy-1.24.3 pybind11-2.13.6 python-crfsuite-0.9.11\n"
- ]
- },
- {
- "output_type": "display_data",
- "data": {
- "application/vnd.colab-display-data+json": {
- "pip_warning": {
- "packages": [
- "numpy"
- ]
- },
- "id": "11c80c8f9b2f4f12a2c5c8d3c2a3faaa"
- }
- },
- "metadata": {}
- }
- ],
- "source": [
- "! pip install hazm # Requires restart."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "kKbfh7EIMXs1",
- "outputId": "13669cdf-7fb8-4ac9-c374-e7c2046be4a0"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Requirement already satisfied: spacy-transformers in /usr/local/lib/python3.10/dist-packages (1.3.5)\n",
- "Requirement already satisfied: spacy<4.1.0,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (3.7.5)\n",
- "Requirement already satisfied: transformers<4.37.0,>=3.4.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (4.36.2)\n",
- "Requirement already satisfied: torch>=1.8.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (2.5.1+cu121)\n",
- "Requirement already satisfied: srsly<3.0.0,>=2.4.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (2.5.0)\n",
- "Requirement already satisfied: spacy-alignments<1.0.0,>=0.7.2 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (0.9.1)\n",
- "Requirement already satisfied: numpy>=1.19.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (1.24.3)\n",
- "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (3.0.12)\n",
- "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (1.0.5)\n",
- "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (1.0.11)\n",
- "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (2.0.10)\n",
- "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (3.0.9)\n",
- "Requirement already satisfied: thinc<8.3.0,>=8.2.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (8.2.5)\n",
- "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (1.1.3)\n",
- "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (2.0.10)\n",
- "Requirement already satisfied: weasel<0.5.0,>=0.1.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (0.4.1)\n",
- "Requirement already satisfied: typer<1.0.0,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (0.15.1)\n",
- "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (4.67.1)\n",
- "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (2.32.3)\n",
- "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (2.10.3)\n",
- "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (3.1.4)\n",
- "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (75.1.0)\n",
- "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (24.2)\n",
- "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (3.5.0)\n",
- "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (3.16.1)\n",
- "Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (4.12.2)\n",
- "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (3.4.2)\n",
- "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (2024.10.0)\n",
- "Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (1.13.1)\n",
- "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from sympy==1.13.1->torch>=1.8.0->spacy-transformers) (1.3.0)\n",
- "Requirement already satisfied: huggingface-hub<1.0,>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (0.27.0)\n",
- "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (6.0.2)\n",
- "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (2024.11.6)\n",
- "Requirement already satisfied: tokenizers<0.19,>=0.14 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (0.15.2)\n",
- "Requirement already satisfied: safetensors>=0.3.1 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (0.4.5)\n",
- "Requirement already satisfied: language-data>=1.2 in /usr/local/lib/python3.10/dist-packages (from langcodes<4.0.0,>=3.2.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (1.3.0)\n",
- "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.7.0)\n",
- "Requirement already satisfied: pydantic-core==2.27.1 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4.1.0,>=3.5.0->spacy-transformers) (2.27.1)\n",
- "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (3.4.0)\n",
- "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (3.10)\n",
- "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (2.2.3)\n",
- "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (2024.12.14)\n",
- "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.7.11)\n",
- "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.1.5)\n",
- "Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (8.1.7)\n",
- "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (1.5.4)\n",
- "Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (13.9.4)\n",
- "Requirement already satisfied: cloudpathlib<1.0.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from weasel<0.5.0,>=0.1.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.20.0)\n",
- "Requirement already satisfied: smart-open<8.0.0,>=5.2.1 in /usr/local/lib/python3.10/dist-packages (from weasel<0.5.0,>=0.1.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (7.1.0)\n",
- "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->spacy<4.1.0,>=3.5.0->spacy-transformers) (3.0.2)\n",
- "Requirement already satisfied: marisa-trie>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from language-data>=1.2->langcodes<4.0.0,>=3.2.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (1.2.1)\n",
- "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (3.0.0)\n",
- "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (2.18.0)\n",
- "Requirement already satisfied: wrapt in /usr/local/lib/python3.10/dist-packages (from smart-open<8.0.0,>=5.2.1->weasel<0.5.0,>=0.1.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (1.17.0)\n",
- "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.1.2)\n",
- "Requirement already satisfied: spacy in /usr/local/lib/python3.10/dist-packages (3.7.5)\n",
- "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/dist-packages (from spacy) (3.0.12)\n",
- "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from spacy) (1.0.5)\n",
- "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/dist-packages (from spacy) (1.0.11)\n",
- "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy) (2.0.10)\n",
- "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy) (3.0.9)\n",
- "Requirement already satisfied: thinc<8.3.0,>=8.2.2 in /usr/local/lib/python3.10/dist-packages (from spacy) (8.2.5)\n",
- "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/dist-packages (from spacy) (1.1.3)\n",
- "Requirement already satisfied: srsly<3.0.0,>=2.4.3 in /usr/local/lib/python3.10/dist-packages (from spacy) (2.5.0)\n",
- "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from spacy) (2.0.10)\n",
- "Requirement already satisfied: weasel<0.5.0,>=0.1.0 in /usr/local/lib/python3.10/dist-packages (from spacy) (0.4.1)\n",
- "Requirement already satisfied: typer<1.0.0,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from spacy) (0.15.1)\n",
- "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.10/dist-packages (from spacy) (4.67.1)\n",
- "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from spacy) (2.32.3)\n",
- "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/dist-packages (from spacy) (2.10.3)\n",
- "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from spacy) (3.1.4)\n",
- "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from spacy) (75.1.0)\n",
- "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from spacy) (24.2)\n",
- "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from spacy) (3.5.0)\n",
- "Requirement already satisfied: numpy>=1.19.0 in /usr/local/lib/python3.10/dist-packages (from spacy) (1.24.3)\n",
- "Requirement already satisfied: language-data>=1.2 in /usr/local/lib/python3.10/dist-packages (from langcodes<4.0.0,>=3.2.0->spacy) (1.3.0)\n",
- "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy) (0.7.0)\n",
- "Requirement already satisfied: pydantic-core==2.27.1 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy) (2.27.1)\n",
- "Requirement already satisfied: typing-extensions>=4.12.2 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy) (4.12.2)\n",
- "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy) (3.4.0)\n",
- "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy) (3.10)\n",
- "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy) (2.2.3)\n",
- "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy) (2024.12.14)\n",
- "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy) (0.7.11)\n",
- "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy) (0.1.5)\n",
- "Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.3.0->spacy) (8.1.7)\n",
- "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.3.0->spacy) (1.5.4)\n",
- "Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.3.0->spacy) (13.9.4)\n",
- "Requirement already satisfied: cloudpathlib<1.0.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from weasel<0.5.0,>=0.1.0->spacy) (0.20.0)\n",
- "Requirement already satisfied: smart-open<8.0.0,>=5.2.1 in /usr/local/lib/python3.10/dist-packages (from weasel<0.5.0,>=0.1.0->spacy) (7.1.0)\n",
- "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->spacy) (3.0.2)\n",
- "Requirement already satisfied: marisa-trie>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from language-data>=1.2->langcodes<4.0.0,>=3.2.0->spacy) (1.2.1)\n",
- "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy) (3.0.0)\n",
- "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy) (2.18.0)\n",
- "Requirement already satisfied: wrapt in /usr/local/lib/python3.10/dist-packages (from smart-open<8.0.0,>=5.2.1->weasel<0.5.0,>=0.1.0->spacy) (1.17.0)\n",
- "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy) (0.1.2)\n",
- "Requirement already satisfied: jiwer in /usr/local/lib/python3.10/dist-packages (3.0.5)\n",
- "Requirement already satisfied: click<9.0.0,>=8.1.3 in /usr/local/lib/python3.10/dist-packages (from jiwer) (8.1.7)\n",
- "Requirement already satisfied: rapidfuzz<4,>=3 in /usr/local/lib/python3.10/dist-packages (from jiwer) (3.11.0)\n",
- "Requirement already satisfied: groq in /usr/local/lib/python3.10/dist-packages (0.13.1)\n",
- "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from groq) (4.7.0)\n",
- "Requirement already satisfied: distro<2,>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from groq) (1.9.0)\n",
- "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from groq) (0.28.1)\n",
- "Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from groq) (2.10.3)\n",
- "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from groq) (1.3.1)\n",
- "Requirement already satisfied: typing-extensions<5,>=4.10 in /usr/local/lib/python3.10/dist-packages (from groq) (4.12.2)\n",
- "Requirement already satisfied: exceptiongroup>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->groq) (1.2.2)\n",
- "Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->groq) (3.10)\n",
- "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->groq) (2024.12.14)\n",
- "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->groq) (1.0.7)\n",
- "Requirement already satisfied: h11<0.15,>=0.13 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->groq) (0.14.0)\n",
- "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->groq) (0.7.0)\n",
- "Requirement already satisfied: pydantic-core==2.27.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->groq) (2.27.1)\n",
- "Requirement already satisfied: fireworks-ai in /usr/local/lib/python3.10/dist-packages (0.15.10)\n",
- "Requirement already satisfied: httpx in /usr/local/lib/python3.10/dist-packages (from fireworks-ai) (0.28.1)\n",
- "Requirement already satisfied: httpx-ws in /usr/local/lib/python3.10/dist-packages (from fireworks-ai) (0.7.0)\n",
- "Requirement already satisfied: httpx_sse in /usr/local/lib/python3.10/dist-packages (from fireworks-ai) (0.4.0)\n",
- "Requirement already satisfied: pydantic in /usr/local/lib/python3.10/dist-packages (from fireworks-ai) (2.10.3)\n",
- "Requirement already satisfied: Pillow in /usr/local/lib/python3.10/dist-packages (from fireworks-ai) (11.0.0)\n",
- "Requirement already satisfied: anyio in /usr/local/lib/python3.10/dist-packages (from httpx->fireworks-ai) (4.7.0)\n",
- "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx->fireworks-ai) (2024.12.14)\n",
- "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx->fireworks-ai) (1.0.7)\n",
- "Requirement already satisfied: idna in /usr/local/lib/python3.10/dist-packages (from httpx->fireworks-ai) (3.10)\n",
- "Requirement already satisfied: h11<0.15,>=0.13 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx->fireworks-ai) (0.14.0)\n",
- "Requirement already satisfied: wsproto in /usr/local/lib/python3.10/dist-packages (from httpx-ws->fireworks-ai) (1.2.0)\n",
- "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic->fireworks-ai) (0.7.0)\n",
- "Requirement already satisfied: pydantic-core==2.27.1 in /usr/local/lib/python3.10/dist-packages (from pydantic->fireworks-ai) (2.27.1)\n",
- "Requirement already satisfied: typing-extensions>=4.12.2 in /usr/local/lib/python3.10/dist-packages (from pydantic->fireworks-ai) (4.12.2)\n",
- "Requirement already satisfied: exceptiongroup>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from anyio->httpx->fireworks-ai) (1.2.2)\n",
- "Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio->httpx->fireworks-ai) (1.3.1)\n",
- "Requirement already satisfied: python-Levenshtein in /usr/local/lib/python3.10/dist-packages (0.26.1)\n",
- "Requirement already satisfied: Levenshtein==0.26.1 in /usr/local/lib/python3.10/dist-packages (from python-Levenshtein) (0.26.1)\n",
- "Requirement already satisfied: rapidfuzz<4.0.0,>=3.9.0 in /usr/local/lib/python3.10/dist-packages (from Levenshtein==0.26.1->python-Levenshtein) (3.11.0)\n",
- "Requirement already satisfied: spacy-transformers in /usr/local/lib/python3.10/dist-packages (1.3.5)\n",
- "Requirement already satisfied: spacy<4.1.0,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (3.7.5)\n",
- "Requirement already satisfied: transformers<4.37.0,>=3.4.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (4.36.2)\n",
- "Requirement already satisfied: torch>=1.8.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (2.5.1+cu121)\n",
- "Requirement already satisfied: srsly<3.0.0,>=2.4.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (2.5.0)\n",
- "Requirement already satisfied: spacy-alignments<1.0.0,>=0.7.2 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (0.9.1)\n",
- "Requirement already satisfied: numpy>=1.19.0 in /usr/local/lib/python3.10/dist-packages (from spacy-transformers) (1.24.3)\n",
- "Requirement already satisfied: spacy-legacy<3.1.0,>=3.0.11 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (3.0.12)\n",
- "Requirement already satisfied: spacy-loggers<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (1.0.5)\n",
- "Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (1.0.11)\n",
- "Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (2.0.10)\n",
- "Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (3.0.9)\n",
- "Requirement already satisfied: thinc<8.3.0,>=8.2.2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (8.2.5)\n",
- "Requirement already satisfied: wasabi<1.2.0,>=0.9.1 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (1.1.3)\n",
- "Requirement already satisfied: catalogue<2.1.0,>=2.0.6 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (2.0.10)\n",
- "Requirement already satisfied: weasel<0.5.0,>=0.1.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (0.4.1)\n",
- "Requirement already satisfied: typer<1.0.0,>=0.3.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (0.15.1)\n",
- "Requirement already satisfied: tqdm<5.0.0,>=4.38.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (4.67.1)\n",
- "Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (2.32.3)\n",
- "Requirement already satisfied: pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (2.10.3)\n",
- "Requirement already satisfied: jinja2 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (3.1.4)\n",
- "Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (75.1.0)\n",
- "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (24.2)\n",
- "Requirement already satisfied: langcodes<4.0.0,>=3.2.0 in /usr/local/lib/python3.10/dist-packages (from spacy<4.1.0,>=3.5.0->spacy-transformers) (3.5.0)\n",
- "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (3.16.1)\n",
- "Requirement already satisfied: typing-extensions>=4.8.0 in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (4.12.2)\n",
- "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (3.4.2)\n",
- "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (2024.10.0)\n",
- "Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.10/dist-packages (from torch>=1.8.0->spacy-transformers) (1.13.1)\n",
- "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from sympy==1.13.1->torch>=1.8.0->spacy-transformers) (1.3.0)\n",
- "Requirement already satisfied: huggingface-hub<1.0,>=0.19.3 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (0.27.0)\n",
- "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (6.0.2)\n",
- "Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (2024.11.6)\n",
- "Requirement already satisfied: tokenizers<0.19,>=0.14 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (0.15.2)\n",
- "Requirement already satisfied: safetensors>=0.3.1 in /usr/local/lib/python3.10/dist-packages (from transformers<4.37.0,>=3.4.0->spacy-transformers) (0.4.5)\n",
- "Requirement already satisfied: language-data>=1.2 in /usr/local/lib/python3.10/dist-packages (from langcodes<4.0.0,>=3.2.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (1.3.0)\n",
- "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.7.0)\n",
- "Requirement already satisfied: pydantic-core==2.27.1 in /usr/local/lib/python3.10/dist-packages (from pydantic!=1.8,!=1.8.1,<3.0.0,>=1.7.4->spacy<4.1.0,>=3.5.0->spacy-transformers) (2.27.1)\n",
- "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (3.4.0)\n",
- "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (3.10)\n",
- "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (2.2.3)\n",
- "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3.0.0,>=2.13.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (2024.12.14)\n",
- "Requirement already satisfied: blis<0.8.0,>=0.7.8 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.7.11)\n",
- "Requirement already satisfied: confection<1.0.0,>=0.0.1 in /usr/local/lib/python3.10/dist-packages (from thinc<8.3.0,>=8.2.2->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.1.5)\n",
- "Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (8.1.7)\n",
- "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (1.5.4)\n",
- "Requirement already satisfied: rich>=10.11.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (13.9.4)\n",
- "Requirement already satisfied: cloudpathlib<1.0.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from weasel<0.5.0,>=0.1.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.20.0)\n",
- "Requirement already satisfied: smart-open<8.0.0,>=5.2.1 in /usr/local/lib/python3.10/dist-packages (from weasel<0.5.0,>=0.1.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (7.1.0)\n",
- "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2->spacy<4.1.0,>=3.5.0->spacy-transformers) (3.0.2)\n",
- "Requirement already satisfied: marisa-trie>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from language-data>=1.2->langcodes<4.0.0,>=3.2.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (1.2.1)\n",
- "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (3.0.0)\n",
- "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (2.18.0)\n",
- "Requirement already satisfied: wrapt in /usr/local/lib/python3.10/dist-packages (from smart-open<8.0.0,>=5.2.1->weasel<0.5.0,>=0.1.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (1.17.0)\n",
- "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich>=10.11.0->typer<1.0.0,>=0.3.0->spacy<4.1.0,>=3.5.0->spacy-transformers) (0.1.2)\n",
- "Requirement already satisfied: langchain_openai in /usr/local/lib/python3.10/dist-packages (0.2.14)\n",
- "Requirement already satisfied: langchain-core<0.4.0,>=0.3.27 in /usr/local/lib/python3.10/dist-packages (from langchain_openai) (0.3.28)\n",
- "Requirement already satisfied: openai<2.0.0,>=1.58.1 in /usr/local/lib/python3.10/dist-packages (from langchain_openai) (1.58.1)\n",
- "Requirement already satisfied: tiktoken<1,>=0.7 in /usr/local/lib/python3.10/dist-packages (from langchain_openai) (0.8.0)\n",
- "Requirement already satisfied: PyYAML>=5.3 in /usr/local/lib/python3.10/dist-packages (from langchain-core<0.4.0,>=0.3.27->langchain_openai) (6.0.2)\n",
- "Requirement already satisfied: jsonpatch<2.0,>=1.33 in /usr/local/lib/python3.10/dist-packages (from langchain-core<0.4.0,>=0.3.27->langchain_openai) (1.33)\n",
- "Requirement already satisfied: langsmith<0.3,>=0.1.125 in /usr/local/lib/python3.10/dist-packages (from langchain-core<0.4.0,>=0.3.27->langchain_openai) (0.2.3)\n",
- "Requirement already satisfied: packaging<25,>=23.2 in /usr/local/lib/python3.10/dist-packages (from langchain-core<0.4.0,>=0.3.27->langchain_openai) (24.2)\n",
- "Requirement already satisfied: pydantic<3.0.0,>=2.5.2 in /usr/local/lib/python3.10/dist-packages (from langchain-core<0.4.0,>=0.3.27->langchain_openai) (2.10.3)\n",
- "Requirement already satisfied: tenacity!=8.4.0,<10.0.0,>=8.1.0 in /usr/local/lib/python3.10/dist-packages (from langchain-core<0.4.0,>=0.3.27->langchain_openai) (9.0.0)\n",
- "Requirement already satisfied: typing-extensions>=4.7 in /usr/local/lib/python3.10/dist-packages (from langchain-core<0.4.0,>=0.3.27->langchain_openai) (4.12.2)\n",
- "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.58.1->langchain_openai) (4.7.0)\n",
- "Requirement already satisfied: distro<2,>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.58.1->langchain_openai) (1.9.0)\n",
- "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.58.1->langchain_openai) (0.28.1)\n",
- "Requirement already satisfied: jiter<1,>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.58.1->langchain_openai) (0.8.2)\n",
- "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.58.1->langchain_openai) (1.3.1)\n",
- "Requirement already satisfied: tqdm>4 in /usr/local/lib/python3.10/dist-packages (from openai<2.0.0,>=1.58.1->langchain_openai) (4.67.1)\n",
- "Requirement already satisfied: regex>=2022.1.18 in /usr/local/lib/python3.10/dist-packages (from tiktoken<1,>=0.7->langchain_openai) (2024.11.6)\n",
- "Requirement already satisfied: requests>=2.26.0 in /usr/local/lib/python3.10/dist-packages (from tiktoken<1,>=0.7->langchain_openai) (2.32.3)\n",
- "Requirement already satisfied: exceptiongroup>=1.0.2 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->openai<2.0.0,>=1.58.1->langchain_openai) (1.2.2)\n",
- "Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->openai<2.0.0,>=1.58.1->langchain_openai) (3.10)\n",
- "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->openai<2.0.0,>=1.58.1->langchain_openai) (2024.12.14)\n",
- "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->openai<2.0.0,>=1.58.1->langchain_openai) (1.0.7)\n",
- "Requirement already satisfied: h11<0.15,>=0.13 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->openai<2.0.0,>=1.58.1->langchain_openai) (0.14.0)\n",
- "Requirement already satisfied: jsonpointer>=1.9 in /usr/local/lib/python3.10/dist-packages (from jsonpatch<2.0,>=1.33->langchain-core<0.4.0,>=0.3.27->langchain_openai) (3.0.0)\n",
- "Requirement already satisfied: orjson<4.0.0,>=3.9.14 in /usr/local/lib/python3.10/dist-packages (from langsmith<0.3,>=0.1.125->langchain-core<0.4.0,>=0.3.27->langchain_openai) (3.10.12)\n",
- "Requirement already satisfied: requests-toolbelt<2.0.0,>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from langsmith<0.3,>=0.1.125->langchain-core<0.4.0,>=0.3.27->langchain_openai) (1.0.0)\n",
- "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.5.2->langchain-core<0.4.0,>=0.3.27->langchain_openai) (0.7.0)\n",
- "Requirement already satisfied: pydantic-core==2.27.1 in /usr/local/lib/python3.10/dist-packages (from pydantic<3.0.0,>=2.5.2->langchain-core<0.4.0,>=0.3.27->langchain_openai) (2.27.1)\n",
- "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken<1,>=0.7->langchain_openai) (3.4.0)\n",
- "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.26.0->tiktoken<1,>=0.7->langchain_openai) (2.2.3)\n"
- ]
- }
- ],
- "source": [
- "! pip install spacy-transformers\n",
- "! pip install spacy\n",
- "! pip install jiwer\n",
- "! pip install groq\n",
- "! pip install --upgrade fireworks-ai\n",
- "! pip install python-Levenshtein\n",
- "! pip install spacy-transformers\n",
- "! pip install langchain_openai\n",
- "# ! pip install together"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "PfthI4eOqBri"
- },
- "outputs": [],
- "source": [
- "import os\n",
- "import re\n",
- "from tqdm import tqdm\n",
- "import csv\n",
- "import pandas as pd\n",
- "import json\n",
- "import requests\n",
- "import Levenshtein\n",
- "import itertools\n",
- "from groq import Groq\n",
- "from difflib import SequenceMatcher\n",
- "# from together import Together\n",
- "from fireworks.client import Fireworks\n",
- "from tqdm import tqdm\n",
- "from langchain_openai import ChatOpenAI\n",
- "from jiwer import cer"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "EOZGZa2lMfPe"
- },
- "source": [
- "# Setup POSTagger"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "8TJZ2DrKMg7F",
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "outputId": "56d0fc90-7c62-457b-e0b3-c27d2041c033"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Cloning into 'spacy_pos_tagger_parsbertpostagger'...\n",
- "remote: Enumerating objects: 21, done.\u001b[K\n",
- "remote: Counting objects: 100% (18/18), done.\u001b[K\n",
- "remote: Compressing objects: 100% (15/15), done.\u001b[K\n",
- "remote: Total 21 (delta 0), reused 0 (delta 0), pack-reused 3 (from 1)\u001b[K\n",
- "Unpacking objects: 100% (21/21), 719.37 KiB | 1.29 MiB/s, done.\n"
- ]
- }
- ],
- "source": [
- "! git clone https://huggingface.co/roshan-research/spacy_pos_tagger_parsbertpostagger"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "pCiJ-VnfMiwj"
- },
- "outputs": [],
- "source": [
- "import spacy\n",
- "\"\"\"این ماژول شامل کلاسها و توابعی برای برچسبگذاری توکنهاست.\"\"\"\n",
- "\n",
- "from nltk.tag import stanford # noqa: I001\n",
- "from hazm import SequenceTagger\n",
- "\n",
- "import os\n",
- "import subprocess\n",
- "\n",
- "from spacy.tokens import Doc\n",
- "from spacy.tokens import DocBin\n",
- "from spacy.vocab import Vocab\n",
- "\n",
- "from sklearn.metrics import classification_report,f1_score,accuracy_score,precision_score,recall_score\n",
- "\n",
- "from tqdm import tqdm\n",
- "\n",
- "\n",
- "punctuation_list = [\n",
- " '\"',\n",
- " \"#\",\n",
- " \"(\",\n",
- " \")\",\n",
- " \"*\",\n",
- " \",\",\n",
- " \"-\",\n",
- " \".\",\n",
- " \"/\",\n",
- " \":\",\n",
- " \"[\",\n",
- " \"]\",\n",
- " \"«\",\n",
- " \"»\",\n",
- " \"،\",\n",
- " \";\",\n",
- " \"?\",\n",
- " \"!\",\n",
- "]\n",
- "\n",
- "\n",
- "class POSTagger(SequenceTagger):\n",
- " \"\"\"این کلاسها شامل توابعی برای برچسبگذاری توکنهاست.\"\"\"\n",
- "\n",
- " def __init__(\n",
- " self: \"POSTagger\", model=None, data_maker=None, universal_tag=False,\n",
- " ) -> None:\n",
- " data_maker = self.data_maker if data_maker is None else data_maker\n",
- " self.__is_universal = universal_tag\n",
- " super().__init__(model, data_maker)\n",
- "\n",
- " def __universal_converter(self: \"POSTagger\", tagged_list):\n",
- " return [(word, tag.split(\",\")[0]) for word, tag in tagged_list]\n",
- "\n",
- " def __is_punc(self: \"POSTagger\", word):\n",
- " return word in punctuation_list\n",
- "\n",
- " def data_maker(self: \"POSTagger\", tokens):\n",
- " \"\"\"تابعی که لیستی از لیستی از کلمات توکنایز شده را گرفته و لیست دو بعدی از از دیکشنریهایی که تعیینکننده ویژگیها هر کلمه هستند را برمیگرداند.\n",
- "\n",
- " Examples:\n",
- " >>> posTagger = POSTagger(model = 'pos_tagger.model')\n",
- " >>> posTagger.data_maker(tokens = [['دلم', 'اینجا', 'ماندهاست', '.']])\n",
- " [[{'word': 'دلم', 'is_first': True, 'is_last': False, 'prefix-1': 'د', 'prefix-2': 'دل', 'prefix-3': 'دلم', 'suffix-1': 'م', 'suffix-2': 'لم', 'suffix-3': 'دلم', 'prev_word': '', 'two_prev_word': '', 'next_word': 'اینجا', 'two_next_word': 'مانده\\u200cاست', 'is_numeric': False, 'prev_is_numeric': '', 'next_is_numeric': False, 'is_punc': False, 'prev_is_punc': '', 'next_is_punc': False}, {'word': 'اینجا', 'is_first': False, 'is_last': False, 'prefix-1': 'ا', 'prefix-2': 'ای', 'prefix-3': 'این', 'suffix-1': 'ا', 'suffix-2': 'جا', 'suffix-3': 'نجا', 'prev_word': 'دلم', 'two_prev_word': '.', 'next_word': 'مانده\\u200cاست', 'two_next_word': '.', 'is_numeric': False, 'prev_is_numeric': False, 'next_is_numeric': False, 'is_punc': False, 'prev_is_punc': False, 'next_is_punc': False}, {'word': 'مانده\\u200cاست', 'is_first': False, 'is_last': False, 'prefix-1': 'م', 'prefix-2': 'ما', 'prefix-3': 'مان', 'suffix-1': 'ت', 'suffix-2': 'ست', 'suffix-3': 'است', 'prev_word': 'اینجا', 'two_prev_word': 'دلم', 'next_word': '.', 'two_next_word': '', 'is_numeric': False, 'prev_is_numeric': False, 'next_is_numeric': False, 'is_punc': False, 'prev_is_punc': False, 'next_is_punc': True}, {'word': '.', 'is_first': False, 'is_last': True, 'prefix-1': '.', 'prefix-2': '.', 'prefix-3': '.', 'suffix-1': '.', 'suffix-2': '.', 'suffix-3': '.', 'prev_word': 'مانده\\u200cاست', 'two_prev_word': 'اینجا', 'next_word': '', 'two_next_word': '', 'is_numeric': False, 'prev_is_numeric': False, 'next_is_numeric': '', 'is_punc': True, 'prev_is_punc': False, 'next_is_punc': ''}]]\n",
- "\n",
- " Args:\n",
- " tokens (List[List[str]]): جملاتی که نیاز به تبدیل آن به برداری از ویژگیها است.\n",
- "\n",
- " Returns:\n",
- " List(List(Dict())): لیستی از لیستی از دیکشنریهای بیانکننده ویژگیهای یک کلمه.\n",
- " \"\"\"\n",
- " return [\n",
- " [self.features(token, index) for index in range(len(token))]\n",
- " for token in tokens\n",
- " ]\n",
- "\n",
- " def features(self: \"POSTagger\", sentence, index):\n",
- " \"\"\"features.\"\"\"\n",
- " return {\n",
- " \"word\": sentence[index],\n",
- " \"is_first\": index == 0,\n",
- " \"is_last\": index == len(sentence) - 1,\n",
- " # *ix\n",
- " \"prefix-1\": sentence[index][0],\n",
- " \"prefix-2\": sentence[index][:2],\n",
- " \"prefix-3\": sentence[index][:3],\n",
- " \"suffix-1\": sentence[index][-1],\n",
- " \"suffix-2\": sentence[index][-2:],\n",
- " \"suffix-3\": sentence[index][-3:],\n",
- " # word\n",
- " \"prev_word\": \"\" if index == 0 else sentence[index - 1],\n",
- " \"two_prev_word\": \"\" if index == 0 else sentence[index - 2],\n",
- " \"next_word\": \"\" if index == len(sentence) - 1 else sentence[index + 1],\n",
- " \"two_next_word\": (\n",
- " \"\"\n",
- " if index in {len(sentence) - 1, len(sentence) - 2}\n",
- " else sentence[index + 2]\n",
- " ),\n",
- " # digit\n",
- " \"is_numeric\": sentence[index].isdigit(),\n",
- " \"prev_is_numeric\": \"\" if index == 0 else sentence[index - 1].isdigit(),\n",
- " \"next_is_numeric\": (\n",
- " \"\" if index == len(sentence) - 1 else sentence[index + 1].isdigit()\n",
- " ),\n",
- " # punc\n",
- " \"is_punc\": self.__is_punc(sentence[index]),\n",
- " \"prev_is_punc\": \"\" if index == 0 else self.__is_punc(sentence[index - 1]),\n",
- " \"next_is_punc\": (\n",
- " \"\"\n",
- " if index == len(sentence) - 1\n",
- " else self.__is_punc(sentence[index + 1])\n",
- " ),\n",
- " }\n",
- "\n",
- " def tag(self: \"POSTagger\", tokens):\n",
- " \"\"\"یک جمله را در قالب لیستی از توکنها دریافت میکند و در خروجی لیستی از\n",
- " `(توکن، برچسب)`ها برمیگرداند.\n",
- "\n",
- " Examples:\n",
- " >>> posTagger = POSTagger(model = 'pos_tagger.model')\n",
- " >>> posTagger.tag(tokens = ['من', 'به', 'مدرسه', 'ایران', 'رفته_بودم', '.'])\n",
- " [('من', 'PRON'), ('به', 'ADP'), ('مدرسه', 'NOUN,EZ'), ('ایران', 'NOUN'), ('رفته_بودم', 'VERB'), ('.', 'PUNCT')]\n",
- "\n",
- " >>> posTagger = POSTagger(model = 'pos_tagger.model', universal_tag = True)\n",
- " >>> posTagger.tag(tokens = ['من', 'به', 'مدرسه', 'ایران', 'رفته_بودم', '.'])\n",
- " [('من', 'PRON'), ('به', 'ADP'), ('مدرسه', 'NOUN'), ('ایران', 'NOUN'), ('رفته_بودم', 'VERB'), ('.', 'PUNCT')]\n",
- "\n",
- " Args:\n",
- " tokens (List[str]): لیستی از توکنهای یک جمله که باید برچسبگذاری شود.\n",
- "\n",
- " Returns:\n",
- " (List[Tuple[str,str]]): لیستی از `(توکن، برچسب)`ها.\n",
- "\n",
- " \"\"\"\n",
- " tagged_token = super().tag(tokens)\n",
- " return (\n",
- " self.__universal_converter(tagged_token)\n",
- " if self.__is_universal\n",
- " else tagged_token\n",
- " )\n",
- "\n",
- " def tag_sents(self: \"POSTagger\", sentences):\n",
- " \"\"\"جملات را در قالب لیستی از توکنها دریافت میکند\n",
- " و در خروجی، لیستی از لیستی از `(توکن، برچسب)`ها برمیگرداند.\n",
- "\n",
- " هر لیست از `(توکن، برچسب)`ها مربوط به یک جمله است.\n",
- "\n",
- " Examples:\n",
- " >>> posTagger = POSTagger(model = 'pos_tagger.model')\n",
- " >>> posTagger.tag_sents(sentences = [['من', 'به', 'مدرسه', 'ایران', 'رفته_بودم', '.']])\n",
- " [[('من', 'PRON'), ('به', 'ADP'), ('مدرسه', 'NOUN,EZ'), ('ایران', 'NOUN'), ('رفته_بودم', 'VERB'), ('.', 'PUNCT')]]\n",
- "\n",
- " >>> posTagger = POSTagger(model = 'pos_tagger.model', universal_tag = True)\n",
- " >>> posTagger.tag_sents(sentences = [['من', 'به', 'مدرسه', 'ایران', 'رفته_بودم', '.']])\n",
- " [[('من', 'PRON'), ('به', 'ADP'), ('مدرسه', 'NOUN'), ('ایران', 'NOUN'), ('رفته_بودم', 'VERB'), ('.', 'PUNCT')]]\n",
- "\n",
- " Args:\n",
- " sentences (List[List[str]]): لیستی از جملات که باید برچسبگذاری شود.\n",
- "\n",
- " Returns:\n",
- " (List[List[Tuple[str,str]]]): لیستی از لیستی از `(توکن، برچسب)`ها.\n",
- " هر لیست از `(توکن،برچسب)`ها مربوط به یک جمله است.\n",
- "\n",
- " \"\"\"\n",
- " tagged_sents = super().tag_sents(sentences)\n",
- " return (\n",
- " [self.__universal_converter(tagged_sent) for tagged_sent in tagged_sents]\n",
- " if self.__is_universal\n",
- " else tagged_sents\n",
- " )\n",
- "\n",
- "\n",
- "class StanfordPOSTagger(stanford.StanfordPOSTagger):\n",
- " \"\"\"StanfordPOSTagger.\"\"\"\n",
- "\n",
- " def __init__(\n",
- " self: \"StanfordPOSTagger\",\n",
- " model_filename: \"str\",\n",
- " path_to_jar: str,\n",
- " *args, # noqa: ANN002\n",
- " **kwargs, # noqa: ANN003\n",
- " ) -> None:\n",
- " self._SEPARATOR = \"/\"\n",
- " super(stanford.StanfordPOSTagger, self).__init__(\n",
- " model_filename=model_filename,\n",
- " path_to_jar=path_to_jar,\n",
- " *args, # noqa: B026\n",
- " **kwargs,\n",
- " )\n",
- "\n",
- " def tag(self: \"StanfordPOSTagger\", tokens):\n",
- " \"\"\"tag.\n",
- "\n",
- " Examples:\n",
- " >>> tagger = StanfordPOSTagger(model_filename='persian.tagger', path_to_jar='stanford_postagger.jar')\n",
- " >>> tagger.tag(['من', 'به', 'مدرسه', 'رفته_بودم', '.'])\n",
- " [('من', 'PRO'), ('به', 'P'), ('مدرسه', 'N'), ('رفته_بودم', 'V'), ('.', 'PUNC')]\n",
- "\n",
- " \"\"\"\n",
- " return self.tag_sents([tokens])[0]\n",
- "\n",
- " def tag_sents(self: \"StanfordPOSTagger\", sentences):\n",
- " \"\"\"tag_sents.\"\"\"\n",
- " refined = ([w.replace(\" \", \"_\") for w in s] for s in sentences)\n",
- " return super(stanford.StanfordPOSTagger, self).tag_sents(refined)\n",
- "\n",
- "\n",
- "class SpacyPOSTagger(POSTagger):\n",
- " def __init__(\n",
- " self: \"SpacyPOSTagger\",\n",
- " model_path=None,\n",
- " using_gpu=False,\n",
- " gpu_id=0\n",
- " ):\n",
- " \"\"\"\n",
- " Initialize the SpacyPOSTagger with a model and data paths.\n",
- "\n",
- " Args:\n",
- " - model_path: Path to a pre-trained spaCy model.\n",
- " - test_dataset: Test dataset for evaluation. It has a similar structure to the training dataset.\n",
- " - test_directory: Directory to save the test data in spaCy format.\n",
- " - using_gpu: Set to True if you want use gpu (if you dont have one and set this to True the function use cpu automatically)\n",
- " This constructor calls the constructor of the parent class POSTagger.\n",
- " \"\"\"\n",
- " super().__init__(universal_tag=True)\n",
- " self.model_path = model_path #### Usually an output directory for spacy model contain two other directory name model-last , model-best,You should give model_path like this : output/model-last\n",
- " self.using_gpu = using_gpu\n",
- " self.gpu_id = gpu_id\n",
- " self.tagger = None\n",
- " self._setup()\n",
- "\n",
- " def _setup(self: \"SpacyPOSTagger\"):\n",
- " \"\"\"\n",
- " Set up the configuration for the spaCy model, including GPU settings and data preparation.\n",
- "\n",
- " This function initializes and configures the spaCy model, checks for GPU availability, and prepares the training and testing datasets in spaCy format.\n",
- "\n",
- " If using GPU, GPU settings are configured to enhance processing speed. Then, the pre-trained spaCy model is loaded based on the provided model path.\n",
- "\n",
- " Training and testing datasets are prepared and saved in the respective directories for use during model training and evaluation.\n",
- " \"\"\" # noqa: D212\n",
- " if self.using_gpu:\n",
- " self._setup_gpu()\n",
- " else:\n",
- " print(\"------------- You Prefer to use CPU --------------\")\n",
- "\n",
- "\n",
- " def _setup_model(self: \"SpacyPOSTagger\",sents):\n",
- " \"\"\"\n",
- " Initialize and configure the spaCy model for tagging without GPU settings.\n",
- "\n",
- " This method loads and configures the spaCy model based on the provided model path. It also sets up a custom tokenizer for text processing and constructs a dictionary for reference.\n",
- "\n",
- " Args:\n",
- " - model_path: Path to the pre-trained spaCy model.\n",
- "\n",
- " This method is typically called during setup to prepare the model for tagging tasks.\n",
- " \"\"\"\n",
- " self.peykare_dict = {} # Initialize a dictionary for reference\n",
- " self.tagger = spacy.load(self.model_path) # Load the spaCy model\n",
- " self._set_peykare_dictionary(sents) # Construct a reference dictionary\n",
- " self.tagger.tokenizer = self._custom_tokenizer # Set a custom tokenizer for the model.\n",
- "\n",
- " def _setup_gpu(self: \"SpacyPOSTagger\"):\n",
- " \"\"\"\n",
- " Check GPU availability and configure spaCy to use it if possible.\n",
- "\n",
- " This method checks whether a GPU is available and, if so, configures spaCy to utilize it for improved processing speed. It sets the 'gpu_availability' attribute to 'True' or 'False' accordingly.\n",
- "\n",
- " This check is performed during setup to make use of available GPU resources for enhanced performance.\n",
- " \"\"\"\n",
- " print(\"------------------ GPU Setup Process Started ---------------------\")\n",
- " gpu_available = spacy.prefer_gpu(gpu_id=self.gpu_id) # Check if a GPU is available\n",
- " if gpu_available:\n",
- " print(\"------------ GPU is available and ready for use -------------\")\n",
- " spacy.require_gpu(gpu_id=self.gpu_id) # Configure spaCy to use the GPU\n",
- " self.gpu_availability = True\n",
- " else:\n",
- " print(\"------------ GPU is not available; spaCy will use CPU -------------\")\n",
- " self.gpu_availability = False\n",
- "\n",
- "\n",
- " def _setup_dataset(self: \"SpacyPOSTagger\", dataset,saved_directory,data_type='train'):\n",
- " \"\"\"\n",
- " Setup the training dataset in spaCy's binary format.\n",
- "\n",
- " This function prepares the training dataset and saves it in spaCy's binary format.\n",
- " \"\"\"\n",
- " assert data_type in ['train','test']\n",
- " db = DocBin()\n",
- " for sent in tqdm(dataset):\n",
- " words = [word[0] for word in sent]\n",
- " tags = [word[1] for word in sent]\n",
- " doc = Doc(Vocab(strings=words), words=words)\n",
- " for d, tag in zip(doc, tags):\n",
- " d.tag_ = tag\n",
- " db.add(doc)\n",
- "\n",
- " self._handle_data_path(saved_directory)\n",
- " db.to_disk(f'{saved_directory}/{data_type}.spacy')\n",
- "\n",
- " def _handle_data_path(self,path='POSTaggerDataset'):\n",
- " \"\"\"\n",
- " Create the directory if it doesn't exist.\n",
- "\n",
- " This method checks if the specified directory exists, and if not, it creates the directory to store the data.\n",
- "\n",
- " Args:\n",
- " - path: The path to the directory (default is 'POSTaggerDataset').\n",
- "\n",
- " This method is called to ensure the directory is available for saving processed data.\n",
- " \"\"\"\n",
- " if not os.path.exists(path):\n",
- " os.makedirs(path)\n",
- "\n",
- "\n",
- " def _custom_tokenizer(self: \"SpacyPOSTagger\", text):\n",
- " \"\"\"\n",
- " Implement a custom tokenization method for spaCy.\n",
- "\n",
- " This method defines a custom tokenization method for spaCy. It is used to tokenize input text based on a custom dictionary, or it raises an error if tokenization is not available.\n",
- "\n",
- " Args:\n",
- " - text: The input text to be tokenized.\n",
- "\n",
- " This custom tokenization method is used by the spaCy model during processing.\n",
- "\n",
- " \"\"\"\n",
- "\n",
- " if text in self.peykare_dict:\n",
- " return Doc(self.tagger.vocab, self.peykare_dict[text])\n",
- " else:\n",
- " raise ValueError('No tokenization available for input.')\n",
- "\n",
- " def _set_peykare_dictionary(self: \"SpacyPOSTagger\", sents):\n",
- " \"\"\"\n",
- " Create a dictionary for custom tokenization.\n",
- "\n",
- " This method constructs a dictionary to store custom tokenization mappings based on input sentences. It is used for custom tokenization in spaCy.\n",
- "\n",
- " Args:\n",
- " - sents: Input sentences to build the custom tokenization dictionary.\n",
- "\n",
- " This method is called during setup to establish a dictionary for tokenization.\n",
- " \"\"\"\n",
- " self.peykare_dict = {' '.join([w for w in item]): [w for w in item] for item in sents}\n",
- "\n",
- "\n",
- " def _add_to_dict(self: \"SpacyPOSTagger\", sents):\n",
- " \"\"\"\n",
- " Add the sentences to dictianory if it doesnt exist already\n",
- " \"\"\"\n",
- " for sent in sents:\n",
- " key = ' '.join(sent)\n",
- " if key not in self.peykare_dict:\n",
- " self.peykare_dict[key] = sent\n",
- "\n",
- "\n",
- " def tag(self: \"SpacyPOSTagger\", tokens,universal_tag=True):\n",
- " \"\"\"یک جمله را در قالب لیستی از توکنها دریافت میکند و در خروجی لیستی از\n",
- " `(توکن، برچسب)`ها برمیگرداند.\n",
- "\n",
- " Examples:\n",
- " >>> posTagger = POSTagger(model = 'pos_tagger.model')\n",
- " >>> posTagger.tag(tokens = ['من', 'به', 'مدرسه', 'ایران', 'رفته_بودم', '.'])\n",
- " [('من', 'PRON'), ('به', 'ADP'), ('مدرسه', 'NOUN,EZ'), ('ایران', 'NOUN'), ('رفته_بودم', 'VERB'), ('.', 'PUNCT')]\n",
- "\n",
- " >>> posTagger = POSTagger(model = 'pos_tagger.model', universal_tag = True)\n",
- " >>> posTagger.tag(tokens = ['من', 'به', 'مدرسه', 'ایران', 'رفته_بودم', '.'])\n",
- " [('من', 'PRON'), ('به', 'ADP'), ('مدرسه', 'NOUN'), ('ایران', 'NOUN'), ('رفته_بودم', 'VERB'), ('.', 'PUNCT')]\n",
- "\n",
- " Args:\n",
- " tokens (List[str]): لیستی از توکنهای یک جمله که باید برچسبگذاری شود.\n",
- "\n",
- " Returns:\n",
- " (List[Tuple[str,str]]): لیستی از `(توکن، برچسب)`ها.\n",
- "\n",
- " \"\"\"\n",
- " if self.tagger == None:\n",
- " self._setup_model([tokens])\n",
- " self._add_to_dict([tokens])\n",
- "\n",
- " text = ' '.join(tokens)\n",
- " doc = self.tagger(text)\n",
- " if not universal_tag:\n",
- " tags = [tok.tag_ for tok in doc]\n",
- " else:\n",
- " tags = [tok.tag_.replace(',EZ','') for tok in doc]\n",
- "\n",
- " return list(zip(tokens,tags))\n",
- " # noqa: W293\n",
- "\n",
- " def tag_sents(self:\"SpacyPOSTagger\",sents,universal_tag=True,batch_size=128):\n",
- " \"\"\"\n",
- " Args:\n",
- " sents : List[List[Tokens]]\n",
- " batch_size : number of batches give to model for processing sentences each time\n",
- " \"\"\"\n",
- " \"\"\"\n",
- " Returns : List[List[Tuple(str,str)]]\n",
- " \"\"\"\n",
- " if self.tagger == None:\n",
- " self._setup_model(sents)\n",
- "\n",
- " self._add_to_dict(sents)\n",
- "\n",
- " docs = list(self.tagger.pipe((' '.join([w for w in sent]) for sent in sents), batch_size=batch_size))\n",
- " if not universal_tag:\n",
- " tags = [[w.tag_ for w in doc] for doc in docs]\n",
- " else:\n",
- " tags = [[w.tag_.replace(',EZ','') for w in doc] for doc in docs]\n",
- "\n",
- " combined_out = [list(zip(tok,tag)) for tok,tag in zip(sents,tags)]\n",
- " return combined_out\n",
- "\n",
- " def train(\n",
- " self: \"SpacyPOSTagger\",\n",
- " train_dataset,\n",
- " test_dataset,\n",
- " data_directory,\n",
- " base_config_file,\n",
- " train_config_path,\n",
- " output_dir,\n",
- " use_direct_config=False\n",
- " ):\n",
- " \"\"\"\n",
- " Train the spaCy model using a subprocess and a configuration file.\n",
- "\n",
- " This method executes the training process for the spaCy model by invoking spaCy's training module using subprocess. It takes input configuration files, training and testing data, and GPU settings (if available).\n",
- "\n",
- " Args:\n",
- " - train_dataset: Training dataset for the tagger. It is a list of sentences, where each sentence is a list of token-tag pairs.\n",
- " - test_dataset: Testing dataset for the tagger. It is a list of sentences, where each sentence is a list of token-tag pairs.\n",
- " - data_directory: Directory to save the training and testing data in spaCy format.\n",
- " - base_config_file: Path to the base configuration file for spaCy.\n",
- " - train_config_path: if use_direct_config set to True this is the path of config file for training that you will use\n",
- " if use_direct_config set to False this is the path that you want train config file will create with base_config\n",
- " - output_dir: Directory for storing the trained model and training logs.\n",
- "\n",
- " Upon successful training, this method updates the model path to the trained model.\n",
- "\n",
- " This method is typically called to initiate the training process of the spaCy model.\n",
- " \"\"\"\n",
- "\n",
- " self.spacy_train_directory = data_directory\n",
- " self.train_dataset = train_dataset ### List[List[Tuple]]\n",
- " self.test_dataset = test_dataset\n",
- " if self.train_dataset:\n",
- " # Set up the training dataset configuration\n",
- " self._setup_dataset(dataset=self.train_dataset, saved_directory=self.spacy_train_directory, data_type='train')\n",
- "\n",
- " if self.test_dataset:\n",
- " self._setup_dataset(test_dataset,saved_directory=data_directory,data_type='test')\n",
- "\n",
- " train_data = f'{data_directory}/train.spacy'\n",
- " test_data = f'{data_directory}/test.spacy'\n",
- "\n",
- " if use_direct_config == False:\n",
- " self._setup_train_config(base_config_file, train_config_path=train_config_path)\n",
- " else:\n",
- " self.train_config_file = train_config_path\n",
- "\n",
- " command = f\"python -m spacy train {self.train_config_file} --output ./{output_dir} --paths.train ./{train_data} --paths.dev ./{test_data}\"\n",
- " if self.gpu_availability:\n",
- " command += f\" --gpu-id {self.gpu_id}\"\n",
- "\n",
- " subprocess.run(command, shell=True)\n",
- " self.model_path = f\"{output_dir}/model-last\"\n",
- " self._setup_model([[w for w,_ in sent] for sent in test_dataset])\n",
- "\n",
- " def _setup_train_config(self: \"SpacyPOSTagger\", base_config, train_config_path):\n",
- " \"\"\"\n",
- " Create and configure the training configuration file for spaCy.\n",
- "\n",
- " This method sets up the training configuration file by copying a base configuration file and customizing it according to the specified parameters.\n",
- "\n",
- " Args:\n",
- " - base_config: Path to the base configuration file.\n",
- " - train_config_file_name: Name of the training configuration file for saving it.\n",
- "\n",
- " This method is called to generate the training configuration file used in the training process.\n",
- " \"\"\"\n",
- " self.train_config_file = train_config_path\n",
- " print(\"----------------- Setting up the training configuration file ----------------------\")\n",
- " command = f\"python -m spacy init fill-config {base_config} {train_config_path}\" # Generate the training configuration file\n",
- " subprocess.run(command, shell=True)\n",
- " print(\"----------------- Training configuration file created successfully ----------------------\")\n",
- " print(f\"----------------- Training Config file address is {train_config_path} --------------------\")\n",
- "\n",
- " def evaluate(self: \"SpacyPOSTagger\", test_sents,batch_size):\n",
- " \"\"\"\n",
- " Evaluate the spaCy model on input sentences using different tag options.\n",
- "\n",
- " This method evaluates the spaCy model on input sentences with and without 'EZ' tags and reports classification metrics.\n",
- "\n",
- " Args:\n",
- " - sents: List of sentences for evaluation.\n",
- " - batch_size : number of batches that model should process each time\n",
- " This method calls the internal evaluation method for both tag options.\n",
- "\n",
- " This method is typically used for model evaluation and reporting metrics.\n",
- " \"\"\"\n",
- " self._setup_model([[w for w,_ in sent] for sent in test_sents])\n",
- " if self.tagger:\n",
- " golds, predictions = self._get_labels_and_predictions(test_sents,batch_size)\n",
- " print(\"-----------------------------------------\")\n",
- " self._evaluate_tags(test_sents, golds, predictions, use_ez_tags=True,batch_size=batch_size)\n",
- " print(\"-----------------------------------------\")\n",
- " self._evaluate_tags(test_sents, golds, predictions, use_ez_tags=False,batch_size=batch_size)\n",
- " else:\n",
- " raise ValueError(\"Model does not exist.Please train a new one with train method of this instance or give a model_path , setup the model with self._setup_model() and then call evaluate\")\n",
- "\n",
- " def _evaluate_tags(self, sents, golds=None, predictions=None, use_ez_tags=True,batch_size=128):\n",
- " \"\"\"\n",
- " Evaluate model predictions and report classification metrics.\n",
- "\n",
- " This method evaluates model predictions and reports classification metrics for the specified tag option.\n",
- "\n",
- " Args:\n",
- " - sents: List of sentences for evaluation.\n",
- " - golds: List of gold labels (optional).\n",
- " - predictions: List of model predictions (optional).\n",
- " - use_ez_tags: A flag indicating whether to consider 'EZ' tags.\n",
- " - batch_size : number of batches model should process\n",
- "\n",
- " If `golds` and `predictions` are not provided, they are automatically extracted from the input sentences.\n",
- "\n",
- " This method calculates and displays precision, recall, and F1-score for the specified tag option.\n",
- "\n",
- " This method is called by the `evaluate` method to perform model evaluation.\n",
- " \"\"\"\n",
- " if golds is None or predictions is None:\n",
- " golds, predictions = self._get_labels_and_predictions(sents,batch_size)\n",
- "\n",
- " predictions_cleaned = []\n",
- " golds_cleaned = []\n",
- " if use_ez_tags:\n",
- " get_tag_func = self._get_ez_tags\n",
- " else:\n",
- " get_tag_func = self._remove_ez_tags\n",
- "\n",
- " for preds, golds in zip(predictions, golds):\n",
- " for pred in preds:\n",
- " pred_cleaned = get_tag_func(pred)\n",
- " predictions_cleaned.append(pred_cleaned)\n",
- " for gold in golds:\n",
- " gold_cleaned = get_tag_func(gold)\n",
- " golds_cleaned.append(gold_cleaned)\n",
- "\n",
- " print(classification_report(golds_cleaned, predictions_cleaned))\n",
- " print('Precision: %.5f' % precision_score(golds_cleaned, predictions_cleaned, average='weighted'))\n",
- " print('Recall: %.5f' % recall_score(golds_cleaned, predictions_cleaned, average='weighted'))\n",
- " print('F1-Score: %.5f' % f1_score(golds_cleaned, predictions_cleaned, average='macro'))\n",
- "\n",
- " def _get_ez_tags(self, label):\n",
- " \"\"\"\n",
- " Extract 'EZ' tags from labels.\n",
- "\n",
- " This method extracts 'EZ' tags from labels if they are present and returns them.\n",
- "\n",
- " Args:\n",
- " - label: The label containing 'EZ' tags.\n",
- "\n",
- " Returns:\n",
- " The 'EZ' tags or '-' if 'EZ' tags are not present.\n",
- " \"\"\"\n",
- " if 'EZ' in label:\n",
- " label = 'EZ'\n",
- " else:\n",
- " label = '-'\n",
- "\n",
- " return label\n",
- "\n",
- " def _remove_ez_tags(self, label):\n",
- " \"\"\"\n",
- " Remove 'EZ' tags from labels.\n",
- "\n",
- " This method removes 'EZ' tags from labels if they are present and returns the cleaned label.\n",
- "\n",
- " Args:\n",
- " - label: The label containing 'EZ' tags.\n",
- "\n",
- " Returns:\n",
- " The label with 'EZ' tags removed.\n",
- " \"\"\"\n",
- " return label.replace(',EZ', '') if 'EZ' in label else label\n",
- "\n",
- " def _evaluate_ez_tags(self, sents):\n",
- " \"\"\"\n",
- " Evaluate model predictions with 'EZ' tags included.\n",
- "\n",
- " This method evaluates model predictions with 'EZ' tags included.\n",
- " \"\"\"\n",
- " self._evaluate_tags(sents, use_ez_tags=True)\n",
- "\n",
- " def _evaluate_normal_tags(self, sents):\n",
- " \"\"\"\n",
- " Evaluate model predictions without 'EZ' tags.\n",
- "\n",
- " This method evaluates model predictions without 'EZ' tags.\n",
- " \"\"\"\n",
- " self._evaluate_tags(sents, use_ez_tags=False)\n",
- "\n",
- " def _get_labels_and_predictions(self: \"SpacyPOSTagger\", sents,batch_size):\n",
- " \"\"\"\n",
- " Extract gold labels and model predictions for evaluation.\n",
- "\n",
- " This method extracts gold labels and model predictions from input sentences.\n",
- "\n",
- " Args:\n",
- " - sents: List of sentences for evaluation.\n",
- "\n",
- " Returns:\n",
- " Lists of gold labels and model predictions.\n",
- "\n",
- " This method is typically used for gathering data to perform model evaluation.\n",
- " \"\"\"\n",
- " gold_labels = [[tag for _, tag in sent] for sent in sents]\n",
- " tokens = [[w for w,_ in sent] for sent in sents]\n",
- " prediction_labels = self.tag_sents(tokens,batch_size)\n",
- " return gold_labels, prediction_labels\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "5_IBJXq1Mnfo",
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "outputId": "053fdfd4-9003-43c7-ffe7-e4bf38fa5d1d"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "------------- You Prefer to use CPU --------------\n"
- ]
- }
- ],
- "source": [
- "spacy_posTagger = SpacyPOSTagger(model_path = '/content/spacy_pos_tagger_parsbertpostagger')"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "Zg2EzX4hOReJ"
- },
- "source": [
- "# Setup LLM"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "HsnrlOZprsoK"
- },
- "outputs": [],
- "source": [
- "def get_response(messages, model=\"meta-llama/llama-3.1-405b-instruct\", server='openrouter'):\n",
- " if server == 'avalai':\n",
- " llm = ChatOpenAI(model=model, base_url=\"https://api.avalai.ir/v1\", api_key=\"API-KEY\")\n",
- " response = llm.invoke(messages)\n",
- " print(\"prompted!\")\n",
- "\n",
- " return response.content\n",
- "\n",
- " if server == 'openrouter':\n",
- " response = requests.post(\n",
- " url=\"https://openrouter.ai/api/v1/chat/completions\",\n",
- " headers={\n",
- " \"Authorization\": f\"API-KEY\",\n",
- " },\n",
- " data=json.dumps({\n",
- " \"model\": model,\n",
- " \"messages\": messages\n",
- " })\n",
- " )\n",
- "\n",
- "\n",
- " response = response.json()\n",
- " response = response['choices'][0]['message']['content']\n",
- " return response\n",
- "\n",
- " elif server == 'groq':\n",
- " client = Groq(\n",
- " api_key= \"API-KEY\",\n",
- " )\n",
- "\n",
- " while True:\n",
- " try:\n",
- " response = client.chat.completions.create(\n",
- " model=model,\n",
- " messages=messages,\n",
- " )\n",
- "\n",
- " response = response.choices[0].message.content\n",
- " return response\n",
- "\n",
- " except Exception as e:\n",
- " print(e)\n",
- " continue\n",
- "\n",
- " elif server == 'fireworks':\n",
- " client = Fireworks(api_key=\"API-KEY\")\n",
- "\n",
- " response = client.chat.completions.create(\n",
- " model=model,\n",
- " messages=messages,\n",
- " )\n",
- "\n",
- " response = response.choices[0].message.content\n",
- " return response\n",
- "\n",
- " elif server == 'together':\n",
- " client = Together(api_key=\"API-KEY\")\n",
- "\n",
- " response = client.chat.completions.create(\n",
- " model=model,\n",
- " messages=messages,\n",
- " )\n",
- " response = response.choices[0].message.content\n",
- " return response\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "AdU8VMTIOWLZ"
- },
- "source": [
- "# Get Data"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "Xm_St_kWOYI-",
- "outputId": "395a1e93-472d-4df2-c534-71d283dd4611"
- },
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "Mounted at /content/drive/\n"
- ]
- }
- ],
- "source": [
- "from google.colab import drive\n",
- "drive.mount('/content/drive/', force_remount=True)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "XhbCA2tkR45b"
- },
- "source": [
- "## Get Merged Dict"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "dGYh5bDyRfTg"
- },
- "outputs": [],
- "source": [
- "merged_dict_path = \"/content/drive/MyDrive/merged_dict_new.csv\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "WV2x_iLQRhHI"
- },
- "outputs": [],
- "source": [
- "merged_dict_df = pd.read_csv(merged_dict_path)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "NTDIcLdNUbNX"
- },
- "outputs": [],
- "source": [
- "merged_dict_df.shape"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "JoW9aygRdcP6"
- },
- "outputs": [],
- "source": [
- "consonants_regex = '(?=' + '|'.join(['q', 'r', 't', 'y', 'p', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', 'Q', 'R', 'T', 'Y', 'P', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M' ]) + ')'\n",
- "vowels_regex = '(?=' + '|'.join(['a', 'A', 'e', 'i', 'u', 'o']) + ')'"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "OJTyOEoMR-cV"
- },
- "outputs": [],
- "source": [
- "merged_dict = {}\n",
- "\n",
- "for idx, row in merged_dict_df.iterrows():\n",
- " g, p = row['grapheme'], ''.join(eval(row['phoneme']))\n",
- " if g not in merged_dict: merged_dict[g] = []\n",
- " p = re.sub(rf'([^\\w\\-\\?]|^){vowels_regex}', r'\\1?', p)\n",
- " merged_dict[g].append(p)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "sIUx62uakGV5"
- },
- "outputs": [],
- "source": [
- "phoneme_to_finglish_map = {\n",
- " 'A': 'aa',\n",
- " 'S': 'Sh',\n",
- " 'Z': 'Zh',\n",
- " 'q': 'Gh',\n",
- " 'x': 'Kh',\n",
- " 'u': 'oo',\n",
- " '?': \"'\",\n",
- " 'C': 'Ch'\n",
- "}\n",
- "\n",
- "def replace_phonetic_characters(input_string, char_map):\n",
- " # Create a translation table using str.maketrans\n",
- " translation_table = str.maketrans(char_map)\n",
- "\n",
- " # Use str.translate to replace characters based on the translation table\n",
- " return input_string.translate(translation_table)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "KDTDCjph8Bhe"
- },
- "outputs": [],
- "source": [
- "re.sub(\"([^\\w\\-\\?]|^)'\", r'\\1', \"-'ali\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "feybHtoF7SUq"
- },
- "outputs": [],
- "source": [
- "finglish_merged_dict = {}\n",
- "\n",
- "for k, vs in merged_dict.items():\n",
- " finglish_vs = []\n",
- " for v in vs:\n",
- " p = replace_phonetic_characters(v, phoneme_to_finglish_map)\n",
- " p = re.sub(\"([^\\w\\-\\?]|^)'\", r'\\1', p)\n",
- " finglish_vs.append(p)\n",
- "\n",
- " finglish_merged_dict[k] = finglish_vs"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "99n9orsuMwqe"
- },
- "outputs": [],
- "source": [
- "inverted_finglish_merged_dict = {}\n",
- "\n",
- "for key, value_list in finglish_merged_dict.items():\n",
- " for value in value_list:\n",
- " inverted_finglish_merged_dict[value] = key"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "ujrYr29iy9TJ"
- },
- "outputs": [],
- "source": [
- "inverted_merged_dict = {}\n",
- "\n",
- "for key, value_list in merged_dict.items():\n",
- " for value in value_list:\n",
- " inverted_merged_dict[value] = key"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "OoaIwa8nOegN"
- },
- "outputs": [],
- "source": [
- "def word_in_dict(word, inverted_dictionary=inverted_finglish_merged_dict):\n",
- " return word in inverted_dictionary"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "2F06noXfhFoy"
- },
- "source": [
- "# Define post-processing"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "yU6OkQU1PZ_E"
- },
- "outputs": [],
- "source": [
- "output_to_finglish_map = {\n",
- " 'м': 'm',\n",
- " 'ʷ': 'v',\n",
- " 'w': 'v',\n",
- " 'q': 'Gh',\n",
- " 'x': 'Kh',\n",
- " 'u': 'oo',\n",
- " '?': \"'\",\n",
- " # 'ɔ': '?',\n",
- " 'ĉ': 'Ch',\n",
- " 'č': 'Ch',\n",
- " '̕': \"'\",\n",
- " # \"'\": '',\n",
- " 'ʔ': \"'\",\n",
- " 'ꞌ': \"'\",\n",
- " '̛': \"'\",\n",
- " '’': \"'\",\n",
- " 'ʼ': \"'\",\n",
- " 'ʿ': \"'\",\n",
- " '̓': '',\n",
- " 'â': 'aa',\n",
- " 'â': 'aa',\n",
- " 'ȃ': 'aa',\n",
- " 'c': 'k',\n",
- " 'ž': 'Zh',\n",
- " 'š': 'Sh',\n",
- " 'W': 'v',\n",
- " 'β': 'f',\n",
- " 'е': 'e',\n",
- " 'х': 'Kh',\n",
- " '`': \"'\",\n",
- " 'ɑ': 'aa',\n",
- " 'ɑ': 'aa',\n",
- " 'ʃ': 'Sh',\n",
- " 'ð': 'z',\n",
- " 'ɾ': 'r',\n",
- " 'æ': 'a',\n",
- " 'ɪ': 'e',\n",
- " 'χ': 'Kh',\n",
- " 'ɣ': 'Gh',\n",
- " 'ʒ': 'Zh',\n",
- " ':': '',\n",
- " 'ā': 'aa',\n",
- " 'ː': '',\n",
- " 'ä': 'aa',\n",
- " 'á': 'aa',\n",
- " 'š': 'Sh',\n",
- " 'ū': 'oo',\n",
- " # 'û': 'oo', # Not sure\n",
- " 'ś': 's',\n",
- " 'ī': 'i',\n",
- " # 'í': 'i', # Not sure\n",
- " 'î': 'i',\n",
- " 'é': 'e', #\n",
- " 'ḥ': 'h',\n",
- " 'ɒ': 'aa',\n",
- " 'ʰ': 'h',\n",
- " 'ə': 'e',\n",
- " 'R': 'r',\n",
- " 'W': 'v',\n",
- " 'Q': 'q',\n",
- " 'T': 't',\n",
- " 'Y': 'y',\n",
- " 'P': 'p',\n",
- " 'D': 'd',\n",
- " 'F': 'f',\n",
- " 'H': 'h',\n",
- " 'J': 'j',\n",
- " 'L': 'l',\n",
- " 'X': 'Kh',\n",
- " 'V': 'v',\n",
- " 'B': 'b',\n",
- " 'N': 'n',\n",
- " 'M': 'm',\n",
- " 'K': 'k',\n",
- " 'G': 'g',\n",
- " 'U': 'u',\n",
- " 'O': 'o',\n",
- " 'I': 'i',\n",
- " 'E': 'e',\n",
- " 'ا': 'aa',\n",
- " 'ب': 'b',\n",
- " 'پ': 'p',\n",
- " 'ت': 't',\n",
- " 'ث': 's',\n",
- " 'ج': 'j',\n",
- " 'چ': 'Ch',\n",
- " 'ح': 'h',\n",
- " 'خ': 'Kh',\n",
- " 'د': 'd',\n",
- " 'ذ': 'z',\n",
- " 'ر': 'r',\n",
- " 'ز': 'z',\n",
- " 'ژ': 'Zh',\n",
- " 'س': 's',\n",
- " 'ش': 'Sh',\n",
- " 'ص': 's',\n",
- " 'ض': 'z',\n",
- " 'ط': 't',\n",
- " 'ظ': 'z',\n",
- " 'ع': \"'\",\n",
- " 'غ': 'Gh',\n",
- " 'ف': 'f',\n",
- " 'ق': 'Gh',\n",
- " 'ک': 'k',\n",
- " 'گ': 'g',\n",
- " 'ل': 'l',\n",
- " 'م': 'm',\n",
- " 'ن': 'n',\n",
- " 'و': 'v',\n",
- " 'ه': 'h',\n",
- " 'ی': 'y',\n",
- " 'ء': \"'\",\n",
- " 'ئ': \"'\",\n",
- " 'ؤ': \"o'\",\n",
- " 'آ': 'aa',\n",
- " 'أ': \"a'\",\n",
- " 'إ': \"e'\",\n",
- " 'ۀ': 'eye',\n",
- " 'ŋ': 'ng',\n",
- " '.': '',\n",
- " 'ɛ': 'e',\n",
- " 'ʊ': 'oo',\n",
- " \"ˈ\": \"'\",\n",
- " 'ù': 'oo',\n",
- " 'θ': 's',\n",
- " '̪': '',\n",
- " 'ũ': 'oo',\n",
- " '_': ''\n",
- "}\n",
- "\n",
- "output_to_finglish_map_preserve_phonetics = {\n",
- " 'м': 'm',\n",
- " 'ʷ': 'v',\n",
- " 'w': 'v',\n",
- " 'x': 'x',\n",
- " # 'ɔ': '?',\n",
- " 'ĉ': 'C',\n",
- " 'č': 'C',\n",
- " '̕': \"?\",\n",
- " # \"'\": '',\n",
- " 'ʔ': \"?\",\n",
- " 'ꞌ': \"?\",\n",
- " '̛': \"?\",\n",
- " '’': \"?\",\n",
- " 'ʼ': \"?\",\n",
- " 'ʿ': \"?\",\n",
- " 'â': 'A',\n",
- " 'â': 'A',\n",
- " 'ȃ': 'A',\n",
- " 'ž': 'Z',\n",
- " 'š': 'S',\n",
- " 'W': 'v',\n",
- " 'β': 'f',\n",
- " 'е': 'e',\n",
- " 'х': 'x',\n",
- " '`': \"?\",\n",
- " 'ɑ': 'A',\n",
- " 'ɑ': 'A',\n",
- " 'ʃ': 'S',\n",
- " 'ð': 'z',\n",
- " 'ɾ': 'r',\n",
- " 'æ': 'a',\n",
- " 'ɪ': 'e',\n",
- " 'χ': 'x',\n",
- " 'ɣ': 'q',\n",
- " 'ʒ': 'Z',\n",
- " ':': '',\n",
- " 'ā': 'A',\n",
- " 'ː': '',\n",
- " 'ä': 'A',\n",
- " 'á': 'A',\n",
- " 'š': 'S',\n",
- " 'ū': 'u',\n",
- " # 'û': 'oo', # Not sure\n",
- " 'ś': 's',\n",
- " 'ī': 'i',\n",
- " # 'í': 'i', # Not sure\n",
- " 'î': 'i',\n",
- " 'é': 'e', #\n",
- " 'ḥ': 'h',\n",
- " 'ɒ': 'A',\n",
- " 'ʰ': 'h',\n",
- " 'ə': 'e',\n",
- " 'R': 'r',\n",
- " 'W': 'v',\n",
- " 'Q': 'q',\n",
- " 'T': 't',\n",
- " 'Y': 'y',\n",
- " 'P': 'p',\n",
- " 'D': 'd',\n",
- " 'F': 'f',\n",
- " 'H': 'h',\n",
- " 'J': 'j',\n",
- " 'L': 'l',\n",
- " 'X': 'x',\n",
- " 'V': 'v',\n",
- " 'B': 'b',\n",
- " 'N': 'n',\n",
- " 'M': 'm',\n",
- " 'U': 'u',\n",
- " 'O': 'o',\n",
- " 'I': 'i',\n",
- " 'E': 'e',\n",
- " 'ا': 'aa',\n",
- " 'ب': 'b',\n",
- " 'پ': 'p',\n",
- " 'ت': 't',\n",
- " 'ث': 's',\n",
- " 'ج': 'j',\n",
- " 'چ': 'Ch',\n",
- " 'ح': 'h',\n",
- " 'خ': 'Kh',\n",
- " 'د': 'd',\n",
- " 'ذ': 'z',\n",
- " 'ر': 'r',\n",
- " 'ز': 'z',\n",
- " 'ژ': 'Zh',\n",
- " 'س': 's',\n",
- " 'ش': 'Sh',\n",
- " 'ص': 's',\n",
- " 'ض': 'z',\n",
- " 'ط': 't',\n",
- " 'ظ': 'z',\n",
- " 'ع': \"'\",\n",
- " 'غ': 'Gh',\n",
- " 'ف': 'f',\n",
- " 'ق': 'Gh',\n",
- " 'ک': 'k',\n",
- " 'گ': 'g',\n",
- " 'ل': 'l',\n",
- " 'م': 'm',\n",
- " 'ن': 'n',\n",
- " 'و': 'v',\n",
- " 'ه': 'h',\n",
- " 'ی': 'y',\n",
- " 'ء': \"'\",\n",
- " 'ئ': \"'\",\n",
- " 'ؤ': \"o'\",\n",
- " 'آ': 'aa',\n",
- " 'أ': \"a'\",\n",
- " 'إ': \"e'\",\n",
- " 'ۀ': 'eye',\n",
- " 'ŋ': 'ng',\n",
- " '.': '',\n",
- " 'ɛ': 'e',\n",
- " 'ʊ': 'u',\n",
- " \"ˈ\": '?',\n",
- " 'ù': 'u',\n",
- " 'θ': 's',\n",
- " '̪': '',\n",
- " 'ũ': 'u',\n",
- " '_': ''\n",
- "}\n",
- "\n",
- "def replace_LLM_characters(input_string, char_map):\n",
- " substituted = re.sub(r'tʃʰ', 'ch', input_string)\n",
- " substituted = re.sub('tʃ', 'ch', substituted)\n",
- " substituted = re.sub(r't͡S', 'ch', substituted)\n",
- " substituted = re.sub(r'kʰ', 'k', substituted)\n",
- " substituted = re.sub(r'pʰ', 'p', substituted)\n",
- " substituted = re.sub(r'tʰ', 't', substituted)\n",
- " substituted = re.sub(r'ow', 'o', substituted)\n",
- " substituted = re.sub('dʒ', 'j', substituted)\n",
- "\n",
- " # Create a translation table using str.maketrans\n",
- " translation_table = str.maketrans(char_map)\n",
- "\n",
- " # Use str.translate to replace characters based on the translation table\n",
- " translated = substituted.translate(translation_table)\n",
- "\n",
- " # ee -> to i or yi like binaee and jan-haee and tasheeli\n",
- " # ii as well. like in ashnaii\n",
- "\n",
- " # eh -> e like in boodjeh-ha\n",
- "\n",
- " # ow -> o\n",
- " # w -> v\n",
- " # but not always\n",
- " return translated"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "5gt9lEDhEp_d"
- },
- "outputs": [],
- "source": [
- "def get_finglish_consonants(word):\n",
- " char_map = {\n",
- " 'ا': '', 'ب': 'b', 'پ': 'p', 'ت': 't', 'ث': 's', 'ج': 'j', 'چ': 'Ch',\n",
- " 'ح': 'h', 'خ': 'Kh', 'د': 'd', 'ذ': 'z', 'ر': 'r', 'ز': 'z', 'ژ': 'Zh',\n",
- " 'س': 's', 'ش': 'Sh', 'ص': 's', 'ض': 'z', 'ط': 't', 'ظ': 'z', 'ع': \"'\",\n",
- " 'غ': 'Gh', 'ف': 'f', 'ق': 'Gh', 'ک': 'k', 'گ': 'g', 'ل': 'l', 'م': 'm',\n",
- " 'ن': 'n', 'و': 'v', 'ه': 'h', 'ی': 'y', 'ء': \"'\",'ئ': \"'\", 'ؤ': \"'\",\n",
- " 'آ': '', 'أ': \"'\", 'إ': \"'\", 'ۀ': 'y'\n",
- " }\n",
- " mapped_string = ''.join(char_map.get(char, char) for char in word)\n",
- " return mapped_string"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "FXWS_bCsHH9B"
- },
- "outputs": [],
- "source": [
- "def get_updated_span(match_span, displacements):\n",
- " new_start, new_end = match_span[0], match_span[1]\n",
- " for start, displacement in displacements:\n",
- " if start <= new_start:\n",
- " new_start += displacement\n",
- " new_end += displacement\n",
- "\n",
- " return (new_start, new_end)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "vDgHkWhBSZM_"
- },
- "outputs": [],
- "source": [
- "output_to_phonetics_map = {\n",
- " 'м': 'm',\n",
- " 'ʷ':' v',\n",
- " 'w': 'v',\n",
- " # 'ɔ': '?',\n",
- " 'c': 'k',\n",
- " 'ĉ': 'C',\n",
- " 'č': 'C',\n",
- " '̕': \"?\",\n",
- " \"'\": '?',\n",
- " 'ʔ': \"?\",\n",
- " 'ꞌ': \"?\",\n",
- " '̛': \"?\",\n",
- " '’': \"?\",\n",
- " 'ʼ': \"?\",\n",
- " \"'\": '?',\n",
- " 'â': 'A',\n",
- " 'â': 'A',\n",
- " 'ȃ': 'A',\n",
- " 'ž': 'Z',\n",
- " 'š': 'S',\n",
- " 'W': 'v',\n",
- " 'β': 'f',\n",
- " 'е': 'e',\n",
- " '`': \"?\",\n",
- " 'ɑ': 'A',\n",
- " 'ɑ': 'A',\n",
- " 'ʃ': 'S',\n",
- " 'ð': 'z',\n",
- " 'ɾ': 'r',\n",
- " 'æ': 'a',\n",
- " 'ɪ': 'e',\n",
- " 'χ': 'x',\n",
- " 'ɣ': 'q',\n",
- " 'ʒ': 'Z',\n",
- " ':': '',\n",
- " 'ː': '',\n",
- " 'ā': 'A',\n",
- " 'ː': '',\n",
- " 'ä': 'A',\n",
- " 'á': 'A',\n",
- " 'š': 'S',\n",
- " 'ū': 'u',\n",
- " 'û': 'u',\n",
- " 'ś': 's',\n",
- " 'ī': 'i',\n",
- " 'í': 'i',\n",
- " 'î': 'i',\n",
- " 'é': 'e',\n",
- " 'ḥ': 'h',\n",
- " 'ɒ': 'A',\n",
- " 'ʰ': '',\n",
- " 'ə': 'e',\n",
- " 'R': 'r',\n",
- " 'W': 'v',\n",
- " 'Q': 'q',\n",
- " 'T': 't',\n",
- " 'Y': 'y',\n",
- " 'P': 'p',\n",
- " 'D': 'd',\n",
- " 'F': 'f',\n",
- " 'H': 'h',\n",
- " 'J': 'j',\n",
- " 'L': 'l',\n",
- " 'X': 'x',\n",
- " 'V': 'v',\n",
- " 'B': 'b',\n",
- " 'N': 'n',\n",
- " 'M': 'm',\n",
- " 'K': 'k',\n",
- " 'G': 'g',\n",
- " 'U': 'u',\n",
- " 'O': 'o',\n",
- " 'I': 'i',\n",
- " 'E': 'e',\n",
- " 'ا': 'A',\n",
- " 'ب': 'b',\n",
- " 'پ': 'p',\n",
- " 'ت': 't',\n",
- " 'ث': 's',\n",
- " 'ج': 'j',\n",
- " 'چ': 'C',\n",
- " 'ح': 'h',\n",
- " 'خ': 'x',\n",
- " 'د': 'd',\n",
- " 'ذ': 'z',\n",
- " 'ر': 'r',\n",
- " 'ز': 'z',\n",
- " 'ژ': 'Z',\n",
- " 'س': 's',\n",
- " 'ش': 'S',\n",
- " 'ص': 's',\n",
- " 'ض': 'z',\n",
- " 'ط': 't',\n",
- " 'ظ': 'z',\n",
- " 'ع': \"?\",\n",
- " 'غ': 'q',\n",
- " 'ف': 'f',\n",
- " 'ق': 'q',\n",
- " 'ک': 'k',\n",
- " 'گ': 'g',\n",
- " 'ل': 'l',\n",
- " 'م': 'm',\n",
- " 'ن': 'n',\n",
- " 'و': 'v',\n",
- " 'ه': 'h',\n",
- " 'ی': 'y',\n",
- " 'ء': \"?\",\n",
- " 'ئ': \"?\",\n",
- " 'ؤ': \"o?\",\n",
- " 'آ': 'A',\n",
- " 'أ': \"a?\",\n",
- " 'إ': \"e?\",\n",
- " 'ۀ': 'eye',\n",
- " 'ŋ': 'ng',\n",
- " '.': '',\n",
- " 'ɛ': 'e',\n",
- " 'ʊ': 'u',\n",
- " \"ˈ\": '?',\n",
- " 'ù': 'u',\n",
- " 'θ': 's',\n",
- " '̪': '',\n",
- " 'ũ': 'u',\n",
- " '_': '',\n",
- " 'ç': 'C',\n",
- " 'ĝ': 'q',\n",
- " 'ɢ': 'q',\n",
- " 'ː': '',\n",
- " 'í': 'i',\n",
- " 'ŝ': 'S',\n",
- " '!': '',\n",
- " 'ǧ': 'q',\n",
- " 'ʻ': '?',\n",
- " 'è': 'e',\n",
- " '�': '',\n",
- " 'ú': 'u',\n",
- " 'ô': 'o',\n",
- " 'ē': 'e',\n",
- " 'à': 'A',\n",
- " 'ă': 'A',\n",
- " 'ǐ': 'i',\n",
- " 'ü': 'u',\n",
- " '\\u200e': '',\n",
- " 'ğ': 'q',\n",
- " 'ṣ': 'S',\n",
- " 'â': 'A',\n",
- " 'â': 'A',\n",
- " 'ȃ': 'A',\n",
- " 'ž': 'Z',\n",
- " 'š': 'S',\n",
- " 'ā': 'A',\n",
- " 'ː': '',\n",
- " 'ä': 'A',\n",
- " 'á': 'A',\n",
- " 'š': 'S',\n",
- " 'ū': 'u',\n",
- " 'û': 'u',\n",
- " 'ś': 'S',\n",
- " 'ī': 'i',\n",
- " 'í': 'i',\n",
- " 'î': 'i',\n",
- " 'é': 'e',\n",
- "}\n",
- "\n",
- "consonants_regex = '(?=' + '|'.join(['q', 'r', 't', 'y', 'p', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', 'Q', 'R', 'T', 'Y', 'P', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Z', 'X', 'C', 'V', 'B', 'N', 'M' ]) + ')'\n",
- "vowels_regex = '(?=' + '|'.join(['a', 'A', 'e', 'i', 'u', 'o']) + ')'\n",
- "\n",
- "\n",
- "def replace_LLM_phonetic_characters(input_string, char_map, from_phonetics=False):\n",
- " if not from_phonetics:\n",
- " try:\n",
- " input_string = re.sub(r'Sh', 'S', input_string)\n",
- " input_string = re.sub(r'Ch', 'C', input_string)\n",
- " input_string = re.sub(r'Zh', 'Z', input_string)\n",
- " input_string = re.sub(r'Gh', 'q', input_string)\n",
- " input_string = re.sub(r'Kh', 'x', input_string)\n",
- " except:\n",
- " print(input_string)\n",
- "\n",
- " substituted = re.sub(r'ch', 'C', input_string)\n",
- "\n",
- " substituted = re.sub(r'tʃʰ', 'C', substituted)\n",
- " substituted = re.sub(r'tʃ', 'C', substituted)\n",
- " substituted = re.sub(r't͡S', 'C', substituted)\n",
- " substituted = re.sub(r'ow', 'o', substituted)\n",
- " substituted = re.sub('dʒ', 'j', substituted)\n",
- "\n",
- " # Create a translation table using str.maketrans\n",
- " translation_table = str.maketrans(char_map)\n",
- "\n",
- " # Use str.translate to replace characters based on the translation table\n",
- " translated = substituted.translate(translation_table)\n",
- "\n",
- " substituted = re.sub('ee', 'i', translated)\n",
- " substituted = re.sub('ii', 'i', substituted)\n",
- " substituted = re.sub('oo', 'u', substituted)\n",
- " substituted = re.sub('uu', 'u', substituted)\n",
- " substituted = re.sub('aa', 'A', substituted)\n",
- " substituted = re.sub('AA', 'A', substituted)\n",
- " substituted = re.sub('Aa', 'A', substituted)\n",
- " substituted = re.sub('aA', 'A', substituted)\n",
- " # substituted = re.sub(rf'(?:\\b(ch)|(ch){consonants_regex}|(ch)\\b)', 'C', substituted)\n",
- " # substituted = re.sub(rf'(?:\\b(Ch)|(Ch){consonants_regex}|(Ch)\\b)', 'C', substituted)\n",
- " substituted = re.sub(rf'(?:\\b(sh)|(sh){consonants_regex}|(sh)\\b)', 'S', substituted)\n",
- " # substituted = re.sub(rf'(?:\\b(Sh)|(Sh){consonants_regex}|(Sh)\\b)', 'S', substituted)\n",
- " substituted = re.sub(rf'(?:\\b(kh)|(kh){consonants_regex}|(kh)\\b)', 'x', substituted)\n",
- " # substituted = re.sub(rf'(?:\\b(Kh)|(Kh){consonants_regex}|(Kh)\\b)', 'x', substituted)\n",
- " substituted = re.sub(rf'(?:\\b(zh)|(zh){consonants_regex}|(zh)\\b)', 'Z', substituted)\n",
- " # substituted = re.sub(rf'(?:\\b(Zh)|(Zh){consonants_regex}|(Zh)\\b)', 'Z', substituted)\n",
- " substituted = re.sub(rf'(?:\\b(gh)|(gh){consonants_regex}|(gh)\\b)', 'q', substituted)\n",
- " # substituted = re.sub(rf'(?:\\b(Gh)|(Gh){consonants_regex}|(Zh)\\b)', 'Z', substituted)\n",
- "\n",
- " substituted = re.sub(rf'([^\\w\\-\\?]|^){vowels_regex}', r'\\1?', substituted)\n",
- " # ee -> to i or yi like binaee and jan-haee and tasheeli\n",
- " # ii as well. like in ashnaii\n",
- "\n",
- " # eh -> e like in boodjeh-ha\n",
- "\n",
- " # ow -> o\n",
- " # w -> v\n",
- " # but not always\n",
- "\n",
- " substituted = substituted.replace('?output=[', '')\n",
- " substituted = substituted.replace('[?output=', '')\n",
- " substituted = substituted.replace('output=[', '')\n",
- " substituted = substituted.replace('[output=', '')\n",
- " substituted = substituted.replace('output=', '')\n",
- " substituted = substituted.replace('output', '')\n",
- " substituted = substituted.replace('[', '')\n",
- " substituted = substituted.replace(']', '')\n",
- " substituted = substituted.replace('=', '')\n",
- "\n",
- " substituted = re.sub(r'[^a-zA-Z\\?\\s]', '', substituted)\n",
- "\n",
- " return substituted"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "wYukaprhIOJf"
- },
- "outputs": [],
- "source": [
- "def fix_ambiguities(model_text, gt_text):\n",
- " # fix sh\n",
- " i = 0\n",
- " for c in gt_text:\n",
- " if c in 'سصث':\n",
- " while i < len(model_text) - 1:\n",
- " i += 1\n",
- " if model_text[i] in 'sS': break\n",
- "\n",
- " if c == 'ش':\n",
- " while i < len(model_text) - 2:\n",
- " i += 1\n",
- " if model_text[i] == 'S' and model_text[i + 1] != 'h': break\n",
- " if model_text[i] in 'Ss' and model_text[i + 1] == 'h':\n",
- " model_text = model_text[:i] + 'S' + model_text[i + 2:]\n",
- " break\n",
- "\n",
- " if i >= len(model_text) - 1: break\n",
- "\n",
- " # fix zh\n",
- " i = 0\n",
- " for c in gt_text:\n",
- " if c in 'زذضظ':\n",
- " while i < len(model_text) - 1:\n",
- " i += 1\n",
- " if model_text[i] in 'zZ': break\n",
- "\n",
- " if c == 'ژ':\n",
- " while i < len(model_text) - 2:\n",
- " i += 1\n",
- " if model_text[i] == 'Z' and model_text[i + 1] != 'h': break\n",
- " if model_text[i] in 'zZ' and model_text[i + 1] == 'h':\n",
- " model_text = model_text[:i] + 'Z' + model_text[i + 2:]\n",
- " break\n",
- "\n",
- " if i >= len(model_text) - 1: break\n",
- "\n",
- "\n",
- " # fix kh\n",
- " i = 0\n",
- " for c in gt_text:\n",
- " if c == 'ک':\n",
- " while i < len(model_text) - 1:\n",
- " i += 1\n",
- " if model_text[i] in 'kK': break\n",
- "\n",
- " if c == 'خ':\n",
- " while i < len(model_text) - 2:\n",
- " i += 1\n",
- " if model_text[i] in 'xX': break\n",
- " if model_text[i] in 'kK' and model_text[i + 1] == 'h':\n",
- " model_text = model_text[:i] + 'x' + model_text[i + 2:]\n",
- " break\n",
- "\n",
- " if i >= len(model_text) - 1: break\n",
- "\n",
- "\n",
- " # fix gh\n",
- " i = 0\n",
- " for c in gt_text:\n",
- " if c == 'گ':\n",
- " while i < len(model_text) - 1:\n",
- " i += 1\n",
- " if model_text[i] in 'Gg': break\n",
- "\n",
- " if c in 'غق':\n",
- " while i < len(model_text) - 2:\n",
- " i += 1\n",
- " if model_text[i] == 'q': break\n",
- " if model_text[i] in 'Gg' and model_text[i + 1] == 'h':\n",
- " model_text = model_text[:i] + 'q' + model_text[i + 2:]\n",
- " break\n",
- "\n",
- " if i >= len(model_text) - 1: break\n",
- "\n",
- " return model_text"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "LIUcYVuoBSgY"
- },
- "outputs": [],
- "source": [
- "def substitute_by_dict(model_text, gt_text):\n",
- " subwords = []\n",
- " matched_spans = set()\n",
- " for match in re.finditer(r\"(\\?|\\w|')+(?=[^\\?\\w']|$)\", model_text):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- "\n",
- " finglish_text = replace_LLM_characters(match_text, output_to_finglish_map)\n",
- " if finglish_text in inverted_finglish_merged_dict and inverted_finglish_merged_dict[finglish_text] in gt_text:\n",
- " max_sim, max_sim_p = -1, ''\n",
- " for p in merged_dict[inverted_finglish_merged_dict[finglish_text]]:\n",
- " phonetic_text = replace_LLM_phonetic_characters(finglish_text, output_to_phonetics_map)\n",
- " sim = SequenceMatcher(None, phonetic_text, p).ratio()\n",
- " if sim > max_sim:\n",
- " max_sim = sim\n",
- " max_sim_p = p\n",
- "\n",
- " gt_text = gt_text.replace(inverted_finglish_merged_dict[finglish_text], '')\n",
- " subwords.append((match_span, max_sim_p))\n",
- " matched_spans.add(match_span)\n",
- "\n",
- " for match in re.finditer(r\"(\\?|\\w|')+(?=[^\\?\\w']|$)\", model_text):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- "\n",
- " if match_span in matched_spans: continue\n",
- " if not 'sh' in match_text and not 'kh' in match_text and not 'zh' in match_text and not 'Sh' in match_text and not 'Kh' in match_text and not 'Zh' in match_text: continue\n",
- "\n",
- " finglish_text = replace_LLM_characters(match_text, output_to_finglish_map)\n",
- " consonant_finglish = re.sub(r'(е|e|i|u|o|a|ā|ä|â|ā|ɒ|á|A)', '', finglish_text)\n",
- "\n",
- " for gt_match in re.finditer(r\"(\\?|\\w|')+(?=[^\\?\\w']|$)\", gt_text):\n",
- " gt_match_text = gt_match.group()\n",
- " gt_match_span = gt_match.span()\n",
- "\n",
- " gt_consonant_finglish = get_finglish_consonants(gt_match_text)\n",
- " if SequenceMatcher(None, consonant_finglish, gt_consonant_finglish).ratio() > 0.65:\n",
- " subwords.append((match_span, fix_ambiguities(match_text, gt_match_text)))\n",
- "\n",
- " displacements = []\n",
- " for span, replacement in subwords:\n",
- " updates_span = get_updated_span(span, displacements)\n",
- " model_text = model_text[:updates_span[0]] + replacement + model_text[updates_span[1]:]\n",
- " displacements.append((updates_span[0], len(replacement) - (updates_span[1] - updates_span[0])))\n",
- "\n",
- " return model_text"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "-g8h4TmnJW_t"
- },
- "outputs": [],
- "source": [
- "def get_known_words(graphemes, multiple_choices=True, dictionary=finglish_merged_dict):\n",
- " words = re.split('\\W+', graphemes)\n",
- " if multiple_choices:\n",
- " return '\\n'.join(f'{w}: {\", \".join(dictionary[w])}' for w in words if w in dictionary)\n",
- "\n",
- " return '\\n'.join(f'{w}: {\", \".join(dictionary[w])}' for w in words if w in dictionary and len(dictionary[w]) <= 1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "VAIfX2ZX6dm0"
- },
- "outputs": [],
- "source": [
- "def correct_output_by_llm_and_dict_info_finglish(grapheme, output, multi=True):\n",
- " matches = None\n",
- "\n",
- " input_words = 0\n",
- " output_words = 0\n",
- "\n",
- " while not matches:\n",
- " messages = [\n",
- " {\n",
- " \"role\": \"system\",\n",
- " \"content\": \"A model was used to convert Persian sentences into Finglish (Persian written in the Latin alphabet). We have a dictionary with Finglish of some of the words. You are an assistant that corrects the Finglish output of the model choosing the right information from that dictionary. Be careful not to remove the connective Ezafe phonemes '-e' and '-ye' and show ع, ئ, and ٔ with '.\"\n",
- " },\n",
- " {\n",
- " \"role\": \"user\",\n",
- " \"content\": f'''Here is the original Persian sentence: [{grapheme}].\n",
- " Here is the Fingish output of the model: [{output}].\n",
- " Here is the Finglish to some words I found from dictionary:\n",
- " {get_known_words(grapheme, multiple_choices=multi, dictionary=finglish_merged_dict)}.\n",
- " Please return the corrected Finglish of the Persian sentence in brackets like output=[].'''\n",
- " }]\n",
- "\n",
- " response = get_response(messages, 'qwen/qwen-2-7b-instruct:free', 'openrouter')\n",
- "\n",
- " input_words += len(re.split('\\w*', messages[0]['content'])) + len(re.split('\\w*', messages[1]['content']))\n",
- " output_words += len(re.split('\\w*', response))\n",
- "\n",
- " matches = re.findall(r'\\[[^\\]]+\\]', response)\n",
- "\n",
- " if matches:\n",
- " output = matches[0].strip('[]')\n",
- " output = replace_LLM_characters(output, output_to_finglish_map)\n",
- " return output, input_words, output_words"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "5ecY2Kv3_PKX"
- },
- "outputs": [],
- "source": [
- "def correct_output_by_llm_and_dict_info_phonetic(grapheme, output, multi=True):\n",
- " matches = None\n",
- "\n",
- " input_words = 0\n",
- " output_words = 0\n",
- "\n",
- " while not matches:\n",
- " messages = [\n",
- " {\n",
- " \"role\": \"system\",\n",
- " \"content\": \"A model was used to convert Persian sentences into phonemes. We have a dictionary with phoneme of some of the words. You are an assistant that corrects the phoneme output of the model choosing the right information from that dictionary. Be careful not to remove the connective Ezafe phonemes '-e' and '-ye' and show ع, ئ, and ٔ with ?.\"\n",
- " },\n",
- " {\n",
- " \"role\": \"user\",\n",
- " \"content\": f'''Here is the original Persian sentence: [{grapheme}].\n",
- " Here is the phoneme output of the model: [{output}].\n",
- " Here is the phoneme to some words I found from dictionary:\n",
- " {get_known_words(grapheme, multiple_choices=multi, dictionary=merged_dict)}.\n",
- " Please return the corrected phoneme of the Persian sentence in brackets like output=[].'''\n",
- " }]\n",
- "\n",
- " response = get_response(messages, 'qwen/qwen-2-7b-instruct:free', 'openrouter')\n",
- "\n",
- " input_words += len(re.split('\\w*', messages[0]['content'])) + len(re.split('\\w*', messages[1]['content']))\n",
- " output_words += len(re.split('\\w*', response))\n",
- "\n",
- " matches = re.findall(r'\\[[^\\]]+\\]', response)\n",
- "\n",
- " if matches:\n",
- " output = matches[0].strip('[]')\n",
- " output = substitute_by_dict(replace_LLM_phonetic_characters(output, output_to_phonetics_map), grapheme)\n",
- " return output, input_words, output_words"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "Fln22mqv6_wa"
- },
- "outputs": [],
- "source": [
- "def replace_words_with_dict(text, dictionary=finglish_merged_dict):\n",
- " pattern = r'\\b\\w+\\b'\n",
- "\n",
- " modified_text = re.sub(pattern, lambda match: f'{dictionary[match.group()][0]}' if match.group() in dictionary and len(dictionary[match.group()]) == 1 else match.group(), text)\n",
- "\n",
- " return modified_text"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "ebGHh6gS8lUs"
- },
- "outputs": [],
- "source": [
- "def get_known_words_list(graphemes, multiple_choices=True, dictionary=finglish_merged_dict):\n",
- " words = re.split('\\W+', graphemes)\n",
- " if multiple_choices:\n",
- " return [(w, dictionary[w]) for w in words if w in dictionary]\n",
- "\n",
- " return [(w, dictionary[w]) for w in words if w in dictionary and len(dictionary[w]) <= 1]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "RqDSYQ328nY7"
- },
- "outputs": [],
- "source": [
- "def substitute_output_by_dict(grapheme, output, dictionary=finglish_merged_dict):\n",
- " ACCEPTED_THRESHOLD = 0.65\n",
- " output = re.sub(r'([^еeiuoaāäâāɒáA])(-i)', r'\\1i', output)\n",
- "\n",
- " alternatives = get_known_words_list(grapheme, dictionary=dictionary)\n",
- " output_words = re.split('[^-\\w\\?]+', output)\n",
- " pairs = []\n",
- "\n",
- " graphemes = []\n",
- " for grapheme, phonemes in alternatives:\n",
- " graphemes.append(grapheme)\n",
- " # print(f\"we are checking word {grapheme} with phonejmes {phonemes}\")\n",
- " for j, phoneme in enumerate(phonemes):\n",
- " for i, word in enumerate(output_words):\n",
- " pairs.append((SequenceMatcher(None, phoneme, word).ratio(), phoneme, word, grapheme))\n",
- "\n",
- " sorted_pairs = sorted(pairs, key=lambda x: x[0], reverse=True)\n",
- " # print(sorted_pairs)\n",
- "\n",
- " for score, phoneme, output_word, grapheme in sorted_pairs:\n",
- " if score < ACCEPTED_THRESHOLD: break\n",
- " if grapheme not in graphemes: continue\n",
- " graphemes.remove(grapheme)\n",
- "\n",
- " if output_word.endswith('-e'):\n",
- " output = re.sub(rf'(\\W)({re.escape(output_word)})(\\W)', rf\"\\1{phoneme + '-e'}\\3\", output)\n",
- "\n",
- " elif output_word.endswith('-ye'):\n",
- " output = re.sub(rf'(\\W)({re.escape(output_word)})(\\W)', rf\"\\1{phoneme + '-ye'}\\3\", output)\n",
- "\n",
- " elif phoneme[-1] in 'еeiuoaāäâāɒáA' and output_word.endswith('ye') and SequenceMatcher(None, phoneme, word[:-2]).ratio() > score:\n",
- " output = re.sub(rf'(\\W)({re.escape(output_word)})(\\W)', rf\"\\1{phoneme + '-ye'}\\3\", output)\n",
- "\n",
- " elif phoneme[-1] not in 'еeiuoaāäâāɒáA' and output_word.endswith('e') and SequenceMatcher(None, phoneme, word[:-1]).ratio() > score:\n",
- " output = re.sub(rf'(\\W)({re.escape(output_word)})(\\W)', rf\"\\1{phoneme + '-e'}\\3\", output)\n",
- "\n",
- " elif score > ACCEPTED_THRESHOLD:\n",
- " output = re.sub(rf'(\\W)({re.escape(output_word)})(\\W)', rf\"\\1{phoneme}\\3\", output)\n",
- "\n",
- " return output"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "UnkdP80wM1Dj"
- },
- "outputs": [],
- "source": [
- "from hazm import WordTokenizer, Normalizer"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "_qtAHHnYM5Kh"
- },
- "outputs": [],
- "source": [
- "tokenizer = WordTokenizer()\n",
- "normalizer = Normalizer()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "HTUfMCv9RxAM"
- },
- "outputs": [],
- "source": [
- "def get_last_subword(word):\n",
- " # Split the word by word boundaries\n",
- " subwords = re.findall(r'\\b\\w+\\b', word)\n",
- "\n",
- " if len(subwords) > 1 and subwords[-1] in ['های', 'ی']:\n",
- " return (subwords[-2], subwords[-1])\n",
- "\n",
- " return (subwords[-1], '')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "-D9UYvexLhXo"
- },
- "outputs": [],
- "source": [
- "def get_EZ_tags(grapheme, compound=False):\n",
- " grapheme = re.sub('ۀ', 'هی', grapheme)\n",
- " tokens = tokenizer.tokenize(normalizer.normalize(grapheme))\n",
- " tags = spacy_posTagger.tag(tokens=tokens, universal_tag=False)\n",
- " tags = [(t[0], t[1], '') for t in tags if 'EZ' in t[1]]\n",
- "\n",
- " if compound:\n",
- " return tags\n",
- "\n",
- " splitted_tags = []\n",
- " for t in tags:\n",
- " subword1, subword2 = get_last_subword(t[0])\n",
- " splitted_tags.append((subword1, t[1], subword2))\n",
- " return splitted_tags"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "fSnNhVUPRDzv"
- },
- "outputs": [],
- "source": [
- "def get_naive_finglish(word, phonetic=False):\n",
- " if phonetic:\n",
- " char_map = {\n",
- " 'ا': 'A', 'ب': 'b', 'پ': 'p', 'ت': 't', 'ث': 's', 'ج': 'j', 'چ': 'C',\n",
- " 'ح': 'h', 'خ': 'x', 'د': 'd', 'ذ': 'z', 'ر': 'r', 'ز': 'z', 'ژ': 'Z',\n",
- " 'س': 's', 'ش': 'S', 'ص': 's', 'ض': 'z', 'ط': 't', 'ظ': 'z', 'ع': '?',\n",
- " 'غ': 'q', 'ف': 'f', 'ق': 'q', 'ک': 'k', 'گ': 'g', 'ل': 'l', 'م': 'm',\n",
- " 'ن': 'n', 'و': 'v', 'ه': 'h', 'ی': 'y', 'ء': '?','ئ': '?', 'ؤ': '?',\n",
- " 'آ': 'A', 'أ': '?', 'إ': '?', 'ۀ': 'eye'\n",
- " }\n",
- " else:\n",
- " char_map = {\n",
- " 'ا': 'aa', 'ب': 'b', 'پ': 'p', 'ت': 't', 'ث': 's', 'ج': 'j', 'چ': 'Ch',\n",
- " 'ح': 'h', 'خ': 'Kh', 'د': 'd', 'ذ': 'z', 'ر': 'r', 'ز': 'z', 'ژ': 'Zh',\n",
- " 'س': 's', 'ش': 'Sh', 'ص': 's', 'ض': 'z', 'ط': 't', 'ظ': 'z', 'ع': \"'\",\n",
- " 'غ': 'Gh', 'ف': 'f', 'ق': 'Gh', 'ک': 'k', 'گ': 'g', 'ل': 'l', 'م': 'm',\n",
- " 'ن': 'n', 'و': 'v', 'ه': 'h', 'ی': 'y', 'ء': \"'\",'ئ': \"'\", 'ؤ': \"o'\",\n",
- " 'آ': 'aa', 'أ': \"a'\", 'إ': \"e'\", 'ۀ': 'eye'\n",
- " }\n",
- " mapped_string = ''.join(char_map.get(char, char) for char in word)\n",
- " return mapped_string"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "2f7Pa9JoVx4s"
- },
- "outputs": [],
- "source": [
- "def get_word_finglish_candidates(word, dictionary=finglish_merged_dict, phonetic=False):\n",
- " subwords = []\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', word):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " subwords.append((match_text, match_span))\n",
- "\n",
- " subword_candidates = []\n",
- " for subword, _ in subwords:\n",
- " if subword in dictionary:\n",
- " subword_candidates.append(dictionary[subword])\n",
- " else:\n",
- " subword_candidates.append([get_naive_finglish(subword, phonetic)])\n",
- "\n",
- " # Generate all possible combinations and concatenate\n",
- " word_candidates = [''.join(comb) for comb in itertools.product(*subword_candidates)]\n",
- " return word_candidates"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "qBIUxmjSkbSL"
- },
- "outputs": [],
- "source": [
- "def correct_finglish_model_EZ_by_tags(grapheme, model_output):\n",
- " EZ_tags = get_EZ_tags(grapheme, compound=False)\n",
- "\n",
- " matches = []\n",
- " matched_spans = set()\n",
- "\n",
- " for word, tag, ending in EZ_tags:\n",
- " finglish_candidates = get_word_finglish_candidates(word, finglish_merged_dict)\n",
- " # print(finglish_candidates)\n",
- " # if word == 'برای': continue\n",
- " for finglish in finglish_candidates:\n",
- " if finglish.endswith('aaye') and not word.endswith('ه'): continue\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', model_output):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " if match_text not in ['e', 'ye', 'i', 'ha', 'haa', 'haaye', 'haye'] and match_span not in matched_spans and SequenceMatcher(None, match_text, finglish).ratio() > 0.75:\n",
- " matches.append((match_span, match_text, finglish, ending))\n",
- " matched_spans.add(match_span)\n",
- "\n",
- " non_matches = []\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', model_output):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " if match_text not in ['e', 'ye', 'i', 'ha', 'haaye', 'haye'] and match_span not in matched_spans:\n",
- " non_matches.append((match_text, match_span))\n",
- "\n",
- " # print(matches)\n",
- "\n",
- " displacements = []\n",
- " for match_span, _, finglish, ending in matches:\n",
- " match_span = get_updated_span(match_span, displacements)\n",
- " if model_output[match_span[1]:].startswith('-e') or model_output[match_span[1]:].startswith('-ye') or model_output[match_span[1]:].startswith('-haaye') or model_output[match_span[1]:].startswith('-haye') or model_output[match_span[1]:].startswith('-haa-ye') or model_output[match_span[1]:].startswith('-ha-ye'):\n",
- " continue\n",
- "\n",
- " output_word = model_output[match_span[0]:match_span[1]]\n",
- " if len(output_word) >= 4 and output_word[-3] in 'еeiuoaāäâāɒá' and output_word.endswith('ye') and \\\n",
- " ((word_in_dict(output_word[:-2]) and not word_in_dict(output_word)) or \\\n",
- " SequenceMatcher(None, output_word[:-2], finglish).ratio() > SequenceMatcher(None, output_word, finglish).ratio()):\n",
- " model_output = model_output[:match_span[1] - 2] + '-' + model_output[match_span[1] - 2:]\n",
- " displacements.append((match_span[1] - 2, 1))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 3 and output_word.endswith('e') and \\\n",
- " ((word_in_dict(output_word[:-1]) and not word_in_dict(output_word)) or \\\n",
- " SequenceMatcher(None, output_word[:-1], finglish).ratio() > SequenceMatcher(None, output_word, finglish).ratio()):\n",
- " model_output = model_output[:match_span[1] - 1] + '-' + model_output[match_span[1] - 1:]\n",
- " displacements.append((match_span[1] - 1, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'ی' and len(output_word) >= 4 and output_word[-2:] == 'ye' and output_word[-3] == finglish[-1]:\n",
- " model_output = model_output[:match_span[1] - 2] + '-' + model_output[match_span[1] - 2:]\n",
- " displacements.append((match_span[1] - 2, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'های' and len(output_word) >= 7 and output_word[-5:] == 'haaye':\n",
- " model_output = model_output[:match_span[1] - 5] + '-' + model_output[match_span[1] - 5:]\n",
- " displacements.append((match_span[1] - 5, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'های' and len(output_word) >= 6 and output_word[-4:] == 'haye':\n",
- " model_output = model_output[:match_span[1] - 4] + '-haaye' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1] - 4, 2))\n",
- " continue\n",
- "\n",
- " if ending not in ['ی', 'های'] and len(output_word) >= 3 and output_word[-2] == finglish[-1] and output_word[-1] == 'e':\n",
- " model_output = model_output[:match_span[1] - 1] + '-' + model_output[match_span[1] - 1:]\n",
- " displacements.append((match_span[1] - 1, 1))\n",
- " continue\n",
- "\n",
- " # print('output word', output_word)\n",
- " # print('finglish', finglish)\n",
- " if output_word[-1] in 'еeiuoaāäâāɒá' and not output_word.endswith('haye') and not output_word.endswith('haaye'):\n",
- " model_output = model_output[:match_span[1]] + '-ye' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], 3))\n",
- " continue\n",
- "\n",
- " if not output_word.endswith('e'):\n",
- " model_output = model_output[:match_span[1]] + '-e' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], 2))\n",
- "\n",
- " # print(model_output)\n",
- " # print(non_matches)\n",
- "\n",
- " for non_match, match_span in non_matches:\n",
- " match_span = get_updated_span(match_span, displacements)\n",
- " output_word = model_output[match_span[0]:match_span[1]]\n",
- " if re.match(r'^-e\\b', model_output[match_span[1]:]):\n",
- " model_output = model_output[:match_span[1]] + model_output[match_span[1] + 2:]\n",
- " displacements.append((match_span[1] + 2, -2))\n",
- " continue\n",
- "\n",
- " if re.match(r'^-ye\\b', model_output[match_span[1]:]):\n",
- " model_output = model_output[:match_span[1]] + model_output[match_span[1] + 3:]\n",
- " displacements.append((match_span[1] + 3, -3))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 4 and output_word[-3] in 'еeiuoaāäâāɒá' and output_word.endswith('ye') and (word_in_dict(output_word[:-2]) and not word_in_dict(output_word)):\n",
- " model_output = model_output[:match_span[1] - 2] + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], -2))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 3 and output_word.endswith('e') and (word_in_dict(output_word[:-1]) and not word_in_dict(output_word)):\n",
- " model_output = model_output[:match_span[1] - 1] + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], -1))\n",
- "\n",
- " return model_output"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "pDq6pSiezbPQ"
- },
- "outputs": [],
- "source": [
- "def correct_phonetic_model_EZ_by_tags(grapheme, model_output):\n",
- " EZ_tags = get_EZ_tags(grapheme, compound=False)\n",
- "\n",
- " matches = []\n",
- " matched_spans = set()\n",
- "\n",
- " for word, tag, ending in EZ_tags:\n",
- " finglish_candidates = get_word_finglish_candidates(word, merged_dict, phonetic=True)\n",
- " # print(finglish_candidates)\n",
- " # if word == 'برای': continue\n",
- " for finglish in finglish_candidates:\n",
- " if finglish.endswith('Aye') and not word.endswith('ه'): continue\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', model_output):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " if match_text not in ['e', 'ye', 'i', 'ha', 'hA', 'hAye', 'haye'] and match_span not in matched_spans and SequenceMatcher(None, match_text, finglish).ratio() > 0.75:\n",
- " matches.append((match_span, match_text, finglish, ending))\n",
- " matched_spans.add(match_span)\n",
- "\n",
- " non_matches = []\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', model_output):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " if match_text not in ['e', 'ye', 'i', 'ha', 'hAye', 'haye'] and match_span not in matched_spans:\n",
- " non_matches.append((match_text, match_span))\n",
- "\n",
- " # print(matches)\n",
- "\n",
- " displacements = []\n",
- " for match_span, _, finglish, ending in matches:\n",
- " match_span = get_updated_span(match_span, displacements)\n",
- " if model_output[match_span[1]:].startswith('-e') or model_output[match_span[1]:].startswith('-ye') or model_output[match_span[1]:].startswith('-hAye') or model_output[match_span[1]:].startswith('-haye') or model_output[match_span[1]:].startswith('-hA-ye') or model_output[match_span[1]:].startswith('-ha-ye'):\n",
- " continue\n",
- "\n",
- " output_word = model_output[match_span[0]:match_span[1]]\n",
- " if len(output_word) >= 4 and output_word[-3] in 'еeiuoaāäâāɒáA' and output_word.endswith('ye') and \\\n",
- " ((word_in_dict(output_word[:-2], inverted_merged_dict) and not word_in_dict(output_word, inverted_merged_dict)) or \\\n",
- " SequenceMatcher(None, output_word[:-2], finglish).ratio() > SequenceMatcher(None, output_word, finglish).ratio()):\n",
- " model_output = model_output[:match_span[1] - 2] + '-' + model_output[match_span[1] - 2:]\n",
- " displacements.append((match_span[1] - 2, 1))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 3 and output_word.endswith('e') and \\\n",
- " ((word_in_dict(output_word[:-1], inverted_merged_dict) and not word_in_dict(output_word, inverted_merged_dict)) or \\\n",
- " SequenceMatcher(None, output_word[:-1], finglish).ratio() > SequenceMatcher(None, output_word, finglish).ratio()):\n",
- " model_output = model_output[:match_span[1] - 1] + '-' + model_output[match_span[1] - 1:]\n",
- " displacements.append((match_span[1] - 1, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'ی' and len(output_word) >= 4 and output_word[-2:] == 'ye' and output_word[-3] == finglish[-1]:\n",
- " model_output = model_output[:match_span[1] - 2] + '-' + model_output[match_span[1] - 2:]\n",
- " displacements.append((match_span[1] - 2, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'های' and len(output_word) >= 7 and output_word[-5:] == 'hAye':\n",
- " model_output = model_output[:match_span[1] - 4] + '-' + model_output[match_span[1] - 4:]\n",
- " displacements.append((match_span[1] - 5, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'های' and len(output_word) >= 6 and output_word[-4:] == 'haye':\n",
- " model_output = model_output[:match_span[1] - 4] + '-hAye' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1] - 4, 1))\n",
- " continue\n",
- "\n",
- " if ending not in ['ی', 'های'] and len(output_word) >= 3 and output_word[-2] == finglish[-1] and output_word[-1] == 'e':\n",
- " model_output = model_output[:match_span[1] - 1] + '-' + model_output[match_span[1] - 1:]\n",
- " displacements.append((match_span[1] - 1, 1))\n",
- " continue\n",
- "\n",
- " # print('output word', output_word)\n",
- " # print('finglish', finglish)\n",
- " if output_word[-1] in 'еeiuoaāäâāɒáA' and not output_word.endswith('haye') and not output_word.endswith('hAye'):\n",
- " model_output = model_output[:match_span[1]] + '-ye' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], 3))\n",
- " continue\n",
- "\n",
- " if not output_word.endswith('e'):\n",
- " model_output = model_output[:match_span[1]] + '-e' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], 2))\n",
- "\n",
- " # print(model_output)\n",
- " # print(non_matches)\n",
- "\n",
- " for non_match, match_span in non_matches:\n",
- " match_span = get_updated_span(match_span, displacements)\n",
- " output_word = model_output[match_span[0]:match_span[1]]\n",
- " if re.match(r'^-e\\b', model_output[match_span[1]:]):\n",
- " model_output = model_output[:match_span[1]] + model_output[match_span[1] + 2:]\n",
- " displacements.append((match_span[1] + 2, -2))\n",
- " continue\n",
- "\n",
- " if re.match(r'^-ye\\b', model_output[match_span[1]:]):\n",
- " model_output = model_output[:match_span[1]] + model_output[match_span[1] + 3:]\n",
- " displacements.append((match_span[1] + 3, -3))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 4 and output_word[-3] in 'еeiuoaāäâāɒáA' and output_word.endswith('ye') and (word_in_dict(output_word[:-2], inverted_merged_dict) and not word_in_dict(output_word, inverted_merged_dict)):\n",
- " model_output = model_output[:match_span[1] - 2] + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], -2))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 3 and output_word.endswith('e') and (word_in_dict(output_word[:-1], inverted_merged_dict) and not word_in_dict(output_word, inverted_merged_dict)):\n",
- " model_output = model_output[:match_span[1] - 1] + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], -1))\n",
- "\n",
- " return model_output"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "kKswdIBO_kH1"
- },
- "source": [
- "# Ezafe post-processing"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "d7BvMmFL_qEf"
- },
- "outputs": [],
- "source": [
- "from hazm import WordTokenizer, Normalizer"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "rzeZDwIk_qEf"
- },
- "outputs": [],
- "source": [
- "tokenizer = WordTokenizer()\n",
- "normalizer = Normalizer()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "I-NkNy3A_qEf"
- },
- "outputs": [],
- "source": [
- "def get_last_subword(word):\n",
- " # Split the word by word boundaries\n",
- " subwords = re.findall(r'\\b\\w+\\b', word)\n",
- "\n",
- " if len(subwords) > 1 and subwords[-1] in ['های', 'ی']:\n",
- " return (subwords[-2], subwords[-1])\n",
- "\n",
- " return (subwords[-1], '')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "NBGplJyS_qEf"
- },
- "outputs": [],
- "source": [
- "def get_EZ_tags(grapheme, compound=False):\n",
- " grapheme = re.sub('ۀ', 'هی', grapheme)\n",
- " tokens = tokenizer.tokenize(normalizer.normalize(grapheme))\n",
- " tags = spacy_posTagger.tag(tokens=tokens, universal_tag=False)\n",
- " tags = [(t[0], t[1], '') for t in tags if 'EZ' in t[1]]\n",
- "\n",
- " if compound:\n",
- " return tags\n",
- "\n",
- " splitted_tags = []\n",
- " for t in tags:\n",
- " subword1, subword2 = get_last_subword(t[0])\n",
- " splitted_tags.append((subword1, t[1], subword2))\n",
- " return splitted_tags"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "xKTrcl4j_qEg"
- },
- "outputs": [],
- "source": [
- "def get_naive_finglish(word, phonetic=False):\n",
- " if phonetic:\n",
- " char_map = {\n",
- " 'ا': 'A', 'ب': 'b', 'پ': 'p', 'ت': 't', 'ث': 's', 'ج': 'j', 'چ': 'C',\n",
- " 'ح': 'h', 'خ': 'x', 'د': 'd', 'ذ': 'z', 'ر': 'r', 'ز': 'z', 'ژ': 'Z',\n",
- " 'س': 's', 'ش': 'S', 'ص': 's', 'ض': 'z', 'ط': 't', 'ظ': 'z', 'ع': '?',\n",
- " 'غ': 'q', 'ف': 'f', 'ق': 'q', 'ک': 'k', 'گ': 'g', 'ل': 'l', 'م': 'm',\n",
- " 'ن': 'n', 'و': 'v', 'ه': 'h', 'ی': 'y', 'ء': '?','ئ': '?', 'ؤ': '?',\n",
- " 'آ': 'A', 'أ': '?', 'إ': '?', 'ۀ': 'eye'\n",
- " }\n",
- " else:\n",
- " char_map = {\n",
- " 'ا': 'aa', 'ب': 'b', 'پ': 'p', 'ت': 't', 'ث': 's', 'ج': 'j', 'چ': 'Ch',\n",
- " 'ح': 'h', 'خ': 'Kh', 'د': 'd', 'ذ': 'z', 'ر': 'r', 'ز': 'z', 'ژ': 'Zh',\n",
- " 'س': 's', 'ش': 'Sh', 'ص': 's', 'ض': 'z', 'ط': 't', 'ظ': 'z', 'ع': \"'\",\n",
- " 'غ': 'Gh', 'ف': 'f', 'ق': 'Gh', 'ک': 'k', 'گ': 'g', 'ل': 'l', 'م': 'm',\n",
- " 'ن': 'n', 'و': 'v', 'ه': 'h', 'ی': 'y', 'ء': \"'\",'ئ': \"'\", 'ؤ': \"o'\",\n",
- " 'آ': 'aa', 'أ': \"a'\", 'إ': \"e'\", 'ۀ': 'eye'\n",
- " }\n",
- " mapped_string = ''.join(char_map.get(char, char) for char in word)\n",
- " return mapped_string"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "IdZZ3qlm_qEg"
- },
- "outputs": [],
- "source": [
- "def get_word_finglish_candidates(word, dictionary=finglish_merged_dict, phonetic=False):\n",
- " subwords = []\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', word):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " subwords.append((match_text, match_span))\n",
- "\n",
- " subword_candidates = []\n",
- " for subword, _ in subwords:\n",
- " if subword in dictionary:\n",
- " subword_candidates.append(dictionary[subword])\n",
- " else:\n",
- " subword_candidates.append([get_naive_finglish(subword, phonetic)])\n",
- "\n",
- " # Generate all possible combinations and concatenate\n",
- " word_candidates = [''.join(comb) for comb in itertools.product(*subword_candidates)]\n",
- " return word_candidates"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "ZEtbDmXR_qEg"
- },
- "outputs": [],
- "source": [
- "def correct_finglish_model_EZ_by_tags(grapheme, model_output):\n",
- " EZ_tags = get_EZ_tags(grapheme, compound=False)\n",
- "\n",
- " matches = []\n",
- " matched_spans = set()\n",
- "\n",
- " for word, tag, ending in EZ_tags:\n",
- " finglish_candidates = get_word_finglish_candidates(word, finglish_merged_dict)\n",
- " # print(finglish_candidates)\n",
- " # if word == 'برای': continue\n",
- " for finglish in finglish_candidates:\n",
- " if finglish.endswith('aaye') and not word.endswith('ه'): continue\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', model_output):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " if match_text not in ['e', 'ye', 'i', 'ha', 'haa', 'haaye', 'haye'] and match_span not in matched_spans and SequenceMatcher(None, match_text, finglish).ratio() > 0.75:\n",
- " matches.append((match_span, match_text, finglish, ending))\n",
- " matched_spans.add(match_span)\n",
- "\n",
- " non_matches = []\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', model_output):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " if match_text not in ['e', 'ye', 'i', 'ha', 'haaye', 'haye'] and match_span not in matched_spans:\n",
- " non_matches.append((match_text, match_span))\n",
- "\n",
- " # print(matches)\n",
- "\n",
- " displacements = []\n",
- " for match_span, _, finglish, ending in matches:\n",
- " match_span = get_updated_span(match_span, displacements)\n",
- " if model_output[match_span[1]:].startswith('-e') or model_output[match_span[1]:].startswith('-ye') or model_output[match_span[1]:].startswith('-haaye') or model_output[match_span[1]:].startswith('-haye') or model_output[match_span[1]:].startswith('-haa-ye') or model_output[match_span[1]:].startswith('-ha-ye'):\n",
- " continue\n",
- "\n",
- " output_word = model_output[match_span[0]:match_span[1]]\n",
- " if len(output_word) >= 4 and output_word[-3] in 'еeiuoaāäâāɒá' and output_word.endswith('ye') and \\\n",
- " ((word_in_dict(output_word[:-2]) and not word_in_dict(output_word)) or \\\n",
- " SequenceMatcher(None, output_word[:-2], finglish).ratio() > SequenceMatcher(None, output_word, finglish).ratio()):\n",
- " model_output = model_output[:match_span[1] - 2] + '-' + model_output[match_span[1] - 2:]\n",
- " displacements.append((match_span[1] - 2, 1))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 3 and output_word.endswith('e') and \\\n",
- " ((word_in_dict(output_word[:-1]) and not word_in_dict(output_word)) or \\\n",
- " SequenceMatcher(None, output_word[:-1], finglish).ratio() > SequenceMatcher(None, output_word, finglish).ratio()):\n",
- " model_output = model_output[:match_span[1] - 1] + '-' + model_output[match_span[1] - 1:]\n",
- " displacements.append((match_span[1] - 1, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'ی' and len(output_word) >= 4 and output_word[-2:] == 'ye' and output_word[-3] == finglish[-1]:\n",
- " model_output = model_output[:match_span[1] - 2] + '-' + model_output[match_span[1] - 2:]\n",
- " displacements.append((match_span[1] - 2, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'های' and len(output_word) >= 7 and output_word[-5:] == 'haaye':\n",
- " model_output = model_output[:match_span[1] - 5] + '-' + model_output[match_span[1] - 5:]\n",
- " displacements.append((match_span[1] - 5, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'های' and len(output_word) >= 6 and output_word[-4:] == 'haye':\n",
- " model_output = model_output[:match_span[1] - 4] + '-haaye' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1] - 4, 2))\n",
- " continue\n",
- "\n",
- " if ending not in ['ی', 'های'] and len(output_word) >= 3 and output_word[-2] == finglish[-1] and output_word[-1] == 'e':\n",
- " model_output = model_output[:match_span[1] - 1] + '-' + model_output[match_span[1] - 1:]\n",
- " displacements.append((match_span[1] - 1, 1))\n",
- " continue\n",
- "\n",
- " # print('output word', output_word)\n",
- " # print('finglish', finglish)\n",
- " if output_word[-1] in 'еeiuoaāäâāɒá' and not output_word.endswith('haye') and not output_word.endswith('haaye'):\n",
- " model_output = model_output[:match_span[1]] + '-ye' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], 3))\n",
- " continue\n",
- "\n",
- " if not output_word.endswith('e'):\n",
- " model_output = model_output[:match_span[1]] + '-e' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], 2))\n",
- "\n",
- " # print(model_output)\n",
- " # print(non_matches)\n",
- "\n",
- " for non_match, match_span in non_matches:\n",
- " match_span = get_updated_span(match_span, displacements)\n",
- " output_word = model_output[match_span[0]:match_span[1]]\n",
- " if re.match(r'^-e\\b', model_output[match_span[1]:]):\n",
- " model_output = model_output[:match_span[1]] + model_output[match_span[1] + 2:]\n",
- " displacements.append((match_span[1] + 2, -2))\n",
- " continue\n",
- "\n",
- " if re.match(r'^-ye\\b', model_output[match_span[1]:]):\n",
- " model_output = model_output[:match_span[1]] + model_output[match_span[1] + 3:]\n",
- " displacements.append((match_span[1] + 3, -3))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 4 and output_word[-3] in 'еeiuoaāäâāɒá' and output_word.endswith('ye') and (word_in_dict(output_word[:-2]) and not word_in_dict(output_word)):\n",
- " model_output = model_output[:match_span[1] - 2] + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], -2))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 3 and output_word.endswith('e') and (word_in_dict(output_word[:-1]) and not word_in_dict(output_word)):\n",
- " model_output = model_output[:match_span[1] - 1] + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], -1))\n",
- "\n",
- " return model_output"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "To8MM6eC_qEg"
- },
- "outputs": [],
- "source": [
- "def correct_phonetic_model_EZ_by_tags(grapheme, model_output):\n",
- " EZ_tags = get_EZ_tags(grapheme, compound=False)\n",
- "\n",
- " matches = []\n",
- " matched_spans = set()\n",
- "\n",
- " for word, tag, ending in EZ_tags:\n",
- " finglish_candidates = get_word_finglish_candidates(word, merged_dict, True)\n",
- " # print(finglish_candidates)\n",
- " # if word == 'برای': continue\n",
- " for finglish in finglish_candidates:\n",
- " if finglish.endswith('Aye') and not word.endswith('ه'): continue\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', model_output):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " if match_text not in ['e', 'ye', 'i', 'ha', 'hA', 'hAye', 'haye'] and match_span not in matched_spans and SequenceMatcher(None, match_text, finglish).ratio() > 0.75:\n",
- " matches.append((match_span, match_text, finglish, ending))\n",
- " matched_spans.add(match_span)\n",
- "\n",
- " non_matches = []\n",
- " for match in re.finditer(r'\\b(\\w+)\\b', model_output):\n",
- " match_text = match.group()\n",
- " match_span = match.span()\n",
- " if match_text not in ['e', 'ye', 'i', 'ha', 'hAye', 'haye'] and match_span not in matched_spans:\n",
- " non_matches.append((match_text, match_span))\n",
- "\n",
- " # print(matches)\n",
- "\n",
- " displacements = []\n",
- " for match_span, _, finglish, ending in matches:\n",
- " match_span = get_updated_span(match_span, displacements)\n",
- " if model_output[match_span[1]:].startswith('-e') or model_output[match_span[1]:].startswith('-ye') or model_output[match_span[1]:].startswith('-hAye') or model_output[match_span[1]:].startswith('-haye') or model_output[match_span[1]:].startswith('-hA-ye') or model_output[match_span[1]:].startswith('-ha-ye'):\n",
- " continue\n",
- "\n",
- " output_word = model_output[match_span[0]:match_span[1]]\n",
- " if len(output_word) >= 4 and output_word[-3] in 'еeiuoaāäâāɒáA' and output_word.endswith('ye') and \\\n",
- " ((word_in_dict(output_word[:-2], inverted_merged_dict) and not word_in_dict(output_word, inverted_merged_dict)) or \\\n",
- " SequenceMatcher(None, output_word[:-2], finglish).ratio() > SequenceMatcher(None, output_word, finglish).ratio()):\n",
- " model_output = model_output[:match_span[1] - 2] + '-' + model_output[match_span[1] - 2:]\n",
- " displacements.append((match_span[1] - 2, 1))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 3 and output_word.endswith('e') and \\\n",
- " ((word_in_dict(output_word[:-1], inverted_merged_dict) and not word_in_dict(output_word, inverted_merged_dict)) or \\\n",
- " SequenceMatcher(None, output_word[:-1], finglish).ratio() > SequenceMatcher(None, output_word, finglish).ratio()):\n",
- " model_output = model_output[:match_span[1] - 1] + '-' + model_output[match_span[1] - 1:]\n",
- " displacements.append((match_span[1] - 1, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'ی' and len(output_word) >= 4 and output_word[-2:] == 'ye' and output_word[-3] == finglish[-1]:\n",
- " model_output = model_output[:match_span[1] - 2] + '-' + model_output[match_span[1] - 2:]\n",
- " displacements.append((match_span[1] - 2, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'های' and len(output_word) >= 7 and output_word[-5:] == 'hAye':\n",
- " model_output = model_output[:match_span[1] - 4] + '-' + model_output[match_span[1] - 4:]\n",
- " displacements.append((match_span[1] - 5, 1))\n",
- " continue\n",
- "\n",
- " if ending == 'های' and len(output_word) >= 6 and output_word[-4:] == 'haye':\n",
- " model_output = model_output[:match_span[1] - 4] + '-hAye' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1] - 4, 1))\n",
- " continue\n",
- "\n",
- " if ending not in ['ی', 'های'] and len(output_word) >= 3 and output_word[-2] == finglish[-1] and output_word[-1] == 'e':\n",
- " model_output = model_output[:match_span[1] - 1] + '-' + model_output[match_span[1] - 1:]\n",
- " displacements.append((match_span[1] - 1, 1))\n",
- " continue\n",
- "\n",
- " # print('output word', output_word)\n",
- " # print('finglish', finglish)\n",
- " if output_word[-1] in 'еeiuoaāäâāɒáA' and not output_word.endswith('haye') and not output_word.endswith('hAye'):\n",
- " model_output = model_output[:match_span[1]] + '-ye' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], 3))\n",
- " continue\n",
- "\n",
- " if not output_word.endswith('e'):\n",
- " model_output = model_output[:match_span[1]] + '-e' + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], 2))\n",
- "\n",
- " # print(model_output)\n",
- " # print(non_matches)\n",
- "\n",
- " for non_match, match_span in non_matches:\n",
- " match_span = get_updated_span(match_span, displacements)\n",
- " output_word = model_output[match_span[0]:match_span[1]]\n",
- " if re.match(r'^-e\\b', model_output[match_span[1]:]):\n",
- " model_output = model_output[:match_span[1]] + model_output[match_span[1] + 2:]\n",
- " displacements.append((match_span[1] + 2, -2))\n",
- " continue\n",
- "\n",
- " if re.match(r'^-ye\\b', model_output[match_span[1]:]):\n",
- " model_output = model_output[:match_span[1]] + model_output[match_span[1] + 3:]\n",
- " displacements.append((match_span[1] + 3, -3))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 4 and output_word[-3] in 'еeiuoaāäâāɒáA' and output_word.endswith('ye') and (word_in_dict(output_word[:-2], inverted_merged_dict) and not word_in_dict(output_word, inverted_merged_dict)):\n",
- " model_output = model_output[:match_span[1] - 2] + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], -2))\n",
- " continue\n",
- "\n",
- " if len(output_word) >= 3 and output_word.endswith('e') and (word_in_dict(output_word[:-1], inverted_merged_dict) and not word_in_dict(output_word, inverted_merged_dict)):\n",
- " model_output = model_output[:match_span[1] - 1] + model_output[match_span[1]:]\n",
- " displacements.append((match_span[1], -1))\n",
- "\n",
- " return model_output"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "6UpTo6L_1bD8"
- },
- "source": [
- "# Prompt 12: Finglish + In-Context Learning + hint single"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "id": "3l-Do1xv1bEQ"
- },
- "outputs": [],
- "source": [
- "def prompt12(word, phoneme, grapheme):\n",
- " matches = None\n",
- "\n",
- " input_words = 0\n",
- " output_words = 0\n",
- "\n",
- " while not matches:\n",
- " messages = [\n",
- " {\n",
- " \"role\": \"system\",\n",
- " \"content\": '''You are an assistant that converts Persian sentences into their Finglish representation.\n",
- "\n",
- " ## Transliteration Guidelines\n",
- " 1. Accurately represent the pronunciation of Persian words.\n",
- " 2. Use hyphens to connect words with Ezafe when needed (e.g., \"رنگ آبی\": \"rang-e aabi\", \"زندگی شیرین\": \"zendegi-ye Shirin\").\n",
- " 3. Use \"Sh\" for 'ش', \"Ch\" for 'چ', \"Kh\" for 'خ', \"Gh\" for 'ق' and 'غ', \"Zh\" for 'ژ'.\n",
- "\n",
- " Additional guidelines:\n",
- " - Short vowels: a (ـَ), e (ـِ), o (ـُ)\n",
- " - Long vowels: aa (آ/ا), i (ای), oo (او)\n",
- " - Use 'z' for ز, ذ, ض, and ظ; 's' for س and ص; 't' for ت and ط; 'y' for ی; 'j' for ج; and 'k' for ک\n",
- " - Omit silent 'h' at the end of words (e.g., خانه → Khaane, not Khaaneh)\n",
- " - Represent ع, ئ , and ء with an apostrophe ' when it's pronounced\n",
- "\n",
- " In the inputs you will be given, the Finglish of some of the words is given as help.\n",
- "\n",
- " ## Examples\n",
- " input=[جشن چهل مرد]. dict entries: 'چهل': Chehel, 'جشن': jaShn, output=[jaShn-e Chehel mard].\n",
- " input=[گل نو در غار هست یا خانه؟]. dict entries: 'غار': Ghaar, 'خانه': Khaane. output=[ɡol-e no dar Ghaar hast ya Khaane]\n",
- " input=[ژن زیبارویان پولدار]. dict entries: 'ژن': Zhen, 'زیبا': zibaa. output=[Zhen-e zibaarooyaan-e pooldaar]\n",
- " input=[اتفاقی نمیافتد]. dict entries: . output=[ettefaaGhi nemi-oftad]\n",
- " input=[گرگ حیوانی وحشی است].dict entries: 'گرگ': gorg, 'وحشی': vahShi. output=[gorg heyvaani vahShi ast].\n",
- " '''\n",
- " },\n",
- " {\n",
- " \"role\": \"user\",\n",
- " \"content\": f'''This is the Persian sentence: [{grapheme}].\n",
- " These are the pronunciatin of some of the words I know:\n",
- " {get_known_words(grapheme, multiple_choices=False)}.\n",
- " And the pronunciation of \"{word}\" in this sentence is probably \"{phoneme}\".\n",
- " Return Finglish of the Persian sentenc in brackets like output=[].'''\n",
- " }]\n",
- "\n",
- " response = get_response(messages, 'gpt-4o', 'avalai')\n",
- "\n",
- " input_words = len(re.split('\\w*', messages[0]['content'])) + len(re.split('\\w*', messages[1]['content']))\n",
- " output_words = len(re.split('\\w*', response))\n",
- "\n",
- " matches = re.findall(r'\\[[^\\]]+\\]', response)\n",
- "\n",
- " if matches:\n",
- " output = matches[0].strip('[]')\n",
- " output = replace_LLM_phonetic_characters(output, output_to_phonetics_map)\n",
- " output = substitute_by_dict(output, grapheme)\n",
- " return output\n",
- "\n",
- " print(\"Matching failed\")"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "id": "CGqrcAVA8QEI"
- },
- "source": [
- "# Inference"
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "import csv\n",
- "from google.colab import auth\n",
- "import gspread\n",
- "from google.auth import default\n",
- "\n",
- "# Authenticate and authorize\n",
- "auth.authenticate_user()\n",
- "creds, _ = default()\n",
- "gc = gspread.authorize(creds)"
- ],
- "metadata": {
- "id": "zyPbVOBsxWB-"
- },
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "# Input and output file paths\n",
- "input_csv_path = \"Human Labeling Sheet Links - Sheet1.csv\" # Replace with your input CSV file path\n",
- "output_csv_path = \"/content/drive/openai_phonemized_sentences.csv\" # Replace with your desired output CSV file path\n",
- "temp_dir = \"temp_sheets/\" # Temporary directory to save downloaded sheets\n"
- ],
- "metadata": {
- "id": "iORxxCvU0pty"
- },
- "execution_count": null,
- "outputs": []
- },
- {
- "cell_type": "code",
- "source": [
- "# Ensure the temporary directory exists\n",
- "os.makedirs(temp_dir, exist_ok=True)\n",
- "\n",
- "# Step 1: Download \"Checked\" sheets as CSV files\n",
- "with open(input_csv_path, \"r\") as input_csv:\n",
- " reader = csv.DictReader(input_csv)\n",
- "\n",
- " for idx, row in enumerate(reader):\n",
- " if idx == 0: continue\n",
- "\n",
- " sheet_name = row[\"Sheet Name\"]\n",
- " link = row[\"Link\"]\n",
- " checked = row[\"Checked\"].strip().lower() == \"true\"\n",
- "\n",
- " if not link or not checked:\n",
- " continue # Skip rows with an empty link or not marked as Checked\n",
- "\n",
- " # try:\n",
- " # Open the Google Sheet\n",
- " sheet = gc.open_by_url(link)\n",
- " worksheet = sheet.get_worksheet(0)\n",
- "\n",
- " # Get all rows from the worksheet\n",
- " data = worksheet.get_all_values()\n",
- "\n",
- " # Save the sheet as a temporary CSV file\n",
- " temp_csv_path = os.path.join(temp_dir, f\"{sheet_name}.csv\")\n",
- " with open(temp_csv_path, \"w\", newline=\"\") as temp_csv:\n",
- " temp_writer = csv.writer(temp_csv)\n",
- " temp_writer.writerows(data)\n",
- "\n",
- " # except Exception as e:\n",
- " # print(f\"Error downloading sheet {sheet_name} at {link}: {e}\")\n",
- "\n",
- "print(f\"All Checked sheets downloaded to {temp_dir}.\")\n"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "Vd-h5KPMxfQ7",
- "outputId": "665a8a75-7552-4540-d994-aeb9b98ac398"
- },
- "execution_count": null,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "All Checked sheets downloaded to temp_sheets/.\n"
- ]
- }
- ]
- },
- {
- "cell_type": "code",
- "source": [
- "# Step 2: Process downloaded CSV files\n",
- "# Load existing sentences from the output file\n",
- "existing_sentences = set()\n",
- "try:\n",
- " with open(output_csv_path, \"r\") as output_csv:\n",
- " reader = csv.DictReader(output_csv)\n",
- " for row in reader:\n",
- " existing_sentences.add(row[\"Sentence\"])\n",
- "except FileNotFoundError:\n",
- " pass # Output file does not exist yet\n",
- "\n",
- "# Prepare the output CSV file\n",
- "with open(output_csv_path, \"a\", newline=\"\") as output_csv:\n",
- " fieldnames = [\"Word\", \"Sentence\", \"Output\"]\n",
- " writer = csv.DictWriter(output_csv, fieldnames=fieldnames)\n",
- "\n",
- " # Write the header only if the file is empty\n",
- " if output_csv.tell() == 0:\n",
- " writer.writeheader()\n",
- "\n",
- " # Process each downloaded CSV file\n",
- " for temp_csv_file in os.listdir(temp_dir):\n",
- " temp_csv_path = os.path.join(temp_dir, temp_csv_file)\n",
- "\n",
- " with open(temp_csv_path, \"r\") as temp_csv:\n",
- " reader = csv.reader(temp_csv)\n",
- " data = list(reader)\n",
- "\n",
- " # Initialize last non-English word\n",
- " last_non_english_word = \"\"\n",
- "\n",
- " # Process rows starting from the second row (skip header)\n",
- " for row_data in data:\n",
- " word = row_data[0] # First column\n",
- " sentence = row_data[1] # Second column\n",
- "\n",
- " # Check if the word is non-English (basic check using regex for non-ASCII characters)\n",
- " if re.search(r\"[^\\x00-\\x7F]\", word):\n",
- " last_non_english_word = word\n",
- "\n",
- " if sentence and sentence not in existing_sentences: # Check if the second column is not empty and not already processed\n",
- " output = prompt12(last_non_english_word, word, sentence)\n",
- " print(last_non_english_word, word, output)\n",
- " writer.writerow({\"Word\": last_non_english_word, \"Sentence\": sentence, \"Output\": output})\n",
- " existing_sentences.add(sentence) # Add to the set of processed sentences\n",
- "\n",
- "print(f\"Processing complete. Results saved to {output_csv_path}.\")"
- ],
- "metadata": {
- "colab": {
- "base_uri": "https://localhost:8080/"
- },
- "id": "F-LW8W2-1ROg",
- "outputId": "8af89ee4-7eb0-465c-b566-dfc89402dd8d"
- },
- "execution_count": null,
- "outputs": [
- {
- "output_type": "stream",
- "name": "stdout",
- "text": [
- "\u001b[1;30;43mStreaming output truncated to the last 5000 lines.\u001b[0m\n",
- "prompted!\n",
- "وسطی vostA vostA kolA sarsabz ?ast\n",
- "prompted!\n",
- "وسطی vostA vostA kola Sarji ?ast\n",
- "prompted!\n",
- "قوت qovvat man qazA mixoram qovvat begiram\n",
- "prompted!\n",
- "قوت qovvat qovvat dar bAzuye mardAn ?ast\n",
- "prompted!\n",
- "قوت qovvat mardAn qovvate qalbe hamsarAn hastand\n",
- "prompted!\n",
- "قوت qovvat mAdaram qovvate qalbe man ?ast\n",
- "prompted!\n",
- "قوت qovvat hamsaram qovvate qalbe farzandam ?ast\n",
- "prompted!\n",
- "قوت qut man quti rA be ?eSqAli ?andAxtam\n",
- "prompted!\n",
- "قوت qut qutiye man surAx ?ast\n",
- "prompted!\n",
- "قوت qut ?in quti be dard nemixorad\n",
- "prompted!\n",
- "قوت qut man qutiye bozorgi mikhAm\n",
- "prompted!\n",
- "کارد kArd dustam bA kArd ?Adam koSt\n",
- "prompted!\n",
- "کارد kArd dastam rA bA kArd beridam\n",
- "prompted!\n",
- "کارد kArd kArd tiz ?ast\n",
- "prompted!\n",
- "کارد kArd ?esteak bA kArd va CangAl serv miSavad\n",
- "prompted!\n",
- "کارد kArd bA kArd dastam rA beridam\n",
- "prompted!\n",
- "کارد kArad ?u bAyad deraxt bekArad\n",
- "prompted!\n",
- "کارد kArad dar ruze deraxtkAri hasan bAyad deraxt bekArad\n",
- "prompted!\n",
- "کارد kArad ?u bAyad gol rA bekArad\n",
- "prompted!\n",
- "کارد kArad ?Ali bAyad Caman bekArad\n",
- "prompted!\n",
- "کارد kArad hoseyn bAyad dAne dar zamin bekArad\n",
- "prompted!\n",
- "علی ?ali ?ali ?esme ?amiralmomenin ?ast\n",
- "prompted!\n",
- "علی ?ali ?Ali ?esme zibAyi ?ast\n",
- "prompted!\n",
- "علی ?ali ?ali ?esme man ?ast\n",
- "prompted!\n",
- "علی ?ali ?ali kAraS tajhizAte pezeSki ?ast\n",
- "prompted!\n",
- "علی ?ali ?Ali bikAr ?ast\n",
- "prompted!\n",
- "مسکن maskan hazineye maskan bAlA ?ast\n",
- "prompted!\n",
- "مسکن maskan man maskan nadAram\n",
- "prompted!\n",
- "مسکن maskan man barAye ?ezdevAj maskan niyAz dAram\n",
- "prompted!\n",
- "مسکن maskan tahiyyeye maskan barAye javAnAn moSkel ?ast\n",
- "prompted!\n",
- "مسکن maskan pedaram barAyam maskan tahiyye kard\n",
- "prompted!\n",
- "مسکن mosakken mosakken barAye darmAn dar ?ast\n",
- "prompted!\n",
- "مسکن mosakken mosakken barAye sardard ?ast\n",
- "prompted!\n",
- "مسکن mosakken roftam dArukhune mosakken xaridam\n",
- "prompted!\n",
- "مسکن mosakken masrafe ziyAde mosakken zarar dArad\n",
- "prompted!\n",
- "مسکن mosakken mosakkene dozzhAye moxtalef dArad\n",
- "prompted!\n",
- "سپرد sepord ?Ali puS rA be bAnk sepord\n",
- "prompted!\n",
- "سپرد sepord ?u ?amAnate xod rA be man sepord\n",
- "prompted!\n",
- "سپرد sepord ?Ali xaride dAruhAyaS rA be man sepord\n",
- "prompted!\n",
- "سپرد sepord ?Ali ?AqebataS rA be xodA sepord\n",
- "prompted!\n",
- "سپرد sepord Sohayl pAyaS rA be daste jarrahAn sepord\n",
- "prompted!\n",
- "سپرد seporad mASine man seporad ?ast\n",
- "prompted!\n",
- "سپرد seporad man lebAse ?esport dust dAram\n",
- "prompted!\n",
- "سپرد seporad ?u mASinaS ?esport ?ast\n",
- "prompted!\n",
- "سپرد seporad ?esCert budan jazzAb ?ast\n",
- "prompted!\n",
- "مثل masal dar ?irAn masalhAye ziyAdi dArim\n",
- "prompted!\n",
- "مثل masal masal be ma?niye mAnand ?ast\n",
- "prompted!\n",
- "مثل masal masale zadan ?az ?ArAyeye ?adabi ?ast\n",
- "prompted!\n",
- "مثل masal masale ham vazne ?asal ?ast\n",
- "prompted!\n",
- "مثل masal pedaram masal ziyAd migoft\n",
- "prompted!\n",
- "مثل mesle havAye tAbestAn mesle CAyiye dAq ?ast\n",
- "prompted!\n",
- "مثل mesle lAmp mesle xorSid roSanAyi midahad\n",
- "prompted!\n",
- "مثل mesle qelyAn mesle sigAr mozerr ?ast\n",
- "prompted!\n",
- "مثل mesle xar mesle ?asb savAri midahad\n",
- "prompted!\n",
- "مثل mesle motor mesle mASin motor dArad\n",
- "prompted!\n",
- "اشراف ?eSrAf man bar ?ozA?ye mamlekat ?eSrAf dAram\n",
- "prompted!\n",
- "اشراف ?eSrAf man dar ta?mirAte pezeSki ?eSrAf dAram\n",
- "prompted!\n",
- "اشراف ?eSrAf ra?ise jomhur bar qAnune ?asAsi ?eSrAf dArad\n",
- "prompted!\n",
- "اشراف ?eSrAf risheye kalame ?aSraf Saraf ?ast\n",
- "prompted!\n",
- "اشراف ?eSrAf xAneye mA be samte SomAl ?eSrAf dArad\n",
- "prompted!\n",
- "اشراف ?aSrAf ?aSrAfzAdegAn mAyehye nange hokumathA budand\n",
- "prompted!\n",
- "اشراف ?aSrAf dar zamAne qAjAr qodrat daste ?aSrAf bud\n",
- "prompted!\n",
- "اشراف ?aSrAf ?aSrAfe qorayS bA payAmbar moSkel dAStand\n",
- "prompted!\n",
- "اشراف ?aSrAf ?aSrAfe pahlavi dar xArej ?az keSvar hastand\n",
- "prompted!\n",
- "اشراف ?aSrAf ?aSrAfzAdegAne servatmand budand\n",
- "prompted!\n",
- "افشاند ?afSAnd bArAn Sabnam rA bar gol ?afSAnd\n",
- "prompted!\n",
- "افشاند ?afSAnd ?Ali ?espri rA dar havA ?afSAnd\n",
- "prompted!\n",
- "افشاند ?afSAnd gole gerd ?afSAnd\n",
- "prompted!\n",
- "افشاند ?afSAnd gole man dar bahAr gard ?afSAnd\n",
- "prompted!\n",
- "افشاند ?afSAnd mahtAb gisovAne xod rA ?afSAnd\n",
- "prompted!\n",
- "افشاند ?afSAnad paCCehA parCame ?emAm hoseyn rA miafSAnad\n",
- "prompted!\n",
- "افشاند ?afSAnad hAj qAsem parCame SahAdat rA ?afSAnd\n",
- "prompted!\n",
- "افشاند ?afSAnad ?emAm hoseyn parCame ?isAr rA miafSAnd\n",
- "prompted!\n",
- "افشاند ?afSAnad ?emAm ?Ali parCam rA miafSanad\n",
- "prompted!\n",
- "افشاند ?afSAnad ?emAm hasan parCame solh rA miafSAnd\n",
- "prompted!\n",
- "مراجع marAje? vahide xorAsAni ?az marAje?e taqlid ?ast\n",
- "prompted!\n",
- "مراجع marAje? sAfi golpAyegAni ?az marAje?e taqlid ?ast\n",
- "prompted!\n",
- "مراجع marAje? ?emAm xAmene ?az marAje?e taqlide Si?e ?ast\n",
- "prompted!\n",
- "مراجع marAje? ?AqAye sistAni ?az marAje?e taqlid ?ast\n",
- "prompted!\n",
- "مراجع marAje? makAreme SirAzi ?az marAje?e taqlid hastand\n",
- "prompted!\n",
- "مراجع morAje? darmAngAh morAje? dArad\n",
- "prompted!\n",
- "مراجع morAje? bAyad dar vozu be makAreme SirAzi morAje? Savad\n",
- "prompted!\n",
- "مراجع morAje? be morAje? bAyad ?ehterAm gozASt\n",
- "prompted!\n",
- "مراجع morAje? residegi be kAre morAje? vAjeb ?ast\n",
- "prompted!\n",
- "مراجع morAje? hoquqe morAje? rA bAyad mohtaram Semord\n",
- "prompted!\n",
- "نفس nafas nafas ?esme doxtar ?ast\n",
- "prompted!\n",
- "نفس nafas nafas ?esme zibAyi ?ast\n",
- "prompted!\n",
- "نفس nafas nafas barAye hayAt lAzem ?ast\n",
- "prompted!\n",
- "نفس nafas nafas ?esme xAharam ?ast\n",
- "prompted!\n",
- "نفس nafas bA ?Aludegiye havA nafase tehrAn tang Sod\n",
- "prompted!\n",
- "نفس nafs mA bAyad be nafse xod qalabe konim\n",
- "prompted!\n",
- "نفس nafs bAyad dar xordan nafse xod rA kontorol konim\n",
- "prompted!\n",
- "نفس nafs ?AnAn nafs rA tA doreye javAni bAyad keSid\n",
- "prompted!\n",
- "نفس nafs qatle nafse zakiyye ?az ?alAyeme zohur ?ast\n",
- "prompted!\n",
- "نفس nafs nafse ?ammAreye ?Ali za?if ?ast\n",
- "prompted!\n",
- "خرم xaram xaram rA foruxtam\n",
- "prompted!\n",
- "خرم xaram man mASin mixaram\n",
- "prompted!\n",
- "خرم xaram man motor mixaram\n",
- "prompted!\n",
- "خرم xaram xaram pAyaS Sekast\n",
- "prompted!\n",
- "خرم xaram xaram rAh nemiravad\n",
- "prompted!\n",
- "خرم xorram xorram ?An ruz ke del be deldAri berasad\n",
- "prompted!\n",
- "خرم xorram xorram ?An ruz ke yAr be yAri berasad\n",
- "prompted!\n",
- "خرم xorram Sizdahbedar ruze xoS va xorram ?ast\n",
- "prompted!\n",
- "خرم xorram xorram yek fAmili ?ast\n",
- "prompted!\n",
- "خرم xorram zohure ?emAme zamAn ruze xorrame man ?ast\n",
- "prompted!\n",
- "کرات korAt dar manzumeye Samsi korAte ziyAdi dArim\n",
- "prompted!\n",
- "کرات korAt zamin yeki ?az sayyArAte manzumeye Samsi ?ast\n",
- "prompted!\n",
- "کرات korAt xorSid yeki ?az korAte dAqe kahkeSAne rAhe Siri ?ast\n",
- "prompted!\n",
- "کرات korAt korAte ziyAdi dar kahkeSAne rAhe Siri vojud dArad\n",
- "prompted!\n",
- "کرات korAt manzumeye Samsi korAte zibAyi dArad\n",
- "prompted!\n",
- "کرات karrAt man be karrAt ?eStebAh mikanam\n",
- "prompted!\n",
- "کرات karrAt man karrAt tasAdof mikonam\n",
- "prompted!\n",
- "کرات karrAt ?Ali be karrAt gol yA puC bAzi mikanad\n",
- "prompted!\n",
- "کرات karrAt ?Ali be karrAt sigAr mikeSad\n",
- "prompted!\n",
- "کرات karrAt be karrAt doruq oftan ?eStebAh ?ast\n",
- "prompted!\n",
- "ارایه ?ArAye dar zabAne fArsi ?ArAyehAye ?adabi ziyAdi dArim\n",
- "prompted!\n",
- "ارایه ?ArAye taSbih ?az ?ArAyeye ?adabi ?ast\n",
- "prompted!\n",
- "ارایه ?ArAye talmih ?az ?ArAyeye ?adabi ?ast\n",
- "prompted!\n",
- "ارایه ?ArAye zarbolmasalhAye ?az ?ArAyeye ?adabi ?ast\n",
- "prompted!\n",
- "ارایه ?ArAye kenAye ?az ?ArAyehAye ?adabi ?ast\n",
- "prompted!\n",
- "ارایه ?erA?e ?u be man kerAye dAd\n",
- "prompted!\n",
- "ارایه ?erA?e man be ?u kirAye nadAdam\n",
- "prompted!\n",
- "ارایه ?erA?e hoseyn kirAyeye mAhiyAne belid bedahad\n",
- "prompted!\n",
- "ارایه ?erA?e bAyad kerAyeye xuneto badi\n",
- "prompted!\n",
- "ارایه ?erA?e kerAye dAdan saxt ?ast to ?in doreye zamune\n",
- "prompted!\n",
- "دوم davam zendegi bAyad bA davam bASad\n",
- "prompted!\n",
- "دوم davam zendegiye ?Ali davam nadASt\n",
- "prompted!\n",
- "دوم davam zardiye yek zendegiye bidavAm ?ast\n",
- "prompted!\n",
- "دوم davam davam ?Ahan ?az pelAstik biStar ?ast\n",
- "prompted!\n",
- "دوم davam qoli dar barAbare reZime davam nadArad\n",
- "prompted!\n",
- "دوم dovvom man kelAse dovvom hastam\n",
- "prompted!\n",
- "دوم dovvom xAneye man tabaqeye dovvom ?ast\n",
- "prompted!\n",
- "دوم dovvom man tabaqeye dovvom ro dust dAram\n",
- "prompted!\n",
- "دوم dovvom tabagheye dovvom ?Ab midahad\n",
- "prompted!\n",
- "دوم dovvom tabagheye dovvom ?eSAnsor nadArad\n",
- "prompted!\n",
- "نبرد nabard rusie bA ?ukrAn dar nabard ?ast\n",
- "prompted!\n",
- "نبرد nabard felestin bA ?esrA?il dar nabard ?ast\n",
- "prompted!\n",
- "نبرد nabard rostam dar SAhnAme nabarde ziyAdi dASt\n",
- "prompted!\n",
- "نبرد nabard suriye dar nabard bA teroristhA Sekast xord\n",
- "prompted!\n",
- "نبرد nabard ?AmrikA bA ?irAn nabarde narm dArad\n",
- "prompted!\n",
- "نبرد nabarad ?Ali be dustam goft mASin nabarad\n",
- "prompted!\n",
- "نبرد nabarad pedaram be barAdaram goft sag rA birun nabar\n",
- "prompted!\n",
- "نبرد nabarad ?Ali be dustam goft motor nabarad\n",
- "prompted!\n",
- "نبرد nabarad pedaram be barAdaram goft havA ?AftAbi ?ast Catr nabarad\n",
- "prompted!\n",
- "نبرد nabarad man goftam kolAham ra nabarad\n",
- "prompted!\n",
- "نبرد nabord ?Ali motor nabord\n",
- "prompted!\n",
- "نبرد nabord barAdaram Catr nabord\n",
- "prompted!\n",
- "نبرد nabord rezA Catr nabord\n",
- "prompted!\n",
- "نبرد nabord mASine naborde barAdaram\n",
- "prompted!\n",
- "نبرد nabord ?Ali sag nabord pArk\n",
- "prompted!\n",
- "نبرد naborad ?Ali goft CAxor dastat rA naborad\n",
- "prompted!\n",
- "نبرد naborad rezA goft ?Are dastat rA naborad\n",
- "prompted!\n",
- "نبرد naborad bAyad movAzeb bud CAqu dastam rA naborad\n",
- "prompted!\n",
- "نبرد naborad be ?Ali goftam movAzeb bASad polompe dastgA naborad\n",
- "prompted!\n",
- "نبرد naborad be dustam goftam ke ?az zendegi naborad\n",
- "prompted!\n",
- "نمونه nemune man barAye ?AzmAyeS nemune dAdam\n",
- "prompted!\n",
- "نمونه nemune mesl be ma?niye nemune ?ast\n",
- "prompted!\n",
- "نمونه nemune Serkat borrA tabliq be man nemuneye mahsul dAd\n",
- "prompted!\n",
- "نمونه nemune man dar dabirestAne nemune dars xAndam\n",
- "prompted!\n",
- "نمونه nemune hazrate ?Ali ye nemuneye xubi ?ast\n",
- "prompted!\n",
- "نمونه namune man sarbAze namune Sodam\n",
- "prompted!\n",
- "نمونه namune be ?Ali goftam pul dastat namune\n",
- "prompted!\n",
- "نمونه namune be ?Ali goftam dar xAne namune\n",
- "prompted!\n",
- "نمونه namune rezA be ?Ali Sab dar kavir namune\n",
- "prompted!\n",
- "نمونه namune pedaram be baradaram goft havA ?Alude ?ast birun namune\n",
- "prompted!\n",
- "دهم dahom man dar mosAbeqAt dahom Sodam\n",
- "prompted!\n",
- "دهم dahom dahom farvardin tavallode man ?ast\n",
- "prompted!\n",
- "دهم dahom man dar ruze dahome xordAd ?estexdAm Sodam\n",
- "prompted!\n",
- "دهم dahom man dar dahome dey ?ezdevAj kardam\n",
- "prompted!\n",
- "دهم dahom man dar dahome tir paCCe dAr Sodam\n",
- "prompted!\n",
- "دهم daham dustam goft beheS pul bedaham\n",
- "prompted!\n",
- "دهم daham dustam goft beheS lebAs bedam\n",
- "prompted!\n",
- "دهم daham ?Ali goft SArjam rA beheS bedam\n",
- "prompted!\n",
- "دهم daham hamsaram goft beheS talA bedaham\n",
- "prompted!\n",
- "دهم daham hamsaram goft be ?angoStar bedam\n",
- "prompted!\n",
- "سند send man to sene sAlegi hastam\n",
- "prompted!\n",
- "سند send tu sene sAlegi barandeye mosAbegAte futbAl Sodam\n",
- "prompted!\n",
- "سند send sene dustam pAyin tar ?az man ?ast\n",
- "prompted!\n",
- "سند send sene maryam biStar ?az man ?ast\n",
- "prompted!\n",
- "سند send ?u to sene piri ?ast\n",
- "prompted!\n",
- "سند sanad dustam zendAn bud dAdgA goft sanad biyAram\n",
- "prompted!\n",
- "سند sanad xAne xaridam va foruSande sanad nemizanad\n",
- "prompted!\n",
- "سند sanad motor xaridam sanad nadArad\n",
- "prompted!\n",
- "سند sanad mASin xaridam raftam sanad bezanam\n",
- "prompted!\n",
- "سند sanad sanade xAneam rA gom kardam\n",
- "prompted!\n",
- "سپرم separam separe mASinam Sekast\n",
- "prompted!\n",
- "سپرم separam mASin xaridam separ nadArad\n",
- "prompted!\n",
- "سپرم separam separe mASinam xat ?oftAd\n",
- "prompted!\n",
- "سپرم separam dustam separe man Sod\n",
- "prompted!\n",
- "سپرم separam pedaram separe balAye man Sod\n",
- "prompted!\n",
- "نکن nakkan mive ?az deraxt nakkan\n",
- "prompted!\n",
- "نکن nakkan riS nakkan ?az suratat\n",
- "prompted!\n",
- "نکن nakkan bi ?ejAze mive nakkan\n",
- "prompted!\n",
- "نکن nakkan kAqaze divAro nakkan\n",
- "prompted!\n",
- "نکن nakkan ?az vasate daftar kAqaz nakkan\n",
- "prompted!\n",
- "نکن nakon Suxiye nAjur nakon\n",
- "prompted!\n",
- "نکن nakon ?aziat nakon mAmAn ro\n",
- "prompted!\n",
- "نکن nakon bA qazAt bAzi nakon\n",
- "prompted!\n",
- "نکن nakon bA man bAzi nakon\n",
- "prompted!\n",
- "نکن nakon peli ?esteySen bAzi nakon\n",
- "prompted!\n",
- "ده dah man dah sAl hast ?ezdevAj kardam\n",
- "prompted!\n",
- "ده dah pesare man dah ruze dige bedonya miAyad\n",
- "prompted!\n",
- "ده dah pesare man dah sAl dArad\n",
- "prompted!\n",
- "ده dah dah ruze dige miram sarkAr\n",
- "prompted!\n",
- "ده dah dah ruze dige miram safar\n",
- "prompted!\n",
- "ده deh ?az dehe mA bekandi ?ast\n",
- "prompted!\n",
- "ده deh deh mA dar qazvin ?ast\n",
- "prompted!\n",
- "ده deh man be dehe xodemAn roftam\n",
- "prompted!\n",
- "ده deh dehye mA sarsabz ?ast\n",
- "prompted!\n",
- "ده deh dehye mA por ?az paSe ?ast\n",
- "prompted!\n",
- "ماند mAnad pedaram xAne mimanad\n",
- "prompted!\n",
- "ماند mAnad barAdaram sarkAre xod mimAnad\n",
- "prompted!\n",
- "ماند mAnad mAdaram safar naroft va dar xAne mimAnad\n",
- "prompted!\n",
- "ماند mAnad dustam bexAtere badiye havA dar SahrestAn mimAnad\n",
- "prompted!\n",
- "ماند mAnad dustam dar zendAn mimAnad\n",
- "prompted!\n",
- "ماند mAnd ?Ali dar bAq mAnd\n",
- "prompted!\n",
- "ماند mAnd ?Ali be xAtere marizi dar xAne mAnd\n",
- "prompted!\n",
- "ماند mAnd Con fardA ta?til Sod ?Ali dar xAne mAnd\n",
- "prompted!\n",
- "ماند mAnd parandeam dar qafase xod mAnd\n",
- "prompted!\n",
- "ماند mAnd pedaram be xAtere sarmA dar xAne mAnd\n",
- "prompted!\n",
- "به be be gol ?Ab bedahid\n",
- "prompted!\n",
- "به be be man fohS nadahid\n",
- "prompted!\n",
- "به be be rAhe rAst hedAyat So\n",
- "prompted!\n",
- "به be be man nagu doruq gu\n",
- "prompted!\n",
- "به be be mA rAy bedahid\n",
- "prompted!\n",
- "به bah bah bah Ce havAyi\n",
- "prompted!\n",
- "به bah bah bah Ce jAye qaSangi\n",
- "prompted!\n",
- "به bah bah bah Ce bAqe sarsabzi\n",
- "prompted!\n",
- "به bah bah bah Ce xune?i\n",
- "prompted!\n",
- "به beh beh miveye xoSmazei ?ast\n",
- "prompted!\n",
- "به beh rang beh zard ?ast\n",
- "prompted!\n",
- "به beh beh miveye garmsiri ?ast\n",
- "prompted!\n",
- "به beh beh hasste dArad\n",
- "prompted!\n",
- "به beh beh dar fasle zemestAn miAyad\n",
- "prompted!\n",
- "کند kond ZiyAn mASine kondi ?ast\n",
- "prompted!\n",
- "کند kond doCarxe kondharekat mikanad\n",
- "prompted!\n",
- "کند kond lAkpoSt kond harakat mikonad\n",
- "prompted!\n",
- "کند kond pedarbozorgam kond harakat mikanad\n",
- "prompted!\n",
- "کند kond man kond rAnandegi mikanam\n",
- "prompted!\n",
- "کند kanad dustam zamin mikonad\n",
- "prompted!\n",
- "کند kanad dolat barAye metro tunel mikanad\n",
- "prompted!\n",
- "کند kanad dar filmhA barAye farAr ?az zendAn tunel mikanad\n",
- "prompted!\n",
- "کند kanad barAye kASte dune zamin mikonad\n",
- "prompted!\n",
- "کند kanad barAye kASte gol xAke goldAn va mikanad\n",
- "prompted!\n",
- "کند konad dustam kAr mikonad\n",
- "prompted!\n",
- "کند konad dustam dar tehrAn zendegi mikonad\n",
- "prompted!\n",
- "کند konad man dar SahrestAn zendegi mikanam\n",
- "prompted!\n",
- "کند konad ?Ali dar bAnk kAr mikonad\n",
- "prompted!\n",
- "کند konad ?Ali dar raSt zendegi mikonad\n",
- "prompted!\n",
- "کند kand rezA puste ?ali rA kand\n",
- "prompted!\n",
- "کند kand ?Ali puste gusfand rA mikand\n",
- "prompted!\n",
- "کند kand ?Ali puste kenAre nAxonaS rA kand\n",
- "prompted!\n",
- "کند kand ?Ali kAqaz rA kand\n",
- "prompted!\n",
- "کند kand rezA kAqaze divAri rA kand\n",
- "prompted!\n",
- "گل gel gele qahvei ?ast\n",
- "prompted!\n",
- "گل gel gel bA xAk dorost miSavad\n",
- "prompted!\n",
- "گل gel dar xAk ?Ab berizi gel miSavad\n",
- "prompted!\n",
- "گل gel gele kafSam rA kasif kard\n",
- "prompted!\n",
- "گل gel xAnehAye qadimi bA gel sAxte miSod\n",
- "prompted!\n",
- "گل gol man gole roz dust dAram\n",
- "prompted!\n",
- "گل gol gole ruz buye xubi dAri\n",
- "prompted!\n",
- "گل gol gol ?esme doxtar ?ast\n",
- "prompted!\n",
- "گل gol golforushi Soqle xubi ?ast\n",
- "prompted!\n",
- "گل gol man dar futbAl gol zan hast\n",
- "prompted!\n",
- "کر kor ?Ali kor ?ast\n",
- "prompted!\n",
- "کر kor ?ellate kor Sodan mitavAnad bimAri bASad\n",
- "prompted!\n",
- "کر kor ?Ali rezA rA kor kard\n",
- "prompted!\n",
- "کر kor ?ensAnhAye kor zabAne maxsus dArand\n",
- "prompted!\n",
- "کر kor be ?AdamhAyeye kor miguyad roshandel\n",
- "prompted!\n",
- "کر kar man saxt kAr mikanam\n",
- "prompted!\n",
- "کر kar ?Ali dar bAnk kAr mikonad\n",
- "prompted!\n",
- "کر kar man kArkardan rA dust dAram\n",
- "prompted!\n",
- "کر kar man sarbAz hastam nemitavAnam kAr konam\n",
- "prompted!\n",
- "کر kar kAre talA forushi sude xub dArad\n",
- "prompted!\n",
- "ور ver ?u xeyli ver mizanad\n",
- "prompted!\n",
- "ور ver ?u vere vere jAdu ?ast\n",
- "prompted!\n",
- "ور ver ver zadan xub nist\n",
- "prompted!\n",
- "ور ver ?u Ceqadr ver mizanad\n",
- "prompted!\n",
- "ور ver ver zadane ziyAd xub nabast\n",
- "prompted!\n",
- "ور var ye vare tanam zaxmi Sode bud\n",
- "prompted!\n",
- "ور var ye ru saram dard mikone\n",
- "prompted!\n",
- "ور var ye var pAm dard mikone\n",
- "prompted!\n",
- "ور var ye vare suratam misuze\n",
- "prompted!\n",
- "ور var ye var delam dard mikone\n",
- "prompted!\n",
- "بر bor ?u man rA hammAm bord\n",
- "prompted!\n",
- "بر bor man ?u rA be madrese bordam\n",
- "prompted!\n",
- "بر bor mAmAnam meno be bimArestAn bord\n",
- "prompted!\n",
- "بر bor SomA mAdare bozorgam rA be doktor bordid\n",
- "prompted!\n",
- "بر bor dAdASam marA be maqAze bord\n",
- "prompted!\n",
- "مرد mord ?Ali mord\n",
- "prompted!\n",
- "مرد mord pedarbozorgam bar ?asar sekte kard\n",
- "prompted!\n",
- "مرد mord ?Ali tasAdofi kard va mord\n",
- "prompted!\n",
- "مرد mord kabutar tavassote SekArCiyAn mord\n",
- "prompted!\n",
- "مرد mord hazrat ?Ali bar ?asar Samshire sammi Sahid Sodand\n",
- "prompted!\n",
- "مرد mard ?emAm hoseyn farmudand din nadAri ?AzAde mard bASid\n",
- "prompted!\n",
- "مرد mard ?Ali marde bozorgi bud\n",
- "prompted!\n",
- "مرد mard mard budan kAre saxti ?ast\n",
- "prompted!\n",
- "مرد mard man marde xAnevAde hast\n",
- "prompted!\n",
- "مرد mard rostam marde ?afsAne?i ?ast\n",
- "prompted!\n",
- "پست past dozdi kAre pasti ?ast\n",
- "prompted!\n",
- "پست past kuhe pasti bolandiye ziyAdi dArad\n",
- "prompted!\n",
- "پست past SarAbxAri kAre pasti ?ast\n",
- "prompted!\n",
- "پست past pastihAye jAdde xeyli ziyAd ?ast\n",
- "prompted!\n",
- "پست past pastihAye ziyAdi dar kavir ?ast\n",
- "prompted!\n",
- "پست post poste ?elektoronik kArborde ziyAdi dArad\n",
- "prompted!\n",
- "پست post post nazdike mA ?ast\n",
- "prompted!\n",
- "پست post man nAmeam rA post kardan\n",
- "prompted!\n",
- "پست post man dar ?instaqrAm post gozAStam\n",
- "prompted!\n",
- "پست post poste dustam rA lAyk kardam\n",
- "prompted!\n",
- "کنف kenef man jeloye hame kenef Sodam\n",
- "prompted!\n",
- "کنف kenef kenef Sodan hesse xubi nist\n",
- "prompted!\n",
- "کنف kenef pedaram marA kenef kard\n",
- "prompted!\n",
- "کنف kenef joe bi maze goftam xandidand va kenef Sodam\n",
- "prompted!\n",
- "کنف kenef rezA ?Ali rA kenef kard\n",
- "prompted!\n",
- "کنف kanaf kanaf jense Cub ?ast sandali kanaf dArad\n",
- "prompted!\n",
- "کنف kanaf bA kanaf sanAye?ye dasti mishe dorost kard\n",
- "prompted!\n",
- "کنف kanaf sanAye?ye dastiye kanaf zibA ?ast\n",
- "prompted!\n",
- "کنف kanaf kanafhA ma?mulan range Cub hastid\n",
- "prompted!\n",
- "کنف kanaf kanafhA mesl tanAb hastand\n",
- "prompted!\n",
- "سنت sonnat qorbAni kardane gusfand ?az sonnathAye ?eslAmi ?ast\n",
- "prompted!\n",
- "سنت sonnat ?iyde noruz ?az sonnathAye qadimiye ?irAnihast\n",
- "prompted!\n",
- "سنت sonnat sonnat be ma?nAye ?AdAb va rosume qadimi ?ast\n",
- "prompted!\n",
- "سنت sonnat besyAri ?az sonnathA be nasle digari montaqel miSavad\n",
- "prompted!\n",
- "سنت sonnat hefze sonnate mitavAnad be mA komak bekanad ke farhange xod rA hefz konim\n",
- "prompted!\n",
- "سنت sent dar xiyAbAn yek sent didam\n",
- "prompted!\n",
- "سنت sent ?Ab dar ?AmrikA yek dolA va yek sent ?ast\n",
- "prompted!\n",
- "سنت sent sent yek vAhed ?az ?arz barAbar yek sadom yek dolAre ?iyAlAte mottahede ?ast\n",
- "prompted!\n",
- "سنت sent sent qAleban Sabih yek sekke ?ast\n",
- "prompted!\n",
- "سنت sent namAde sent harfe siye ?engelisi ?ast\n",
- "prompted!\n",
- "سنت sennet hanuz sennet do raqami naSode barAye ?in harfA\n",
- "prompted!\n",
- "سنت sennet hanuz sennet qadd nemide ?in kAro bekoni\n",
- "prompted!\n",
- "سنت sennet sennet kamtar ?az Ciziye ke bAzi kani\n",
- "prompted!\n",
- "سنت sennet sennet barAye didan ?in film monAseb nist\n",
- "prompted!\n",
- "سنت sennet barAye ?anjAme ?in kAr sennet kAfi nist\n",
- "prompted!\n",
- "شبه Sabah Sabahe pirezan hanuz dar qabrestAn dide miSavad\n",
- "prompted!\n",
- "شبه Sabah ?un faqat yek Sabah ?ast tars nadAre\n",
- "prompted!\n",
- "شبه Sabah Sabahe ?An doxtari ke morde hanuz darune xAne ?ast\n",
- "prompted!\n",
- "شبه Sabah SabahhA momken ?ast mujudAte xiyAli bASand\n",
- "prompted!\n",
- "شبه Sabah Sabah yek mozu?e kAmelan qeyre vAqei ?ast\n",
- "prompted!\n",
- "شبه Sebh ?input?Ayn jmlh Sbh ?An ?Ast\n",
- "prompted!\n",
- "شبه Sebh ?in Sebh jomle ?ast\n",
- "prompted!\n",
- "شبه Sebh motazAdde Sebh miSavad zedd\n",
- "prompted!\n",
- "شبه Sebh Sebh dar pArsi miSavad barAbar\n",
- "prompted!\n",
- "شبه Sebh yeki ?az ?AdAb dar ?adabiyAte fArsi Sebh ?ast\n",
- "prompted!\n",
- "ابر ?abr ?abrhA dar ?AsemAn mAnAnad heyvAnAt hastand\n",
- "prompted!\n",
- "ابر ?abr ?abrhA neSAn dahandeye bArandegiye Sadid hastan\n",
- "prompted!\n",
- "ابر ?abr ?abr tudei ?az qatarAte besyAr riz ?ast\n",
- "prompted!\n",
- "ابر ?abr ?abrhA tudei bokhArmAnand hastand\n",
- "prompted!\n",
- "ابر ?abr ?abrhA vaqti be pAyin miAyand meh taSkil midahand\n",
- "prompted!\n",
- "ابر ?abar superman yek ?abar ?ensAn ?ast\n",
- "prompted!\n",
- "ابر ?abar ?AmrikA ?abare qodrate jahAn ?ast\n",
- "prompted!\n",
- "ابر ?abar Cin be sor?at dar hAle tabdil Sodan be yek ?abar qodrate ?eqtesAdi ?ast\n",
- "prompted!\n",
- "ابر ?abar ?abar qodrathA ma?mulan dar zaminehAye nezAmi va fanavariye piSrafte reqAbathAye Sadidi dArand\n",
- "prompted!\n",
- "ابر ?abar barxi ?az keSvarhA talAS mikonand bA hamkArihAye beynolmelali be ?abar qodrathAye jadid tabdil Savand\n",
- "prompted!\n",
- "اپل ?epol ?epol yek vasileye panbei ?ast\n",
- "prompted!\n",
- "اپل ?epol ?epol rA bar ruye SAne qarAr midahand\n",
- "prompted!\n",
- "اپل ?epol ?epolhA ma?mulan zire kathA ?estefAde miSavad\n",
- "prompted!\n",
- "اپل ?epol ?epolhA barAye CahArSune neSAn dAdan ?estefAde miSavand\n",
- "prompted!\n",
- "اپل ?epol SirfarhAd dar SabhAye barare ?az ?epol ?estefAde mikard\n",
- "prompted!\n",
- "اپل ?apel ?apel yek kalameye ?engilisi be ma?niye sib ?ast\n",
- "prompted!\n",
- "اپل ?apel ?apel yek Serkate ?AmerikA?i dar zamineye fanavari va teknoloZi ?ast\n",
- "prompted!\n",
- "اپل ?apel Serkate ?apel ?Ayfone jadide xod rA bedune hiC taqirAti ?arze kard\n",
- "prompted!\n",
- "اپل ?apel Serkate ?Apel laptAphA?i be nAme mak buk dArad ke besyAr zibA hastand\n",
- "prompted!\n",
- "اپل ?apel ?apel ?az pardAzandehAye maxsuse xodaS ?estefAde mikonad\n",
- "prompted!\n",
- "درد darad dar kuh gorg ?u rA midarad\n",
- "prompted!\n",
- "درد darad dar jangal xers ?u rA midarad\n",
- "prompted!\n",
- "درد darad ?u dar hengAme ?asabAniyat lebAse tanaS rA midarad\n",
- "prompted!\n",
- "درد darad ?u pArCe rA midarad tA yek lebAs dorost konad\n",
- "prompted!\n",
- "درد darad Sir bA dandAnhAyaS Sekame ?Ahu rA midarad\n",
- "prompted!\n",
- "درد dard ?emruz sobh gardanam dard mikonad\n",
- "prompted!\n",
- "درد dard dar hengAme ?asabAniyat qalbam dard migirad\n",
- "prompted!\n",
- "درد dard harvaqt mAdaram ?az daste man ?asabAni miSavad miguyad darde bi darmun begiri\n",
- "prompted!\n",
- "درد dard ba?d ?az bASgAh ?azolehAyam dard mikonad\n",
- "prompted!\n",
- "درد dard darde tanhAyi dar man nofuz kard\n",
- "prompted!\n",
- "خیر xeyr xeyr ?in jomle ?eStebAh ?ast\n",
- "prompted!\n",
- "خیر xeyr dar murede ?un mozu? bAyad beam xeyr ?eStebAh fekr mikani\n",
- "prompted!\n",
- "خیر xeyr xeyr man ?un kAro nakardam\n",
- "prompted!\n",
- "خیر xeyr javAbe SomA xeyr bud\n",
- "prompted!\n",
- "خیر xeyr ?u dar pAsox be darxAste ?Ali goft xeyr\n",
- "prompted!\n",
- "خیر xayyer ?u marde xayyeri ?ast be hame komak mikonad\n",
- "prompted!\n",
- "خیر xayyer xayyere dele pAk be ?Aqebate xubi mirasad\n",
- "prompted!\n",
- "خیر xayyer xayyerhA dar rustAhA madrese misAzand\n",
- "prompted!\n",
- "خاراند xArAnad xers taqriban hamiSe xod rA mixArAnad\n",
- "prompted!\n",
- "خاراند xArAnad ?Adame mo?tAd hamiSe xod rA mixArAnad\n",
- "prompted!\n",
- "خاراند xArAnad ?u bA SamSir kamare xod rA mixArAnad\n",
- "prompted!\n",
- "خاراند xArAnad pedaram bA sotune xAne xod rA mixArAnad\n",
- "prompted!\n",
- "خاراند xArAnad barAdaram kamaraS rA be zur mixArAnd\n",
- "prompted!\n",
- "خاراند xArAnd pAyaS rA ba?d ?az tatu besyAr xArAnd\n",
- "prompted!\n",
- "خاراند xArAnd ?u pAye xod rA ba?d suzandn xArAnd\n",
- "prompted!\n",
- "خاراند xArAnd ?Ali surataS rA ba?d ?az bidAr Sodan xArAnd\n",
- "prompted!\n",
- "خاراند xArAnd yuz palang xodaS rA bA deraxt xArAnd\n",
- "prompted!\n",
- "ابی ?ebi ?ebi moxaffafe nAme ?ebrAhim ?ast\n",
- "prompted!\n",
- "ابی ?ebi ?ebi xvAnandeye ma?rufi ?ast\n",
- "prompted!\n",
- "ابی ?ebi ?ebi ?emruz bAqCe rA ?AbyAri kard\n",
- "prompted!\n",
- "ابی ?ebi mA ?u rA ?ebi sedA mizanim\n",
- "prompted!\n",
- "ابی ?ebi ?ebi nAmi por tarafdAr ?ast\n",
- "prompted!\n",
- "ابی ?Abi range morede ?alAqeye man ?Abi ?ast\n",
- "prompted!\n",
- "ابی ?Abi nearistane ?AsemAne ?Abi SAdiAvar ?ast\n",
- "prompted!\n",
- "ابی ?Abi mAdaram lebAsi ?Abi barAyam xarid ?ama man dustaS nadAStam\n",
- "prompted!\n",
- "ابی ?Abi daryA ?Abi va tamiz bud\n",
- "prompted!\n",
- "ابی ?Abi ?en?ekAse ?AsemAn ruye ?Ab bA?es miSavad daryA ?Abi dide Savad\n",
- "prompted!\n",
- "ابی ?ebA ?u ?ebA dASt ke ?ehsAsAtaS rA bA digarAn be ?eSterAk begozArad\n",
- "prompted!\n",
- "ابی ?ebA ?ebA ?az sohbat dar jam? bA?es Sod hamiSe tanhA bASad\n",
- "prompted!\n",
- "ابی ?ebA ?ebA ?az ?inke digarAn qazA?ateS konand bA?es miSod kArhAyi rA ?anjAm nadahad\n",
- "prompted!\n",
- "ابی ?ebA ?u ?az ?inke darbAreye moSkelataS sohbat konad ?ebA dASt\n",
- "prompted!\n",
- "ابی ?ebA ?ebA dAStan ?az Cizi ?Adam rA miranjAnad\n",
- "prompted!\n",
- "مبدل mobaddal ?AnhA bA lebAse mobaddal be maxfi gAhe ?AnhA raftand\n",
- "prompted!\n",
- "مبدل mobaddal lebAse mobaddal barAye maxfi kardane hoviyyat ?estefAde miSavad\n",
- "prompted!\n",
- "مبدل mobaddal ?AnhA lebAshAye mobaddal tolid mikonand\n",
- "prompted!\n",
- "مبدل mobaddal ?u bA lebAse mobaddal ?az Sahr xArej Sod\n",
- "prompted!\n",
- "مبدل mobaddal ?u bA lebAse mobaddal xod rA be Serkat rasAnd\n",
- "prompted!\n",
- "مبدل mobaddel mobaddele soti sedA rA ?avaz mikanad\n",
- "prompted!\n",
- "مبدل mobaddel rezA mobaddele tasvir rA ?az man gereft\n",
- "prompted!\n",
- "مبدل mobaddel ?Ali mobaddeli barAye tabdile ?aks be film tarrAhi kard\n",
- "prompted!\n",
- "مبدل mobaddel barAye ?enteqAle dAde be kAmpiuter be yek mobaddele yu ?es pi niAz dArim\n",
- "prompted!\n",
- "مبدل mobaddel mobaddelhA vazife dArand dAdehA rA be surate sari? ?avaz konand\n",
- "prompted!\n",
- "مو mu ?u muye bolandi dArad\n",
- "prompted!\n",
- "مو mu vaqti bAd mivazad muhAye ?u tekAn mixorad\n",
- "prompted!\n",
- "مو mu ?emruz dar restorAn dar qazAyam mu peydA kardam\n",
- "prompted!\n",
- "مو mu muye heyvAnAt narm ?ast\n",
- "prompted!\n",
- "مو mu muhAye ?u dar ?AftAb mideraxSid\n",
- "prompted!\n",
- "مو mo mAdaram bA bare mo dolme dorost kard\n",
- "prompted!\n",
- "مو mo man dolme barge mo rA dust dAram\n",
- "prompted!\n",
- "مو mo deraxte mo hamAn ?angur ?ast\n",
- "prompted!\n",
- "مو mo dar hayAte xAne deraxe mo dArim\n",
- "prompted!\n",
- "جنگ jang jange jahAniye dovvom ta?sire besyAri ruye jahAn gozASt\n",
- "prompted!\n",
- "جنگ jang dar tule jang sarbAzAn bA CAleSAye ziyAdi rubahru miSavand\n",
- "prompted!\n",
- "جنگ jang janghAye dAxeli bar ?asare ?extelAfe nazar be vojud miAyad\n",
- "prompted!\n",
- "جنگ jang jang SarAyete monAsebi barAye tahsil va zendegi nist\n",
- "prompted!\n",
- "جنگ jang talAS barAye barqarAriye solh va jelogiri ?az jang yeki ?az ?ahdAfe sAzmAnhAye beynolmelali ?ast\n",
- "prompted!\n",
- "سرم saram saram beSeddat dard mikanad\n",
- "prompted!\n",
- "سرم saram vaqti mozu?i rA farAmuS mikanam ma?mulan miguyam saram Soluq ?ast\n",
- "prompted!\n",
- "سرم saram sarak por ?az ?idehAye nAb ?ast\n",
- "prompted!\n",
- "سرم saram saram rA bA ?Abe sard Sostam\n",
- "prompted!\n",
- "سرم saram tA saram rA ruye bAleStam gozAStam sedAyi ?Amad\n",
- "prompted!\n",
- "سرم serom parastAr be sor?at serom rA be man vasl kard\n",
- "prompted!\n",
- "سرم serom doktor dastur dAd serome hAviye vitAmin rA tazriq konand\n",
- "prompted!\n",
- "سرم serom ba?d ?az ?amale jarrAhi bimAr Cand sA?at tahte nazar va zir serom ?ast\n",
- "prompted!\n",
- "سرم serom serom darmAni rAyej dar bimArestAnhA ?ast\n",
- "prompted!\n",
- "سرم serom dar tule doreye SimidarmAni bimAr be moddate tulAni zir serom ?ast\n",
- "prompted!\n",
- "قدم qadam ?u bA yek qadame mohkam vArede sAlon Sod\n",
- "prompted!\n",
- "قدم qadam ?u tasmim gereft ke dar har sobh yek qadam be samte salAmati?aS bardArad va be piyAderuyi beravad\n",
- "prompted!\n",
- "قدم qadam ?avvalin qadam barAye residan be hadaf dAStan ?erade va ?angizeye qavi ?ast\n",
- "prompted!\n",
- "قدم qadam ?u bA yek qadame kuCak be samte deraxt nazdik Sod va be SokufehAye zibA negAh kard\n",
- "prompted!\n",
- "قدم qadam dar yek ruze ?AftAbi qadam zadan dar pArk behtarin rAh barAye ?ArAmeSe ruh va ravAn ?ast\n",
- "prompted!\n",
- "قدم qaddam qaddam ?az bAqi dustAnam bolandtar ?ast\n",
- "prompted!\n",
- "قدم qaddam vaqti be namAyeSgAh miroftam motevajjeh Sodam ke qaddam bA?es miSavad tA dar jam?iyyat biStar dide Savam\n",
- "prompted!\n",
- "قدم qaddam qaddam kutAh ?ast\n",
- "prompted!\n",
- "قدم qaddam man be ?u mazAyAye bolandiye qaddam rA tozih dAdam\n",
- "prompted!\n",
- "قدم qaddam man ?az qaddam rAzi hastam\n",
- "prompted!\n",
- "مایل mAyel ?u hamiSe mAyel ?ast ke dar fa?aliyAthAye goruhi Serkat konad va bA digarAn hamkAri konad\n",
- "prompted!\n",
- "مایل mAyel vaqti be safar miravim mAyel hastam ke ?az jAzebehAye tabi?i didan konam va lahazAte xubi rA tajrobe konam\n",
- "prompted!\n",
- "مایل mAyel dar ruzhAye ta?til ?u mAyel ?ast ke biStar vaqteS rA bA xAnevAdeaS begozarAnad\n",
- "prompted!\n",
- "مایل mAyel be ?onvAne yek honarmand ?u mAyel ?ast ?AsAraS rA be namAyeS begozArad va nazarAte digarAn rA beSenavad\n",
- "prompted!\n",
- "مایل mAyel ?agarCe mAyel budam ke dar ?in proje hamkAri konam ?ama maSqalehAye kAri mAne? ?az ?in kAr Sod\n",
- "prompted!\n",
- "مایل mAyl fAseleye beyne do Sahr be ture taqribi mAyl ?ast va mitavAn ?An rA dar yek sA?at bA mASin tay kard\n",
- "prompted!\n",
- "مایل mAyl zaminlarzei ke dar fAsele mAyl ?az Sahr rox dAd bA?ese negarAniye sAkenAn Sod\n",
- "prompted!\n",
- "مایل mAyl barAye doCarxesavAri dar masirhAye tulAni hamiSe bAyad masAfathA rA be mAyl mohAsebe konim tA barnAmeriziye behtari dASte bASim\n",
- "prompted!\n",
- "مایل mAyl dar naqSexAni har mAyl mo?Adel kilometr ?ast va ?in tabdil be mA komak mikonad tA behtar masAfathA rA dark konim\n",
- "prompted!\n",
- "مایل mAyl mAyl vAhedi barAye ?andAze giriye masAfat ?ast\n",
- "prompted!\n",
- "اسکی ?eski dar zemestAn xAneda?am har sAl be piste ?eski miravand va ?az havAye sard lezzat mibarand\n",
- "prompted!\n",
- "اسکی ?eski ?eski kardan yeki ?az varzeSAye mahbub dar manAteqe kuhestAni ?ast ke be taqviyate ?azolAt komak mikonad\n",
- "prompted!\n",
- "اسکی ?eski man dar ta?tilAte noruzi tasmim gereftam barAye ?avvalin bAr ?eski rA yAd begiram\n",
- "prompted!\n",
- "اسکی ?eski ?eski ruye barf niyAz be tamrin va mahArat dArad tA betavAnid be rAhati dar pist harekat konid\n",
- "prompted!\n",
- "اسکی ?eski dar safar be su?is forsat kardam ke dar yeki ?az behtarin pisthAye ?eski donyA tajrobeye ?eski kardan rA dASte bASam\n",
- "prompted!\n",
- "نسبی nasabi mA be surate nasabi fAmil hastim\n",
- "prompted!\n",
- "نسبی nasabi ?u be surate nasabi be qAjAr vasl miSavad\n",
- "prompted!\n",
- "نسبی nasabi mA ?az nazare nasabi bartar hastim\n",
- "prompted!\n",
- "نسبی nasabi to bA ?An mard Ce nasabi dAri\n",
- "prompted!\n",
- "نسبی nasabi xAnovAde bA ?asl ?o nasabi hast\n",
- "prompted!\n",
- "نسبی nesbi zibAyi mafhumi nesbi ?ast\n",
- "prompted!\n",
- "نسبی nesbi dar falsafe mafhume haqiqate nesbi be ?in ma?ni ?ast ke ?AnCe barAye yek fard dorost ?ast momken ?ast barAye farde digar dorost nabASad\n",
- "prompted!\n",
- "نسبی nesbi dar ravAbete ?ensAni ?ehsAsAt va tajrobiyyAte ?afrAd nesbi hastand va nemitavAn ?AnhA rA be tore kAmel fahmid\n",
- "prompted!\n",
- "نسبی nesbi dar ?elme fizik nazariyeye nesbiye ?aniStayn taqirAte bonyAdi dar darke mA ?az zamAn va fazA rA mo?arrefi kard\n",
- "prompted!\n",
- "نسبی nesbi dar jAme?eSenAsi tabaqeye ?ejtemA?iye ?afrAd be surate nesbi ta?rif mishavad va bastegi be SarAyete ?eqtesAdi va farhangi dArad\n",
- "prompted!\n",
- "گذراند gozarAnad ?u bAyad ?in jAdde rA begozarAnad\n",
- "prompted!\n",
- "گذراند gozarAnad ?u dar durAne tahsil biStare ?oqAte xod rA dar kelAshAye ?AmuzeSi va kArgAhhAye moxtalef migozarAnad\n",
- "prompted!\n",
- "گذراند gozarAnad ?u miguyad ke biStar vaqtaS rA dar mahale kAr migozarAnad\n",
- "prompted!\n",
- "گذراند gozarAnad ?u har hafte ?Axare haftehA rA bA xAnevAde?aS dar kenAre daryACe migozarAnad\n",
- "prompted!\n",
- "گذراند gozarAnad ?u be ?onvAn yek honarmand zamAne ziyAdi rA dar kArgAhaS migozarAnad\n",
- "prompted!\n",
- "گذراند gozarAnd dar safar be xArej ?az keSvar forsat kardam ke farhanghAye moxtalef rA barresi va tajrobehAye jadidi rA gozarand\n",
- "prompted!\n",
- "گذراند gozarAnd ?u barAye behbude salAmate xod ruzAne sA?ati rA be varzeS va morAqebat ?az xod gozarAnd\n",
- "prompted!\n",
- "گذراند gozarAnd ?u tAbestAne gozaSte rA dar yek safare xAnevAdegi be SomAle keSvar gozarAnd va lahazAte xoSi rA tajrobe kard\n",
- "prompted!\n",
- "گذراند gozarAnd ?u be ?onvAne yek dAvtalab dar yek mo?asseseye xeyriyye vaqte xod rA be komak be niyAzmandAn gozarAnd\n",
- "prompted!\n",
- "گذراند gozarAnd ?u durAne saxti rA gozarand\n",
- "prompted!\n",
- "بخور boxor sobhAne yeki ?az mohemtarin va?dehAye qazAyi ?ast banAbarin har ruz yek va?de boxor\n",
- "prompted!\n",
- "بخور boxor dar ruzhAye sarde zemestAn yek fenjAn CAye dAq boxor\n",
- "prompted!\n",
- "بخور boxor qabl ?az raftan be mehmAni kami qazA boxor\n",
- "prompted!\n",
- "بخور boxor mAdar hamiSe migoft boxor tA bozorg beshi va qavi beshi\n",
- "prompted!\n",
- "بخور boxor dar safar be SomAl meqdAri mAhiye tAze xaridim va tasmim gereftim ?An rA boxorim\n",
- "prompted!\n",
- "بخور buxur dar ruzhAye garme tAbestAn behtarin rAh barAye xonak Sodan buxure ?Abe sard ?ast\n",
- "prompted!\n",
- "بخور buxur pezeSkAn tosiye mikonand ke barAye jelogiri ?az garmAzadegi buxure ?Abe sard dASte bASid\n",
- "prompted!\n",
- "بخور buxur dar mehmAni mehmAnhA ?az buxure ?Abe sard ?esteqbAl kardand va hame ?az tarAvate ?An lezzat bordand\n",
- "prompted!\n",
- "بخور buxur buxure ?Abe sard be man ?enerZi midahad va hesse SAdAbi rA be man montaqel mikonad\n",
- "prompted!\n",
- "بخور buxur vaqti bimAr hasti buxur ?Abe garm behtarat mikonad\n",
- "prompted!\n",
- "صرف sarfe barAye yAdgiriye zabAne jadid bAyad zamAn va ?enerZiye ziyAdi sarf konid\n",
- "prompted!\n",
- "صرف sarfe ?u tamAme Sab rA sarfe motAle?e kard tA dar ?emtehAn movaffaq Savad\n",
- "prompted!\n",
- "صرف sarfe Sarfe hazinehAye ?ezAfi dar ?in proje be sarfe nist\n",
- "prompted!\n",
- "صرف sarfe sarfe nazar ?az moSkelAt bAyad be hadafe xod ?edAme dahim\n",
- "prompted!\n",
- "صرف sarfe sarfeye vaqt barAye tafrih va ?esterAhat niz be ?andAzeye kAr ?ahammiyat dArad\n",
- "prompted!\n",
- "صرف serf serfe fe?l dar zabAne fArsi ?az jomleye mahArathAye zaruri barAye neveStane sahih ?ast\n",
- "prompted!\n",
- "صرف serf mo?allem be mA yAd dAd ke Cegune mitavAnim ?af?Al rA be surate sahih serf konim\n",
- "prompted!\n",
- "صرف serf serfe ?esmhA va sefAt dar zabAne ?arabi niyAz be tamrine modAvem dArad\n",
- "prompted!\n",
- "صرف serf mo?allem ?az dAneSAmuzAn xAst tA jomalAt rA serf konand va ?az zamAnhAye moxtalef ?estefAde konand\n",
- "prompted!\n",
- "صرف serf barAye yAdgiriye behtar bAyad ?af?Al rA be dorosti serf konim\n",
- "prompted!\n",
- "قسم qasam man toro qasam dAdam beyne dota barAdar bud\n",
- "prompted!\n",
- "قسم qasam qasam xordane ?alaki kAre xubi nist\n",
- "prompted!\n",
- "قسم qasam qasame ?alaki naxor midunam doruq migi\n",
- "prompted!\n",
- "قسم qasam qasam xodA xordan kArt rA rAh nemi?andAzad\n",
- "prompted!\n",
- "قسم qasam be xodA qasam ke kAre man nabud\n",
- "prompted!\n",
- "گرده gorde gordeye yek rustA dar ?irAn ?ast\n",
- "prompted!\n",
- "گرده gorde gorde rustAyi ?az tavAbe?e baxSe ronize SahrestAne ?estahbAn\n",
- "prompted!\n",
- "گرده gorde rustAye gorde dar ?ostAne fArs ?ast\n",
- "prompted!\n",
- "گرده gorde gorde rustAyi ?ast ke dar ?ertefA?ye metr ?az sat?he daryA va dar mantaqeye kuhestAniye ZAgros vAqe? Sodeh\n",
- "prompted!\n",
- "گرده gorde gorde ?ab ?o havAye mo?tadeli dArad\n",
- "prompted!\n",
- "مبلغ mablaq ?input?Ayn mASyn mblqS zyAd ?Ast\n",
- "prompted!\n",
- "مبلغ mablaq mablaqe xubi barAye ?in jens midaham\n",
- "prompted!\n",
- "مبلغ mablaq Ce mablaqhAyi mitavAni beguyi\n",
- "prompted!\n",
- "مبلغ moballeq moballeqe din be rustAhA rafte bud\n",
- "prompted!\n",
- "مبلغ moballeq ?u moballeqe dusti bud\n",
- "prompted!\n",
- "مبلغ moballeq moballeqhA be mardom ?AmuzeS midAdand\n",
- "prompted!\n",
- "مبلغ moballeq moballeqhAye dini dar sarAsare jahAn fa?aliyat mikonand\n",
- "prompted!\n",
- "مبلغ moballeq moballeqhAye farhangi naqSe mohemmi dar jAme?e dArand\n",
- "prompted!\n",
- "حسن hasan hasan dar kuCe futbAl bAzi mikonad\n",
- "prompted!\n",
- "حسن hasan boro be hasan begu\n",
- "prompted!\n",
- "حسن hasan hasan ?emAme dovvome Si?iyAn ?ast\n",
- "prompted!\n",
- "حسن hasan hasan jAn nabAyad dast to damAghat bekani\n",
- "prompted!\n",
- "حسن hasan hasan kAre bad nakon\n",
- "prompted!\n",
- "حسن hosn hosne niyyate xubi dAri\n",
- "prompted!\n",
- "حسن hosn hosne ?in kAr dar ?in ?ast ke Cizi yAd migiri\n",
- "prompted!\n",
- "حسن hosn hosne to ?in ?ast ke fahmideyi\n",
- "prompted!\n",
- "حسن hosn hosne dusti ?in ?ast ke tanhA nisti\n",
- "prompted!\n",
- "حسن hosn hosn yek kalamei barAye ?adA kardan niyyate taraf ?ast\n",
- "prompted!\n",
- "کره kore koreye ?asb be ma?nAye baCCeye ?asb hasteS\n",
- "prompted!\n",
- "کره kore ?ajab kore xari hasti to\n",
- "prompted!\n",
- "کره kore kore xar ye bAr boht migam\n",
- "prompted!\n",
- "کره kore kore xar be baCCeye xar gofte miSavad\n",
- "prompted!\n",
- "کره kore korexar yeki ?az fohSAye morede ?alAqeye tamAmiye pedarAn ?ast\n",
- "prompted!\n",
- "کره kare kare ro ruye nun bemAl\n",
- "prompted!\n",
- "کره kare kareye bAdum zamini xoSmaze ?ast\n",
- "prompted!\n",
- "کره kare kare va panir ?Ali ?ast\n",
- "prompted!\n",
- "کره kare bA kare berenj dorost kon behtar ?ast\n",
- "prompted!\n",
- "کره kare kareye bAdume zamini rey nune tost ?Ali miSavad\n",
- "prompted!\n",
- "کره korre zamin yek korre ?ast\n",
- "prompted!\n",
- "کره korre korreye zamin dar garmtarin sAlhAye xod ?ast\n",
- "prompted!\n",
- "کره korre korreye zohal nazdik be setAreye xorSid ?ast\n",
- "prompted!\n",
- "کره korre korreye zamin biStar moteSakkel Sode ?ast ?az ?Ab\n",
- "prompted!\n",
- "کره korre korreye zamin se ?asre yaxbandAn rA poSt sar gozASt\n",
- "prompted!\n",
- "عود ?ud ?ud rA roSan kon tA buye sigAr beravad\n",
- "prompted!\n",
- "عود ?ud dar kAfehA barAye ?az bein bordane buye sigAr ?ud ?AtaS mikanand\n",
- "prompted!\n",
- "عود ?ud ?ud barAye xoSbu kardane fazA xub ?ast\n",
- "prompted!\n",
- "عود ?ud ?ud yeki ?az vasAyeli ?ast ke dar ma?Abede budA ?estefAde miSod\n",
- "prompted!\n",
- "عود ?ud kasAni ke fAze honari dArand ?ud roSan mikanand va be riyeye xod ?Asib miresAnand\n",
- "prompted!\n",
- "عود ?od bimAriye riyaviye ?u ?od karde ?ast\n",
- "prompted!\n",
- "عود ?od saratAne ?u ?ud karde ?ast\n",
- "prompted!\n",
- "عود ?od mariziye qalbiye man ?ud karde ?ast\n",
- "prompted!\n",
- "عود ?od ?agar sigAr nakeSi ?ud nemikanad\n",
- "prompted!\n",
- "عود ?od Cerke badanaS ?od karde ?ast dArad mimirad\n",
- "prompted!\n",
- "چشم CeSm ?u CehAr CeSm ?ast\n",
- "prompted!\n",
- "چشم CeSm CeSme ?u za?if ?ast pas bAyad ?eynaki bezanad\n",
- "prompted!\n",
- "چشم CeSm ?az dozdAne daryAyi ma?mulan tak CeSm budand\n",
- "prompted!\n",
- "چشم CeSm ?udin CeSme xod rA barAye ?elm va dAneS fadA kard\n",
- "prompted!\n",
- "چشم CeSm tur pesare ?udin do tA ?az CeSmhAye xod rA barAye ?elm va dAneS fadA kard\n",
- "prompted!\n",
- "چشم CaSm CaSm ?in kAr rA ?anjAm midaham\n",
- "prompted!\n",
- "چشم CaSm be pedar va mAdare xod CaSm begu\n",
- "prompted!\n",
- "چشم CaSm be ruye CaSm ?ellA ?anjAm midaham\n",
- "prompted!\n",
- "چشم CaSm bAyad be ra?ise xod CaSm beguyi\n",
- "prompted!\n",
- "چشم CaSm bASe Ciye? begu CaSm ?arbAb\n",
- "prompted!\n",
- "چشم CeSam CeSam ?az hadaqe zad birun\n",
- "prompted!\n",
- "چشم CeSam CeSam za?if ?ast nemibinam\n",
- "prompted!\n",
- "چشم CeSam CeSam nemitavAnad dur rA bebinad\n",
- "prompted!\n",
- "چشم CeSam CeSam ?Asib dide ?ast\n",
- "prompted!\n",
- "خلف xolf borhAne xolf yeki ?az masA?ele riyAzi ?ast\n",
- "prompted!\n",
- "خلف xolf ?in ?amale ?u xolf bA qavAnin bud\n",
- "prompted!\n",
- "خلف xolf xolfe va?de neshAneye bie?temAdi ?ast\n",
- "prompted!\n",
- "خلف xolf ?u be dalile xolfe va?de ?az dustAnaS dur ?oftAd\n",
- "prompted!\n",
- "خلف xalaf ?u baCCeye nA xalafe xAneda bud\n",
- "prompted!\n",
- "خلف xalaf ?u be ?onvAne xalafe pedaraS mas?uliyathAye bozorgi rA bar ?ohde gerefte ?ast\n",
- "prompted!\n",
- "خلف xalaf dar ?adabiyAt xalaf be ma?nAye jAneSin va vAres niz be kAr miravad va mitavAnad neSAndahandeye ?edAmedahandeye rAhe yek Saxsiyyat bASad\n",
- "prompted!\n",
- "خلف xalaf xalaf bAyad ?az tajrobiyyAte gozaStegAne xod bahremand Savad\n",
- "prompted!\n",
- "خلف xalaf ?u ?az xalafe xod ?entezAr dASt ke be ?u ?eftexAr konad\n",
- "prompted!\n",
- "حقه hoqqe Ceqadr to hoqqebAz hasti\n",
- "prompted!\n",
- "حقه hoqqe ?enqad hoqqe nazan\n",
- "prompted!\n",
- "حقه hoqqe dastat ro Sod dige nemituni hoqqe bezani be man\n",
- "prompted!\n",
- "حقه hoqqe hoqqei tu ?Astin dAri\n",
- "prompted!\n",
- "حقه haqqe haqqe zarfe kuCi barAye negah dAStane ?aSyA ?ast\n",
- "prompted!\n",
- "حقه haqqe ?in guSvAre ro bendAz to haqqe\n",
- "prompted!\n",
- "حقه haqqe be nazaram barAye vasAyelat be haqqe niAz dAri\n",
- "prompted!\n",
- "حقه haqqe ?in vasat haqqeye man Sekast\n",
- "prompted!\n",
- "حقه haqqe be nazaram bAyad yek haqqeye ?Ahani bexaram\n",
- "prompted!\n",
- "شل Sal ?u pAyaS Sal mizad\n",
- "prompted!\n",
- "شل Sal ?u dastaS Sal mizad\n",
- "prompted!\n",
- "شل Sal qolanjhAyat rA naSkan Sal mizani pir Sodi\n",
- "prompted!\n",
- "شل Sal ?u pirmardi bud ke maqzaS Sal mizanad\n",
- "prompted!\n",
- "شل Sal ?Arturez bA?es miSavad Sal bezani\n",
- "prompted!\n",
- "شل Sol Ceqadr to Solo vali\n",
- "prompted!\n",
- "شل Sol Sol ?o vol kAr nakon\n",
- "prompted!\n",
- "شل Sol ?engad Sol nabAS seft begir xodeto\n",
- "prompted!\n",
- "شل Sol ?az bas qazA nemixori Sol Sodi\n",
- "prompted!\n",
- "شل Sol mesle mAst Sol vAynistA\n",
- "prompted!\n",
- "ادبا ?adabA man ?aslan va ?abadan ?inkAr rA nemikonam\n",
- "prompted!\n",
- "ادبا ?adabA man ?aslan va ?abadan be ?u biehtarAmi nemikonam\n",
- "prompted!\n",
- "ادبا ?adabA man ?aslan va ?abadan ?an jA nemiram\n",
- "prompted!\n",
- "ادبا ?adabA man ?aslan va ?abadan nemixAbam\n",
- "prompted!\n",
- "برس beres be hadafe xod beres\n",
- "prompted!\n",
- "برس beres be muhAyat beres harruz sobh\n",
- "prompted!\n",
- "برس beres bA tipe xod beres\n",
- "prompted!\n",
- "برس beres be zendegiye xodat beres veleS kon\n",
- "prompted!\n",
- "برس beres be ?ArezuhAyat beres\n",
- "prompted!\n",
- "برس bores bores barAye muhAyat xatarnAk ?ast\n",
- "prompted!\n",
- "برس bores bores rA sare jAyaS begozAr\n",
- "prompted!\n",
- "برس bores to muhAyat rA bA bores bAyad Sune kani\n",
- "prompted!\n",
- "برس bores bores rA bardAre va be salmAni boro\n",
- "prompted!\n",
- "برس bores bores yek no? SAne ?ast ke gerd ?ast barAye muhAye fer be kA miravad\n",
- "prompted!\n",
- "گرم garm ?emruz sobh havA besyAr garm bud va bA?es Sod ke tasmim begirim be sAhel beravim\n",
- "prompted!\n",
- "گرم garm ?u yek fenjAn CAye garm barAye mehmAnAnaS dorost kard tA ?az sarmA dar ?amAn bemAnand\n",
- "prompted!\n",
- "گرم garm ?in pAlto be qadri garm ?ast ke hattA dar sardtarin ruzhAye zemestAn ham mitavAn ?az ?An ?estefAde kard\n",
- "prompted!\n",
- "گرم garm dar tAbestAn ruzhA ma?mulan garm va SabhA havA xonaktar miSavad\n",
- "prompted!\n",
- "گرم garm vaqti dar zire ?AftAb neSastam ?ehsAs mikonam ke puste badanam garm miSavad\n",
- "prompted!\n",
- "سحر sahar sahar zamAni ?ast ke ?AsemAn be ranghAye zibAye talAyi va surati dar miAyad\n",
- "prompted!\n",
- "سحر sahar ?u har ruz sobhe zud bidAr miSavad tA ?az zibAyihAye sahar lezzat bebarad\n",
- "prompted!\n",
- "سحر sahar sahar yek hesse xASi dArad ke ?ensAn rA be tafakkor va ?ArAmeS da?vat mikonad\n",
- "prompted!\n",
- "سحر sahar dar sahar parandegAn Soru? be xAndane ?AvAz mikonand va fazA rA por ?az zendegi mikonand\n",
- "prompted!\n",
- "سحر sahar sahar zamAne monAsabi barAye mediteySan va tafakkor darbAreye ?ahdAfe ruzAne ?ast\n",
- "prompted!\n",
- "سحر sehr ?u hamiSe be dAstAnhAye sehr va jAdu ?alAqe dASt va bA xAndane ketAbhAye taxayyoli sA?athA sargarm miSod\n",
- "prompted!\n",
- "سحر sehr dar yek Sabe tArik va mehAlud sehr va jAdu dar dele jangal be ?oje xod rasidand\n",
- "prompted!\n",
- "سحر sehr mo?alleme jAdugari be SAgerdAnaS yAd midahad ke Cegune ?az sehr barAye komak be digarAn ?estefAde konand\n",
- "prompted!\n",
- "سحر sehr dar ?afsAnehA doxtarAne javAn bA sehr va jAdu mitavAnestand be ?ArezuhAyeSan dast yAband\n",
- "prompted!\n",
- "سحر sehr sehr va jAdu dar farhanghAye moxtalef namAdhAye motAfAveti dArand va har kodAm dAstAnhAye xAse xod rA revAyat mikonand\n",
- "prompted!\n",
- "سنی sonni ?aksariyate mardome semnAn sonni hastand\n",
- "prompted!\n",
- "سنی sonni sonni hA niz haqq dArand dar kAbine dolat bASand\n",
- "prompted!\n",
- "سنی sonni sonnihA besyAr ?AdamhAye mote?assebi hastand\n",
- "prompted!\n",
- "سنی sonni midunesti mohammad sonni ?ast\n",
- "prompted!\n",
- "سنی sonni mA nabAyad be ?aqAyede sonnihA bi ?ehterAmi bekanim\n",
- "prompted!\n",
- "سنی senni ?u dar senni ?ast ke mitavAnad be tanhAyi tasmimAte mohemmi begirad\n",
- "prompted!\n",
- "سنی senni man hamiSe be ?in fekr mikonam ke dar Ce senni mitavAnam be ?ahdAfam dast peydA konam\n",
- "prompted!\n",
- "سنی senni dar senni ke ?u ?aknun dArad bAyad biStar be ta?hSilAtaS tavajjoh konad\n",
- "prompted!\n",
- "ببر bebar fAylhA rA be jAye digar bebar\n",
- "prompted!\n",
- "ببر bebar vasilehA bebar bA xodat\n",
- "prompted!\n",
- "ببر bebar ?in baCCe rA bA xod bebar\n",
- "prompted!\n",
- "ببر bebar guni rA bebar be ?anbAr\n",
- "prompted!\n",
- "ببر bebar gushit ra bebar bA xodat\n",
- "prompted!\n",
- "ببر babr babr yeki ?az xatarnAktarin heyvAnAt ?ast\n",
- "prompted!\n",
- "ببر babr babr yek gorbe sAn ?ast\n",
- "prompted!\n",
- "ببر babr babr hA xatarnAk hastand\n",
- "prompted!\n",
- "ببر babr babr mitavAnad ?az deraxt bAlA beravad\n",
- "prompted!\n",
- "ببر babr bAyad jeloye babr bAesti tA fekr konad to SekAre xubi nisti\n",
- "prompted!\n",
- "فهماند fahmAnd ?u manzure xod rA be xubi fahmAnd\n",
- "prompted!\n",
- "فهماند fahmAnd ?u be tarfaS fahmAnd harf bA kist\n",
- "prompted!\n",
- "فهماند fahmAnd mohammad be dAniyAl fahmAnd ke biStar zur dArad\n",
- "prompted!\n",
- "فهماند fahmAnd borhAn be hame fahmAnd ke moSkele ?asabi dArad\n",
- "prompted!\n",
- "فهماند fahmAnd borhAn be mohammad fahmAnd ke nabAyad bad bA dAniyAl sohbat konad\n",
- "prompted!\n",
- "فهماند fahmAnad barhA dArad be to mifahmAnd ke nArAhat Sode ?ast\n",
- "prompted!\n",
- "فهماند fahmAnad mohammad dArad mifahmAnad\n",
- "prompted!\n",
- "فهماند fahmAnad ?u be mA CizhAye moxtalefi rA mifahmAnad\n",
- "prompted!\n",
- "فهماند fahmAnad ?u sa?y dASt be mA befahmAnad ke kAremAn ?eStebAh ?ast\n",
- "prompted!\n",
- "فهماند fahmAnad mAdar be baCCe?aS mifahmAnad\n",
- "prompted!\n",
- "اوا ?evA ?evA CerA ?in ?oftAd zamin\n",
- "prompted!\n",
- "اوا ?evA ?eva mohsen dASt harf mizad\n",
- "prompted!\n",
- "اوا ?evA ?evA nAxonam Sekast\n",
- "prompted!\n",
- "اوا ?evA vagtiye pesar bege ?evA moSkel dAre\n",
- "prompted!\n",
- "اوا ?evA ?evA gushiam Sekast\n",
- "prompted!\n",
- "اوا ?AvA ?AvA ?u xeyli xub ?ast\n",
- "prompted!\n",
- "اوا ?AvA sedAye ?u xub ?ast qaSange ?AvAye xod rA kontorol mikonad\n",
- "prompted!\n",
- "اوا ?AvA ?AvA yeki ?az bahshAye xAnandegi ?ast ke bAyad kontorol Savad tavassote fard\n",
- "prompted!\n",
- "اوا ?AvA ?AvAye goftAr besyAr mohem ?ast\n",
- "prompted!\n",
- "اوا ?AvA ?AvA fard bAyad xub bASad tA betavAnad guyande Savad\n",
- "prompted!\n",
- "اشکال ?eSkAl ?in kArt ?eSkAl dArad\n",
- "prompted!\n",
- "اشکال ?eSkAl ?in barnAme por ?az ?eSkAl ?ast\n",
- "prompted!\n",
- "اشکال ?eSkAl barnAmeye darsiat ?eSkAl dArad\n",
- "prompted!\n",
- "اشکال ?eSkAl ?in no? hale mas?ale ?eSkAl dArad\n",
- "prompted!\n",
- "اشکال ?eSkAl ?in no?e tarbiyat ?eSkAl dArad\n",
- "prompted!\n",
- "اشکال ?aSkAl ?aSkAle hendesi dar zendegiye ruzmarreye mA ziyAd hastand\n",
- "prompted!\n",
- "اشکال ?aSkAl ?aSkAle moxtalefi rA mitavAni bekeSi\n",
- "prompted!\n",
- "اشکال ?aSkAl dar riyAzi ?aSkAl ma?ni va manteqitar miSavand\n",
- "prompted!\n",
- "اشکال ?aSkAl ?aSkAl be yAdgiriye kudak komak mikonand\n",
- "prompted!\n",
- "اشکال ?aSkAl ?aSkAl mitavAnand be darke mozu komak konand\n",
- "prompted!\n",
- "بین bin mAdeye mozAre? didan rA bin miguyand\n",
- "prompted!\n",
- "بین bin bin bAyad bA fe?le komaki biyAd\n",
- "prompted!\n",
- "بین bin bin be xodi xod ma?ni nadArad\n",
- "prompted!\n",
- "بین bin mesAl barAye bine ?u nesbat be hame Ciz badbin ?ast\n",
- "prompted!\n",
- "بین bin ?u yek ?ensAne jahAnbin ?ast\n",
- "prompted!\n",
- "بین beyn beynolnahrein jAyi bud ke tamaddon hA Sekl gereft \n",
- "prompted!\n",
- "بین beyn beyne do rud rustAyi hast be ?AnjA boro\n",
- "prompted!\n",
- "بین beyn beyne do Sahr hatman bAyad rustAyi bASad\n",
- "prompted!\n",
- "بین beyn beyne ?in do nafar yeki rA ?entexAb kon\n",
- "prompted!\n",
- "بین beyn beyn ?o man ?o dustat yeki ro ?entexAb kon\n",
- "prompted!\n",
- "سرور sorur be jaSn va sorur pardAxtand\n",
- "prompted!\n",
- "سرور sorur ba?d ?az da?vA be SAdi va sorur raqsidan\n",
- "prompted!\n",
- "سرور sorur sorur ?o SAdi dar marAseme ?arusi ziyAd bud\n",
- "prompted!\n",
- "سرور sorur ?u ba?d ?az ?azAdAri be jaSn va sorur raft\n",
- "prompted!\n",
- "سرور sorur sorur ?o SAdi barAye ruhiyye xub ?ast\n",
- "prompted!\n",
- "سرور sarvar bale sarvaram ?amr befarmAyid\n",
- "prompted!\n",
- "سرور sarvar sarvare mA SomA hastid\n",
- "prompted!\n",
- "سرور sarvar nokaretam SomA sarvar mAid\n",
- "prompted!\n",
- "سرور sarvar perspolis sarvar ?esteqlAle\n",
- "prompted!\n",
- "سرور sarvar sarvar be pAdeSah va ?afrAde boland martabe miguyand\n",
- "prompted!\n",
- "سرور server servere ?in veb sAyt dar hAle ta?mir ?ast va tA Cand sA?ate digar dar dastres naxAhad bud\n",
- "prompted!\n",
- "سرور server ?agar mixAhid veb sAyte xod rA rAhAndAzi konid bAyad yek servere majAzi xaridAri konid\n",
- "prompted!\n",
- "سرور server servere ditAbise mA be dalile hajme bAlAye ?etelA?At ?az kAr ?oftAde ?ast\n",
- "prompted!\n",
- "سرور server lotfan tA zamAne rAhAndAziye servere jadid ?az vebsAyt ?estefAde nakonid\n",
- "prompted!\n",
- "مفصل mafsal mafsale zAnuyaS dard mikanad\n",
- "prompted!\n",
- "مفصل mafsal mafsal yeki ?az ?ajzAye badan ?ast\n",
- "prompted!\n",
- "مفصل mafsal mofs?al dar badane ?ensAn va mujudAt vojud dArand\n",
- "prompted!\n",
- "مفصل mafsal mafsale moC dastaS dard mikard\n",
- "prompted!\n",
- "مفصل mafsal mafsale ?u ?az jA dar ?umade bud\n",
- "prompted!\n",
- "مفصل mofassal ?in dAstAn mofassal ?ast\n",
- "prompted!\n",
- "مفصل mofassal ?in ketAbe mofassal rAjeb to tozih dAde ?ast\n",
- "prompted!\n",
- "مفصل mofassal ?in qaziyye mofassal ?ast bAyad ba?dan begam\n",
- "prompted!\n",
- "مفصل mofassal bAyad beSinim mofassal rAjeb mozu? sohbat konim\n",
- "prompted!\n",
- "مفصل mofassal ?in ketAbe mofassal rAjeb hame Ci tozih dAde ?ast\n",
- "prompted!\n",
- "فرار farAr ?u ?az daste pedar mAdaraS farAr kard\n",
- "prompted!\n",
- "فرار farAr doxtare bi hayA ?az xAne farAr mikani?\n",
- "prompted!\n",
- "فرار farAr farAr kardan ?az moSkelA rAh hal nist\n",
- "prompted!\n",
- "فرار farAr ?u ?az tarse ?a?rAbe vahSi be keSvare digari farAr kard\n",
- "prompted!\n",
- "فرار farrAr ?az ?in nu?e bAzihA farrAr ?ast\n",
- "prompted!\n",
- "فرار farrAr ?in filmhA digar farrAr Sodand\n",
- "prompted!\n",
- "فرار farrAr ?in gAz besyAr farrAr ?ast\n",
- "prompted!\n",
- "فرار farrAr ?u be donbAle Soqli bA darAmade farrAr ?ast\n",
- "prompted!\n",
- "فرار farrAr ?in mAdeye SimiyAyi besyAr farrAr ?ast va buye tondi dArad\n",
- "prompted!\n",
- "سبک sabk ?in vidiyo geym sabke morede ?alAgheye man ?ast\n",
- "prompted!\n",
- "سبک sabk sabke man tuye musiqi motafavettar ?az baqiye ?ast\n",
- "prompted!\n",
- "سبک sabk metAl yek sabke musiqi ?ast\n",
- "prompted!\n",
- "سبک sabk ?Ayin be yek sabke zendegi niz miguyand\n",
- "prompted!\n",
- "سبک sabk sabke ?elmi taxayyoli rA dust nadAram\n",
- "prompted!\n",
- "سبک sabok ba?d ?az oftane moSkelatam sabok Sodam\n",
- "prompted!\n",
- "سبک sabok ?AxeyS sabok Sodam xeyli delam por bud\n",
- "prompted!\n",
- "سبک sabok vaznam kam Sode sabok Sodam\n",
- "prompted!\n",
- "سبک sabok bAyad qAyeq rA sabok konim tA qarq naSavad\n",
- "prompted!\n",
- "سبک sabok dAniyAl besyAr sabok ?ast\n",
- "prompted!\n",
- "تپاند tapAnad kudak bA moSt ruye miz mitapAnad\n",
- "prompted!\n",
- "تپاند tapAnad tabl rA bA Cub mitapAndand tA ritm rA moSaxxas konand\n",
- "prompted!\n",
- "تپاند tapAnad pedaraS bA ?asabAniyat moStaS rA ruye miz mitapAnad\n",
- "prompted!\n",
- "تپاند tapAnad sedAye derAm modAm gushaS rA mitapAnad\n",
- "prompted!\n",
- "تپاند tapAnad tars qalbeS rA dah barAbar mitapAnad\n",
- "prompted!\n",
- "سیر seyr seyre takAmol jAleb ?ast\n",
- "prompted!\n",
- "سیر seyr mA be SomAle keSvar seyr ?o safar kardim\n",
- "prompted!\n",
- "سیر seyr seyr be keSvarhAye digar tajrobe hAye jadidi rA barAye mA be ?armaqAn miAvarad\n",
- "prompted!\n",
- "سیر seyr seyr ?o safar bA qatAr besyAr zibA ?ast\n",
- "prompted!\n",
- "سیر sir ?az buye sir motenaferam\n",
- "prompted!\n",
- "سیر sir sire xAsiyyate zedde?ofuni dArad\n",
- "prompted!\n",
- "سیر sir sir yeki ?az mohemtarin ?adviyehA dar ?ASpaziye raStihA ?ast\n",
- "prompted!\n",
- "سیر sir ?az harf zadan sir naSodi?\n",
- "prompted!\n",
- "پهن pahn ?in rudxAne pahn ?ast\n",
- "prompted!\n",
- "پهن pahn ?u labxandi pahn bar surat ?andAxt\n",
- "prompted!\n",
- "پهن pahn sofre rA pahn kard\n",
- "prompted!\n",
- "پهن pahn qatre ?in ketAb besyAr pahn ?ast va jA dArad\n",
- "prompted!\n",
- "پهن pahn ?in kAmiyone pahn peykar ?ast\n",
- "prompted!\n",
- "پهن pehen buye pehen dar pArk piCide bud\n",
- "prompted!\n",
- "پهن pehen keSAvarz pehen rA ruye zamine keSAvarzi paxS kard\n",
- "prompted!\n",
- "پهن pehen pehen barAye taqviyate xAk va mahasulAte keSAvarzi besyAr mofid ?ast\n",
- "prompted!\n",
- "پهن pehen gusfandhA dar ?Aqol pehene ziyAdi toleid mikonand\n",
- "prompted!\n",
- "مهر mohr pAdeSAh bar ruye nAme mohr zad\n",
- "prompted!\n",
- "مهر mohr mohre ta?eid bar ruye ?in barge hast\n",
- "prompted!\n",
- "مهر mohr mohre gomrok bar ruye ?in vasile zade Sode ?ast\n",
- "prompted!\n",
- "مهر mohr mohre pAdSAh bar ruye sekke hak Sode bud\n",
- "prompted!\n",
- "مهر mohr ?angoStariye mohre ?u besyAr zibA bud\n",
- "prompted!\n",
- "مهر mehr mehre mAdar dar delaS nofuz kard\n",
- "prompted!\n",
- "مهر mehr bA mehr va mohebbat bA hamdigar raftAr kardand\n",
- "prompted!\n",
- "رسم rasm bAyad nemudAr ro rasm konim\n",
- "prompted!\n",
- "رسم rasm rasme hendese xayli saxte\n",
- "prompted!\n",
- "رسم rasm bA rasme Sakl tozih dAde\n",
- "prompted!\n",
- "رسم rasm bAyad naqSeye sAxtemAn ro ?avval rasm konim\n",
- "prompted!\n",
- "رسم resam balAkhare be ?un Cizi ke mikhAm mirasam\n",
- "prompted!\n",
- "رسم resam bA ?in sor?ate kam ke dAri miri dir mirasim\n",
- "prompted!\n",
- "رسم resam harCi talAS mikanam bAzam nemirasam\n",
- "prompted!\n",
- "رسم resam ?agar dir beresam ?az havApeymA jA mimunam\n",
- "prompted!\n",
- "شنو Senav SedAyam rA bA deqqat miSenavad\n",
- "prompted!\n",
- "شنو Senav ?u ?aslan harfhAyam rA nemiSenav\n",
- "prompted!\n",
- "شنو Seno Seno ke man ?az to Ce mixAham\n",
- "prompted!\n",
- "شنو Seno Seno ?in dAstAn rA\n",
- "prompted!\n",
- "شنو Seno Seno man Ce miguyam\n",
- "prompted!\n",
- "شنو Seno Seno ke farmAndeh Ce mixAhad\n",
- "prompted!\n",
- "شنو Seno Seno dasturAte ra?is rA\n",
- "prompted!\n",
- "خواباند xAbAnad ?u dArad kudakaS rA mixAbAnad\n",
- "prompted!\n",
- "خواباند xAbAnad gusfand rA ruye zamin mixAbAnad tA ?u rA sar bebarad\n",
- "prompted!\n",
- "خواباند xAbAnad mAdar bejehAyaS rA mixAbAnd\n",
- "prompted!\n",
- "خواباند xAbAnad ?u rA bA lAlAyi mixAbAnad\n",
- "prompted!\n",
- "خواباند xAbAnad ?u xAhare kuCaktaraS rA bA qesse oftan mixAbAnad\n",
- "prompted!\n",
- "خواباند xAbAnd mAdar kudakaS rA xAbAnd\n",
- "prompted!\n",
- "خواباند xAbAnd sedAye ?u rA bA xAbAnd\n",
- "prompted!\n",
- "نرم naram ?agar naram madrese bisavAd mimunam tA ?Axare ?omr\n",
- "prompted!\n",
- "نرم naram ?agar naram sarbAzi pAsport nemitunam begiram\n",
- "prompted!\n",
- "نرم naram be man goft ?age naram nArAhat miSam\n",
- "prompted!\n",
- "نرم naram dust dAram beram vali ye delam mige naram\n",
- "prompted!\n",
- "نرم naram ?age naram ?unjA jarime miSam\n",
- "prompted!\n",
- "نرم narm kerem bA?es narmiye dast miSavad\n",
- "prompted!\n",
- "رساند resAnad ?AnhA rA be ham miresAnad\n",
- "prompted!\n",
- "رساند resAnad mA rA be maqsad miresAnad\n",
- "prompted!\n",
- "رساند resAnad dustaS rA miresAnad tA xAne\n",
- "prompted!\n",
- "رساند resAnad helAle ?ahmar komakhAye mardomi rA miresAnd\n",
- "prompted!\n",
- "رساند resAnad xeyraS rA be baqi?e miresAnad\n",
- "prompted!\n",
- "رساند resAnd hadAyA rA be daste ?AnhA resAnd\n",
- "prompted!\n",
- "رساند resAnd xAsteye man rA be modir resAnd\n",
- "prompted!\n",
- "رساند resAnd ?u payAme man rA sari? resAnd\n",
- "prompted!\n",
- "لمباند lombAnad ?u qazA rA milombAnad\n",
- "prompted!\n",
- "لمباند lombAnad guSte morq rA mese mesle Ci milombAnad\n",
- "prompted!\n",
- "لمباند lombAnad tamAme qazAhA rA dArad milombAnad\n",
- "prompted!\n",
- "لمباند lombAnad kole mivehA rA milombAnad\n",
- "prompted!\n",
- "لمباند lombAnad keyk rA milombAnad\n",
- "prompted!\n",
- "لمباند lombAnd ?AdAms rA bA lezzat lombAnd\n",
- "prompted!\n",
- "لمباند lombAnd sare kelAse dars faqat lombAnd\n",
- "prompted!\n",
- "لمباند lombAnd tamAme dahAnaS rA lombAnd\n",
- "prompted!\n",
- "میدانی midAni midAni ?agar dars bexAyi movaffaq miSavi\n",
- "prompted!\n",
- "میدانی midAni midAni ke Ce kAri bAyad ?anjAm dahi\n",
- "prompted!\n",
- "میدانی midAni midAni ?in Soql Ce qadr xatarnAk ?ast\n",
- "prompted!\n",
- "میدانی midAni midAni ?agar naravi be mehmAniye ?u nArAhat miSavad\n",
- "prompted!\n",
- "میدانی midAni midAni ke man to rA Ce qadar dust dAram\n",
- "prompted!\n",
- "میدانی meydAni tahqiqAte meydAni dar bAreye ?in mavzu? ?AqAz Sode\n",
- "prompted!\n",
- "میدانی meydAni be surate meydAni bAyad moSAhede konim\n",
- "prompted!\n",
- "میدانی meydAni moSAhedAte meydAni natijebaxS bud\n",
- "prompted!\n",
- "میدانی meydAni SavAd meydAni hAki ?az ?An ?ast\n",
- "prompted!\n",
- "دود dud dude kArxAnejAt havAye Sahr ro kasif mikone\n",
- "prompted!\n",
- "دود dud qatAre barqi dud nadAre\n",
- "prompted!\n",
- "دود dud dude sigAr kole fazAro gerefte\n",
- "prompted!\n",
- "دود davad ?u har ruz sobh midavad\n",
- "prompted!\n",
- "دواند davAnad ?u ?asbhA rA xub midavAnad\n",
- "prompted!\n",
- "دواند davAnad ?u dArad baCCehA rA midavAnad\n",
- "prompted!\n",
- "دواند davAnad farmAndeh barAye jarime ?AnhArA midavAnad\n",
- "prompted!\n",
- "دواند davAnad gorxarhA rA midavAnad\n",
- "prompted!\n",
- "دواند davAnad ?asbhA rA dure mazra?e midavAnad\n",
- "prompted!\n",
- "دواند davAnd ?AnhA rA tA tahe xiyAbAn davAnd\n",
- "prompted!\n",
- "دواند davAnd kole baCCehA rA nim sA?at davAnd\n",
- "prompted!\n",
- "دواند davAnd be ?onvAn jarime kol baCCehA rA davAnd\n",
- "prompted!\n",
- "دواند davAnd ?asbhArA dure mazra?e davAnd\n",
- "prompted!\n",
- "جدا jeddan jeddan dige Suxi nakanid\n",
- "prompted!\n",
- "جدا jeddan jeddan har kas harf bezanad ?az kelAs ?exrAj miSavad\n",
- "prompted!\n",
- "جدا jeddan jeddan hame rA tanbih mikanam\n",
- "prompted!\n",
- "جدا jodA hameye mivehAye xarAb ro jodA kon\n",
- "prompted!\n",
- "جدا jodA bAyad jodA jodA barim\n",
- "prompted!\n",
- "جدا jodA dAneSAmuzhAye xub ro jodA kon\n",
- "prompted!\n",
- "جدا jodA mASinhAye xAreji rA ?az ?irAnihA jodA kon\n",
- "prompted!\n",
- "معین mo?in mo?in diSab bA man sohbat kard\n",
- "prompted!\n",
- "معین mo?in mo?in zerangtarin dAneSjuye kelAse\n",
- "prompted!\n",
- "معین mo?in man bA mo?in CandsAl qahr kardam\n",
- "prompted!\n",
- "معین mo?in mo?in ?az xAreje keSvar bazgaSt\n",
- "prompted!\n",
- "معین mo?ayyan vazAyefe mA mo?ayyan Sode\n",
- "prompted!\n",
- "معین mo?ayyan pAdASe ?in kAr mo?ayyan Sode\n",
- "prompted!\n",
- "معین mo?ayyan ?in keSvar qavAnine ?ajibi dar rAnandegi mo?ayyan karde\n",
- "prompted!\n",
- "رسی rosi ?An sAxtemAn sotunhAye rosi va mohkami dArad\n",
- "prompted!\n",
- "رسی rosi sotunhAye ?edAlat dar ?in keSvar rosi hastand\n",
- "prompted!\n",
- "رسی rosi banAye ?An borj rosi ?ast\n",
- "prompted!\n",
- "رسی rosi ham zabAni mA rA rosi va poSt ham sAxte ?ast\n",
- "prompted!\n",
- "رسی rosi mA mesle kuhe rosi hastim\n",
- "prompted!\n",
- "رسی rasi to be mASine mA nemirasi\n",
- "prompted!\n",
- "رسی rasi bA ?otobus hiC vaqt be maqsad nemirasi\n",
- "prompted!\n",
- "جو javv javve Sahr moteSannej ?ast\n",
- "prompted!\n",
- "جو javv javve xub mohit rA be ham zad\n",
- "prompted!\n",
- "جو jo jo poroteyine bAlAyi dArad\n",
- "prompted!\n",
- "جو jo jo hAviye fibr ?ast\n",
- "prompted!\n",
- "جو ju be donbAle ganj hame jA rA beju\n",
- "prompted!\n",
- "جو ju donbAle movaffaqiyyat har jA rA beju\n",
- "prompted!\n",
- "جو jav jave kelAs rA be ham rixt\n",
- "prompted!\n",
- "جو jav jav nadah va holeS nakon\n",
- "prompted!\n",
- "فرانک ferAnk ?akse pule ferAnk zibA ?ast\n",
- "prompted!\n",
- "فرانک ferAnk ferAnk va deyvid bA ham dust hastand\n",
- "prompted!\n",
- "فرانک ferAnk ?arzeSe ferAnk taqriban dolAr ?ast\n",
- "prompted!\n",
- "فرانک ferAnk ferAnk vAhede pule suyis hast\n",
- "prompted!\n",
- "فرانک farAnak farAnak va ?ehsAn ?ezdevAj kardan\n",
- "prompted!\n",
- "فرانک farAnak farAnak xAhare duste man hast\n",
- "prompted!\n",
- "فرانک farAnak farAnak dAneSgAh qabul Sode\n",
- "prompted!\n",
- "فرانک farAnak farAnak ?az hamsaraS jodA Sode\n",
- "prompted!\n",
- "هلیم helyom gAze helyom xatarnAk ?ast\n",
- "prompted!\n",
- "هلیم helyom bAdkonakhAye helyumi xatarnAk hastand\n",
- "prompted!\n",
- "هلیم helyom gaze helyom bi rang ?ast\n",
- "prompted!\n",
- "هلیم halim halim vAqe?an qazAye moqavvi ?ayi hasteS\n",
- "prompted!\n",
- "هلیم halim kolli halim xeyrAt dAdan\n",
- "prompted!\n",
- "هلیم halim barAye poxte ?in halim kolli zahmat keSidim\n",
- "prompted!\n",
- "هلیم halim tA sobh halim ham zadim\n",
- "prompted!\n",
- "هلیم halim restorAn sare kuCe halim mifrushe\n",
- "prompted!\n",
- "بردار bardAr ketAbhA rA ?az ruye zamin bardAr\n",
- "prompted!\n",
- "بردار bardAr kife pule man rA bardAr ?o boro xarid\n",
- "prompted!\n",
- "بردار bardAr bar dAre mojAzAt ?Avixte Sod\n",
- "prompted!\n",
- "بردار bordAr bordArhAye ?AmAriye piCide hastand\n",
- "prompted!\n",
- "بردار bordAr barAye Sekle zir bordAr rasm konid\n",
- "prompted!\n",
- "بردار bordAr bordAre ?arz ?o taqAzAye zir kodAm hastand\n",
- "prompted!\n",
- "بردار bordAr bordAre zir rA hal konid\n",
- "prompted!\n",
- "شرف Sorof dar Sorofe ?abre qodrat Sodan ?ast\n",
- "prompted!\n",
- "شرف Saraf ?u marde bA Sarafi ?ast\n",
- "prompted!\n",
- "شرف Saraf ?u ?Adame biSarafi ?ast\n",
- "prompted!\n",
- "شرف Saraf ?in kAr dur ?az Saraf ?ast\n",
- "prompted!\n",
- "شرف Saraf ?input ?Ayn Shr mrdmAn bA Srfy dArd\n",
- "prompted!\n",
- "کشند keSand hame mA rA be nAbudi mikeSAnd\n",
- "prompted!\n",
- "کشند keSand doSman rA be tarafe ?AnhA mikeSAnd\n",
- "prompted!\n",
- "کشند keSand mA rA bA mohebbat be tarafe xodaS mikeSAnd\n",
- "prompted!\n",
- "کشند keSand ?u bA siyAsat hame rA be tarafe xod mikeSand\n",
- "prompted!\n",
- "کشند koSand ?u mASinhArA sare jAye xodaS keSAnd\n",
- "prompted!\n",
- "کشند koSand xatthAye xiyAbAnhA rA tA ?entehA keSAndand\n",
- "prompted!\n",
- "کشند koSand xate sAf rA tA ?entehhA koSand\n",
- "prompted!\n",
- "کشند koSand ?AnhA dar mosAbeqe mASin rA tA xate pAyAn keSAndand\n",
- "prompted!\n",
- "کشند koSand ?asbe vahSi rA tA ?establ keSAndand\n",
- "prompted!\n",
- "گزید gazid dandAnhAyaS rA be ham gazid\n",
- "prompted!\n",
- "گزید gazid ?az Seddate dard sereS rA be zamin migazid\n",
- "prompted!\n",
- "گزید gazid ?aqrab pAye ?u rA gazid\n",
- "prompted!\n",
- "گزید gozid ?ahmad ?u rA be ?onvAn hamsar bargozim\n",
- "prompted!\n",
- "گزید gozid rezA to rA bargozid tA ra?ise SerkataS Savi\n",
- "prompted!\n",
- "گزید gozid ?u bargozide Sode ?ast barAye ?anjAme ?in mAmuriyat\n",
- "prompted!\n",
- "گزید gozid ?u ?An ketAb rA bargozid\n",
- "prompted!\n",
- "گزید gozid ?u rA be ?onvAne behtarin dAneSAmuz bargozidand\n",
- "prompted!\n",
- "مقدم moqaddam ?u sAl dar xate moqaddam jangid\n",
- "prompted!\n",
- "مقدم moqaddam SomA moqaddam hastid tA baqiye\n",
- "prompted!\n",
- "مقدم moqaddam doktore moqaddam behtarin jarrAhe CaSm hastand\n",
- "prompted!\n",
- "مقدم moqaddam ?ostAde moqaddam behtarin ?ostAde dAneSkade budand zamAne mA\n",
- "prompted!\n",
- "مقدم maqdam xaire maqdam migim be mehmAnAne ?aziz\n",
- "prompted!\n",
- "مقدم maqdam maqdame SomA ?azizAn va gerAmi midArim\n",
- "prompted!\n",
- "مقدم maqdam bannerhAye xeyre maqdamguyi rA sar dare tAlAr nasb kardand\n",
- "prompted!\n",
- "مقدم maqdam vorude SomA rA be ?in marAsem xayr maqdam miguyim\n",
- "prompted!\n",
- "مقدم maqdam hozure ?AnhA rA xayre maqdam miguyim\n",
- "prompted!\n",
- "زهره zohre zohre belaxare ?ezdevAj kard\n",
- "prompted!\n",
- "زهره zohre zohre doktore xayli xubiye\n",
- "prompted!\n",
- "زهره zahre zahreye mAr barAye pAdzahr ?estefAde miSavad\n",
- "prompted!\n",
- "زهره zahre zahre mAr rA barAye sanAye?ye dAruyi kArbord dArad\n",
- "prompted!\n",
- "زهره zahre zahreye mAre kobrA koSande ?ast\n",
- "prompted!\n",
- "زهره zahre zahre mAre mAmbAye siyAh yek fil rA mikeSad\n",
- "prompted!\n",
- "سری serri ?in ?asnAd xeili serriye\n",
- "prompted!\n",
- "سری serri ?un makAn serriye kasi nemitune bere ?unjA\n",
- "prompted!\n",
- "سری serri harfAye serri va poSte telefon nagid be ham\n",
- "prompted!\n",
- "سری serri ?in naqSe xeyli serri ?ast\n",
- "prompted!\n",
- "سری serri havAseton bASe ?in serriye kasi nabAyad befahme\n",
- "prompted!\n",
- "سری seri seriye jadide filme bAlaxarah ?ekrAn Sod\n",
- "prompted!\n",
- "سری seri ?in seri dige jelosho gereftam\n",
- "prompted!\n",
- "سری seri seriye jadide mosAbeqe ?emSab Soru? mishe\n",
- "prompted!\n",
- "کیف kif kife man sanin ?ast\n",
- "prompted!\n",
- "کیف kif kife ?u por ?az ketAb ?ast\n",
- "prompted!\n",
- "کیف kif ?un kife sabz xeili qaSange\n",
- "prompted!\n",
- "کیف kif madArakam dAxel kife pulam bud\n",
- "prompted!\n",
- "کیف keyf ?az bAziye diSabe perspolis keyf kardam\n",
- "prompted!\n",
- "کیف keyf Ce nomreayi gereftam keyf kardam\n",
- "prompted!\n",
- "کیف keyf qadam zadan lab daryA vAqe?an keyf dAre\n",
- "prompted!\n",
- "کیف keyf poSte benz neSastan vAqe?an keyf dAra\n",
- "prompted!\n",
- "کشیم koSim hAme ?AnhA rA mikoSim\n",
- "prompted!\n",
- "کشیم koSim dA?eS ?e?lAm karde harkasi rA bexAhim mikeSim\n",
- "prompted!\n",
- "کشیم koSim dar keStArgAhe heyvAnAt rA mikeSim\n",
- "prompted!\n",
- "کشیم koSim doSmanAne keSvar rA mikeSim\n",
- "prompted!\n",
- "کشیم koSim nemitavAnim ?AnhA rA bekoSim\n",
- "prompted!\n",
- "کشیم keSim ?u rA tA partgAh mikeSim\n",
- "prompted!\n",
- "کشیم keSim hameye gunihA rA ruye zamin mikeSim\n",
- "prompted!\n",
- "کشیم keSim nemitavAnim ?AnhA rA bekeSim Cun sangin ?ast\n",
- "prompted!\n",
- "کشیم keSim tonAb rA mohkam mikeSim\n",
- "prompted!\n",
- "کشیم keSim mA digar nemikeSim ?edAme dahim\n",
- "prompted!\n",
- "پژمرد paZmord xande ?az ruye labhAye ?AnhA paZmord\n",
- "prompted!\n",
- "پژمرد paZmord gol ?az bi ?Abi paZmord\n",
- "prompted!\n",
- "پژمرد paZmord golhAye paZmorde Sodand\n",
- "prompted!\n",
- "پژمرد paZmord rishehAye deraxt ?az biAbi paZmord\n",
- "prompted!\n",
- "پژمرد paZmorad ?agar be golhA sarevaqt ?Ab nadahim ?AnhA mipaZmorand\n",
- "prompted!\n",
- "پژمرد paZmorad ?adame residee nur be giyAhAn riSe ?AnhA rA mipaZmorad\n",
- "prompted!\n",
- "پژمرد paZmorad ?An hA ?az biedAlati dAran mipaZmorand\n",
- "prompted!\n",
- "پژمرد paZmorad hAkem mardome xod rA zire bAre zolm mipaZmorad\n",
- "prompted!\n",
- "پژمرد paZmorad ?u mAnande goli xoSk mipaZmarad\n",
- "prompted!\n",
- "مجاز mojAz sor?ate mojAz va bAyad re?Ayat koni\n",
- "prompted!\n",
- "مجاز mojAz SomA mojAz be ?entexAbe vAhed hasti\n",
- "prompted!\n",
- "مجاز mojAz sor?ate mojAz to ye seri ?az jAddehA nAmahdude\n",
- "prompted!\n",
- "مجاز mojAz SomA mojAz hastid har kAri mixAhid ?anjAm dahid\n",
- "prompted!\n",
- "مجاز majAz ?erAyeye majAz vAqe?an zibAst\n",
- "prompted!\n",
- "مجاز majAz ?in Se?r ?ArAyehAye majAz va jenAs dArad\n",
- "prompted!\n",
- "مجاز majAz majAz vAZe ?ayi ?ast ?arabi\n",
- "prompted!\n",
- "مجاز majAz majAz ?ArAye ?ayi ?ast bA ma?nAye qeyr vAqei\n",
- "prompted!\n",
- "لرزاند larzAnd zelzele kole Sahro larzAnd\n",
- "prompted!\n",
- "لرزاند larzAnd sedAye bomb tane mA rA larzAnd\n",
- "prompted!\n",
- "لرزاند larzAnd sedAye jangandehA kole Sahr rA larzAnd\n",
- "prompted!\n",
- "لرزاند larzAnd ?AtaSfeSAne kole xAnehAye ?atraf rA larzAnd\n",
- "prompted!\n",
- "لرزاند larzAnad zelzele sAxtemAnhA rA milarzAnad\n",
- "prompted!\n",
- "لرزاند larzAnad moje ?enfejAr mitavAnad hame Ciz rA belarzAnad\n",
- "prompted!\n",
- "لرزاند larzAnad sarmA hame rA milarzAnad\n",
- "prompted!\n",
- "لرزاند larzAnad sedAye muSakhA kole baCCehA rA ?az tars milarzAnad\n",
- "prompted!\n",
- "لرزاند larzAnad sedAye motore mASin kAbin rA milarzAnad\n",
- "prompted!\n",
- "نشاند neSAnd mAdar kudak rA sarjAye xodaS neSAnd\n",
- "prompted!\n",
- "نشاند neSAnd keSvare biegAne rA sarjAye xodaS neSAndim\n",
- "prompted!\n",
- "نشاند neSAnd harfe xodam rA be korsi neSAndam\n",
- "prompted!\n",
- "نشاند neSAnd hame rA sarjAye xodeSAn neSAndam\n",
- "prompted!\n",
- "نشاند neSAnd baCCehA rA ruye zamin neSAndand\n",
- "prompted!\n",
- "نشاند neSAnad ?u hame rA dar ruye ?AsfAlt mineSAnad\n",
- "prompted!\n",
- "نشاند neSAnad hame kisehA rA ruye ham mineSAnad\n",
- "prompted!\n",
- "نشاند neSAnad hameye zoruf rA ruye ham mineSAnad\n",
- "prompted!\n",
- "نشاند neSAnad kole ketAbhAye jadid rA ruye ham mineSAnad\n",
- "prompted!\n",
- "نشاند neSAnad mohandes tabaqAte sAxtemAn rA ruye ham mineSAnad\n",
- "prompted!\n",
- "نشسته naSoste xordane miveye naSoste bA?ese moSkele govAreSi mishe\n",
- "prompted!\n",
- "نشسته naSoste bA daste naSoste qazA bexori mariz miSi hA\n",
- "prompted!\n",
- "نشسته naSoste ?unA ro naxor naSoste ?ast\n",
- "prompted!\n",
- "نشسته naSoste mASin rA tamiz naSoste\n",
- "prompted!\n",
- "نشسته naSoste kudak rA bord hammAm ?amA ?u rA tamiz naSoste\n",
- "prompted!\n",
- "نشسته neSaste neSaste dars xandan bAzdehiye biStari dArad tA xAbide\n",
- "prompted!\n",
- "نشسته neSaste kudak ruye zamin neSaste va gerye mikonad\n",
- "prompted!\n",
- "نشسته neSaste ?u neSaste zamin va qazA mixorad\n",
- "prompted!\n",
- "جرم jorm jorme ?in kAr zendAne\n",
- "prompted!\n",
- "جرم jorm to xeyli ?az keSvarhA ?in kAr jorm nist\n",
- "prompted!\n",
- "جرم jorm be jorme qatle ?amd ?e?dAmeS kardan\n",
- "prompted!\n",
- "جرم jerm jerme litr ?Ab yek kilugram ?ast\n",
- "prompted!\n",
- "جرم jerm jerme ?atomiye yek molokul ?ast\n",
- "prompted!\n",
- "جرم jerm ?estaxr bAyad jerm giri Savad Con xeyli kasif ?ast\n",
- "prompted!\n",
- "جرم jerm mohite kelAs jerm giri va zedde?ofuni Sod\n",
- "prompted!\n",
- "خورد xord qazASo kAmel xord\n",
- "prompted!\n",
- "خورد xord tup be surataS xord\n",
- "prompted!\n",
- "خورد xord ?u tond tond qazAye xod rA xord\n",
- "prompted!\n",
- "خورد xord ?un ?az mo?alleme xod sili xord\n",
- "prompted!\n",
- "خورد xorad ?u SabhA qazA nemixorad\n",
- "prompted!\n",
- "خورد xorad ?u hamiSe tond tond qazA mixorad\n",
- "prompted!\n",
- "خورد xorad ?u sobhAne nemixorad\n",
- "prompted!\n",
- "خورد xorad kudak Sire mAdar rA nemixorad\n",
- "prompted!\n",
- "علم ?elm ketAb ?elm ?Adamo bAlA mibare\n",
- "prompted!\n",
- "علم ?elm ?elm hamvAre dar hAle piSraft ?ast\n",
- "prompted!\n",
- "علم ?alam ?alame ?eslAm dar sarAsare jahAn bar ?afrASte ?ast\n",
- "prompted!\n",
- "علم ?alam ?alamdusti bar qarAr Sode ?ast\n",
- "prompted!\n",
- "علم ?alam ?u ?alame qodataS rA bar ?afrASte kard\n",
- "prompted!\n",
- "جوشاند juSAnad ?Ab rA mijuSAnad tA zedde?ofuni Savad\n",
- "prompted!\n",
- "جوشاند juSAnad ?Ab rA mijuSAnad va sepas CAy dam mikanad\n",
- "prompted!\n",
- "جوشاند juSAnad nure xorSid ?Abe CeSmeh rA mijuSAnad\n",
- "prompted!\n",
- "جوشاند juSAnad ?AnhArA mijuSAnad va sepas mixorad\n",
- "prompted!\n",
- "جوشاند juSAnad toxme morq rA darune ?Abe juS mijuSAnad\n",
- "prompted!\n",
- "جوشاند juSAnd qandhA darune ?Ab juSAnd\n",
- "prompted!\n",
- "جوشاند juSAnd bAkterihA darune ?Ab rA juSAnd\n",
- "prompted!\n",
- "جوشاند juSAnd ?Ab rA juSAnd tA boxAr Sod\n",
- "prompted!\n",
- "جوشاند juSAnd bA harArat CAyi juSAnd\n",
- "prompted!\n",
- "جوشاند juSAnd bA garmAye ?AftAb ?Ab rA juSAnd\n",
- "prompted!\n",
- "برگرداند bargardAnad ?u bAyad kabAbhA rA be moqe? bargardAnad tA nasuzand\n",
- "prompted!\n",
- "برگرداند bargardAnad ?u bAyad hameye vasAyel rA bargardAnad\n",
- "prompted!\n",
- "برگرداند bargardAnad hameye ?AnhA rA bAyad ?az keSvar bargardAnad\n",
- "prompted!\n",
- "برگرداند bargardAnad bAyad tamAme pulhA rA be hesAb bargardAnad\n",
- "prompted!\n",
- "برگرداند bargardAnad ?u bAyad mojreme farAri rA bargardAnad\n",
- "prompted!\n",
- "برگرداند bargardAnd farmAndeh bAyad sarbAzAn rA ?az jang bargardand\n",
- "prompted!\n",
- "برگرداند bargardAnd ?u be moqe? sereS rA bargardAnd vagarna koSte miSod\n",
- "prompted!\n",
- "برگرداند bargardAnd kabAbhA rA bargardAnd tA nasuzad\n",
- "prompted!\n",
- "برگرداند bargardAnd ?u hameye baCCehA rA ?az hayAt bargardAnd\n",
- "prompted!\n",
- "سوزاند suzAnd ?AtaS hameye ?AnhA rA suzAnd\n",
- "prompted!\n",
- "سوزاند suzAnd tar ?o xoSk bAham misuzad\n",
- "prompted!\n",
- "سوزاند suzAnd ?u daste xod rA bA sigAr suzAnd\n",
- "prompted!\n",
- "سوزاند suzAnd ?az garmaye Sadid pustam misuzad\n",
- "prompted!\n",
- "سوزاند suzAnd tAmAme kabAb hA dArad misuzad\n",
- "prompted!\n",
- "سوزاند suzAnad qazAye tond dahAnemAn rA misuzAnad\n",
- "prompted!\n",
- "سوزاند suzAnad ?u hamiSe qazA rA misuzAnad\n",
- "prompted!\n",
- "سوزاند suzAnad ?agar ?AtaS begire hame mAro misuzAnad\n",
- "prompted!\n",
- "سوزاند suzAnad ?AtaS Cub rA misuzAnad\n",
- "prompted!\n",
- "سوزاند suzAnad ?aside bad juri dast rA misuzAnad\n",
- "prompted!\n",
- "بره barre guSte barre ma?mulan garme va xeili mofid\n",
- "prompted!\n",
- "بره barre sareye ?un barre ro boridan raft\n",
- "prompted!\n",
- "بره barre Ce barreye bozorgi kabAb karde budan\n",
- "prompted!\n",
- "بره barre guSte barre xayli narm ?o xoSmazas\n",
- "prompted!\n",
- "بره bere bezA bere velS kon\n",
- "prompted!\n",
- "بره bere ?age bere xArej dige bar nemigarde\n",
- "prompted!\n",
- "بره bere sAmAn qarAre bA ?unA bere mosAfare\n",
- "prompted!\n",
- "بره bere ?age ?az Serkat bere yek nafare dige jAye ?un miyArim\n",
- "prompted!\n",
- "بره bere be man ke gofte mikhAd bere barAye hamiSe\n",
- "prompted!\n",
- "امین ?Amin boland ba?d ?az do?A begid ?Amin\n",
- "prompted!\n",
- "امین ?Amin dastAro biyArid bAlA boland begid ?Amin\n",
- "prompted!\n",
- "امین ?Amin ba?d ?az do?Aye man ?un goft ?Amin\n",
- "prompted!\n",
- "امین ?Amin ba?d ?az ?Arezu kardan begu ?Amin\n",
- "prompted!\n",
- "امین ?Amin ba?d ?az namAz goft ?Amin\n",
- "prompted!\n",
- "امین ?amin meno ?amin ?az baCCegi bAham dustim\n",
- "prompted!\n",
- "امین ?amin doktor ?Amin xeili mAhere to kAraS\n",
- "prompted!\n",
- "امین ?amin ?amin ?ezdevAj karde\n",
- "prompted!\n",
- "امین ?amin ?amin diruz tasAdof kard bA mASin\n",
- "prompted!\n",
- "امین ?amin ?amin behem zang nazade ?aslan\n",
- "prompted!\n",
- "لب lab labhAS ?az teSnegi xoSk Sode\n",
- "prompted!\n",
- "لب lab labhAS kabud Sode\n",
- "prompted!\n",
- "لب lab labe jub neSaste bud va zAr zAr gerye mikard\n",
- "prompted!\n",
- "لب lab labe xiyAbAn rAh miraft va dAd mizad\n",
- "prompted!\n",
- "لب lobb lobbe kalAm ?inke Sorute mA hamine\n",
- "prompted!\n",
- "لب lobb lobbe matlab ma?mulan be ?onvAne jAne kalAm ?ast\n",
- "prompted!\n",
- "لب lobb lobbe kalAm va loppe kalAm motAfevet ?az ham be kAr miravand\n",
- "prompted!\n",
- "لب lobb dar jalaseye fardA lobbe matAleb rA bAzgu xAham kard\n",
- "prompted!\n",
- "اه ?ah ?ah Ce zarbehA?i xordam ?az nazdikAye xodam\n",
- "prompted!\n",
- "اه ?ah ?ah hAlam be ham xord\n",
- "prompted!\n",
- "اه ?ah ?ah Ce buye badi midAd\n",
- "prompted!\n",
- "اه ?ah ?ah Ceqadr ?in qazA bade\n",
- "prompted!\n",
- "اه ?ah ?ah ?ah hAlam ?az ?in bu beham xord\n",
- "prompted!\n",
- "اه ?Ah ?Ah Ce buye badi miAd ?az ?injA\n",
- "prompted!\n",
- "اه ?Ah ?Ah ?Ah Ce mazze badi mide ?in qazA\n",
- "prompted!\n",
- "اه ?Ah ?Ah bAzam ?in zang zad\n",
- "prompted!\n",
- "اه ?Ah ?Ah zange ba?d riyAzi dArim\n",
- "prompted!\n",
- "اه ?Ah ?Ah bezAram bexAbam deg sar ?o sedA nakon\n",
- "prompted!\n",
- "آرم ?Aram ?ArAm ?ArAm be gorbe nazdik Sod\n",
- "prompted!\n",
- "آرم ?Aram daryA diruz xeyli ?ArAm bud\n",
- "prompted!\n",
- "آرم ?Arm ?un ?Arm ma?nia SeytAnparasti mide\n",
- "prompted!\n",
- "آرم ?Arm ?un ?Arm ma?niye jAlebi nemide\n",
- "prompted!\n",
- "آرم ?Arm ?un ?Arme qaSangi ro tatu karde\n",
- "prompted!\n",
- "آرم ?Arm ?eram ruye labAbam kande Sode\n",
- "prompted!\n",
- "گنجاند gonjAnad hame sandalihAye tAlAr rA ruye ham migonjAnd\n",
- "prompted!\n",
- "گنجاند gonjAnad zoruf rA ruye ham va Salaxte tur migonjAnd\n",
- "prompted!\n",
- "گنجاند gonjAnad berenjhA rA dAxel kise migonjAnd\n",
- "prompted!\n",
- "گنجاند gonjAnad hameye ?abzArAlAt rA darune ja?be migonjAnd\n",
- "prompted!\n",
- "گنجاند gonjAnad ?u hameye vasAyel ra dar ?otAq migonjAnad\n",
- "prompted!\n",
- "گنجاند gonjAnd raxtexAbhA rA ruye ham gonjAnd\n",
- "prompted!\n",
- "گنجاند gonjAnd bezur hame ra dar ?otobus gonjAnd\n",
- "prompted!\n",
- "گنجاند gonjAnd gunihA rA dar ?anbAri ruye ham gonjAnd\n",
- "prompted!\n",
- "گنجاند gonjAnd ketAbhA rA dar qafase gonjAnd\n",
- "prompted!\n",
- "گنجاند gonjAnd hameye kisehA ruy ham gonjAnd\n",
- "prompted!\n",
- "قطعه qet?e ?in qet?eye musiqi rA taqdim be mAdaraS kard\n",
- "prompted!\n",
- "قطعه qet?e ?ostAde SajariyAn qet?eye musiqiye jadidi rA be mA hediye dAd\n",
- "prompted!\n",
- "قطعه qet?e qet?ei ?az bethoven dar hAle paxS ?ast\n",
- "prompted!\n",
- "قطعه qet?e ?in qet?eye musiqi por ?az xAtere ?ast\n",
- "prompted!\n",
- "قطعه qet?e ?ahmad qet?ei ?az musiqi rA navAxt\n",
- "prompted!\n",
- "قطعه qat?e ?u rA koStand va qat?e qat?e kardand\n",
- "prompted!\n",
- "قطعه qat?e qat?ehAye ?in Se?r kenAre ham SAhkAr hastand\n",
- "prompted!\n",
- "قطعه qat?e ?in Se?r vAqe?an qat?e bandiye zibAyi dArad\n",
- "prompted!\n",
- "قطعه qat?e ?u yek qat?e ?az pitzaye xod rA be man dAd\n",
- "prompted!\n",
- "فراری ferAri mASine ferAri sor?ataS be kilometr mireshe\n",
- "prompted!\n",
- "فراری ferAri kompAniye ferAri ?az mASine jadidaS ro namAyi kard\n",
- "prompted!\n",
- "فراری ferAri ferAri yek Serkate xodro sAzie ?itAliAyi ?ast\n",
- "prompted!\n",
- "فراری ferAri bonyAngozAre farAriye Serkat ?enzo ferAri hast\n",
- "prompted!\n",
- "فراری farAri ?az daste polishA farAri Sode\n",
- "prompted!\n",
- "فراری farAri ?aslan ?az mehmuni va fAmil farAri ?iyeh\n",
- "prompted!\n",
- "فراری farAri mesle farArihA ?umad va raft\n",
- "prompted!\n",
- "فراری farAri dust xodeSo ?az daste mAmurA farAri dAd\n",
- "prompted!\n",
- "فراری farAri bA Cub gorgo farAri dAd\n",
- "prompted!\n",
- "لغز laqz CarxhAye mASin laqzid\n",
- "prompted!\n",
- "لغز laqz Con jAdde laqzandast bAyad ?Arum harakat konim\n",
- "prompted!\n",
- "لغز laqz pAhayam ?az Seddate tars milaqzid\n",
- "prompted!\n",
- "لغز laqz ?ab ?o kafe zamin rA laqzande kard\n",
- "prompted!\n",
- "لغز loqoz havAdArAne ?in tim xayli loqoz miguyand\n",
- "prompted!\n",
- "لغز loqoz ?u poSte parde loqoz mikanad ?amA dar moqAbel hiC ?ast\n",
- "prompted!\n",
- "لغز loqoz havAdArAne tim sare loqoz xAndan bAham dargir Sodand\n",
- "prompted!\n",
- "لغز loqoz ?u ?ensAne loqozguyi ?ast\n",
- "prompted!\n",
- "لغز loqoz loqoz guyiye ziyAd neshaneye tars ?ast\n",
- "prompted!\n",
- "شما SemA ?un mojassameye SemAye qodrate\n",
- "prompted!\n",
- "شما SemA ?in jomleye SomAye boluqe fekrie SemAst\n",
- "prompted!\n",
- "شما SemA ?in hediye be ?onvAne Semaye dusti be man dAde Sode\n",
- "prompted!\n",
- "شما SemA ?in logoye SemAye tArix ?in Serkat ro dAre \n",
- "prompted!\n",
- "شما SemA SemAtike tarkibe tim ?A ?omad birun\n",
- "prompted!\n",
- "شما SomA SomA vAqe?an ?ensAne bozorgi hastid\n",
- "prompted!\n",
- "شما SomA be ?ehterAme SomA hame ?az jAye xodeshun boland Sodan\n",
- "prompted!\n",
- "شما SomA SomA mitavAnid ?in mAmuriyat ro ?anjAm bedid\n",
- "prompted!\n",
- "شما SomA SomA be ?onvAn ra?ise jadid ?entexAb Sodid\n",
- "prompted!\n",
- "تنگ tong mAhihAro ?andAxtam tuye tong\n",
- "prompted!\n",
- "تنگ tong ?in tong xeili kuCike mAhihA rAhat nistan\n",
- "prompted!\n",
- "تنگ tong Ce tone qaSangi xaridam ?az bAzAr\n",
- "prompted!\n",
- "تنگ tang lebAse xayli tange ?aziyatam mikone\n",
- "prompted!\n",
- "تنگ tang sandalihAye ?in ?otobus xeili tange\n",
- "prompted!\n",
- "تنگ tang ?aqabe mASine xeyli tange\n",
- "prompted!\n",
- "عرضه ?orze ?un vAqe?an ?orze hiC kAri ro nadAre\n",
- "prompted!\n",
- "عرضه ?orze ?un modir xeili bi ?orzes\n",
- "prompted!\n",
- "عرضه ?orze ?orze ?edAreye Serkat va nadAre\n",
- "prompted!\n",
- "عرضه ?orze ?un ?Adam bA ?orzeayi hast\n",
- "prompted!\n",
- "عرضه ?orze ?age ?orze dASt hatman mitunest\n",
- "prompted!\n",
- "عرضه ?arze nemudAre ?arze va taqAzA ro rasm kardam\n",
- "prompted!\n",
- "عرضه ?arze diruz ?arze ?avvaliyye CandtA Serkate bursi bud\n",
- "prompted!\n",
- "عرضه ?arze mAshinhAye tasallA be bAzArhAye jahAn ?arze Sodand\n",
- "prompted!\n",
- "عرضه ?arze bA ?arzeye ?in mahsul be ?orupA sude ziyAdi mibarim\n",
- "prompted!\n",
- "بدو badv ?az badve vorud tA ?alAn nazme jalase ro beham rixte\n",
- "prompted!\n",
- "بدو badv ?in dAru ?az badve tolid jAne xeylihAro nejAt dAde\n",
- "prompted!\n",
- "بدو badv ?az badve dabestAn xeyli bAhuS bud\n",
- "prompted!\n",
- "بدو badv nozAd ?az badve tavallod dArAye havAsse panjgAn ?ast\n",
- "prompted!\n",
- "بدو bodo bodo tA zange madrese naxorde\n",
- "prompted!\n",
- "بدو bodo bedo ke kolli kAr dArim Serkat\n",
- "prompted!\n",
- "بدو bodo bodo sari? beheS begu gushiSo javAb nemide\n",
- "prompted!\n",
- "صفر safar safar kardan bA?es SAdAbiye ruhiyyeye ?ensAn mishe\n",
- "prompted!\n",
- "صفر safar ?in mAh be safar miram\n",
- "prompted!\n",
- "صفر safar safare daryAyi kami xaste konandas\n",
- "prompted!\n",
- "صفر sefr be xAtere taqallob nomreye sefr beheS dAd\n",
- "prompted!\n",
- "صفر sefr ?un ?asan nemidune milyArd Cand tA sefr dAre\n",
- "prompted!\n",
- "صفر sefr sefr hesAbeSo ?asan nemishe beSomAri\n",
- "prompted!\n",
- "صفر sefr sefr tA sade ?in mASin sAniye ?ast\n",
- "prompted!\n",
- "صفر sefr mu hAmo bA sefr zadam\n",
- "prompted!\n",
- "المان ?AlmAn time melliye ?AlmAn qahremAne jAme jahAniye hast\n",
- "prompted!\n",
- "المان ?AlmAn ?AlmAn san?atitarin keSvare donyAst\n",
- "prompted!\n",
- "المان ?AlmAn mardome ?AlmAn ?aksaran neZAdparastan\n",
- "prompted!\n",
- "المان ?AlmAn ?in mASin sAxteye ?AlmAn hast\n",
- "prompted!\n",
- "المان ?AlmAn dustam mohAjerat kard ?AlmAn\n",
- "prompted!\n",
- "المان ?elemAn ?elemAnhAye ?in dAstAn vAqe?an heyratangiZe\n",
- "prompted!\n",
- "المان ?elemAn ?elemAnhAyeye Sahriye Cin mahSare\n",
- "prompted!\n",
- "المان ?elemAn ?elemAnhAye namAyeSi ?in te?Atr ?az SAhnAme ?ast\n",
- "prompted!\n",
- "المان ?elemAn nAme xiAbAn yA kuCehA jazAye ?elemAnhAye bayAni hastand\n",
- "prompted!\n",
- "المان ?elemAn ma?mulan borjhA jozve ?elemAnhAye ?amalkardi hastand\n",
- "prompted!\n",
- "اعمال ?a?mAl dar ruze qiyAmat nAmeye ?a?mAl be mA dAde miSavad\n",
- "prompted!\n",
- "اعمال ?a?mAl ?a?mAle ?u bA?ese hameye ?in badbaxtihAst\n",
- "prompted!\n",
- "اعمال ?a?mAl ?u bA ?a?mAle xod mardom rA ?Azorde karde bud\n",
- "prompted!\n",
- "اعمال ?a?mAl nAmeye ?a?mAle ?ensAnhAye xub be daste rAsteSAn dAde miSavad\n",
- "prompted!\n",
- "اعمال ?a?mAl man ?az ?a?mAle xod dar javAni paSimAn budam\n",
- "prompted!\n",
- "اعمال ?e?mAl rezA taqirAt rA bar ruye barnAme ?e?mAl kard\n",
- "prompted!\n",
- "اعمال ?e?mAl ?a?mAle ?in taqirAt bA?es behbude barnAme miSavad\n",
- "prompted!\n",
- "اعمال ?e?mAl ma?murAne rAhur dar hAle ?e?mAle qAnun budand\n",
- "prompted!\n",
- "اعمال ?e?mAl dolat dar hAle ?e?mAle taqirAti ?asAsi bud\n",
- "prompted!\n",
- "اعمال ?e?mAl ?u dar ?a?mAle qAnun xelal ?ijAd mikard\n",
- "prompted!\n",
- "کرم kerem zahrA meqdAri kerem bar ruye dastAne xod zad\n",
- "prompted!\n",
- "کرم kerem ?AnhA barAye darmAn ?az ?in kerem ?estefAde mikonand\n",
- "prompted!\n",
- "کرم kerem ?AnhA barAye sobhAne kereme kAkA?o xordand\n",
- "prompted!\n",
- "کرم kerem navid meqdAri kereme fandoq bar ruye nAn mAlid\n",
- "prompted!\n",
- "کرم kerem man barAye juSA ?az kereme pust ?estefAde mikonam\n",
- "prompted!\n",
- "کرم karam ?u dar karam va baxSeS zabAnzad bud\n",
- "prompted!\n",
- "کرم karam mA harCe dArim ?az karame ?u dArim\n",
- "prompted!\n",
- "کرم karam behbude to ?az karame xodAvand bud\n",
- "prompted!\n",
- "کرم karam xodAvand mA rA morede baxSeS va karame xod qarAr dAd\n",
- "prompted!\n",
- "کرم karam hameye ?ahAli ?az jud va karame ?u bahre mand Sodand\n",
- "prompted!\n",
- "کرم korom feleze korom ?az ?anAsore jadvale tanAvobi ?ast\n",
- "prompted!\n",
- "کرم korom korom no?i felze barrAq ?ast\n",
- "prompted!\n",
- "کرم korom ?u sathe xodroye xod rA bA korom puSAnde bud\n",
- "prompted!\n",
- "کرم korom jense badaneye ?in mASin ?az korom ?ast\n",
- "prompted!\n",
- "کرم korom jense ?in ?AlyAZ ?az korom va nikel ?ast\n",
- "prompted!\n",
- "کرم kerm kermhA darune mive rA xorde budand\n",
- "prompted!\n",
- "کرم kerm nedA kerm rA ?az darune xAk birun keSid\n",
- "prompted!\n",
- "کرم kerm yeki ?az kermhA be birune zarf ?oftAde bud\n",
- "prompted!\n",
- "کرم kerm kermhA darune lASeye heyvAn milulidand\n",
- "prompted!\n",
- "کرم kerm kerme xAki barAye roSde giyAhAn mofid ?ast\n",
- "prompted!\n",
- "برنده barande ba?d ?az sA?at tavAnestam dar bAzi barande Savam\n",
- "prompted!\n",
- "برنده barande ?u barandeye ?in seri ?az mosAbeqAt Sod\n",
- "prompted!\n",
- "برنده barande rezA harCe talAS kard natAvanest barande Savad\n",
- "prompted!\n",
- "برنده barande hamid barge barandeye mA dar ?in mozAkerAt ?ast\n",
- "prompted!\n",
- "برنده barande barandeye mosAbeqe mablaqi rA be ?onvAne jAyeze daryAft kard\n",
- "prompted!\n",
- "برنده borrande ?u pArCehA rA bA Siye borrandei borid\n",
- "prompted!\n",
- "برنده borrande SamSire ?u besyAr borrande bud\n",
- "prompted!\n",
- "برنده borrande baCCehA nabAyad bA vasAyele borrande bAzi konand\n",
- "prompted!\n",
- "برنده borrande ?u CAquyiye borrande barAye ?in kAr be man dAd\n",
- "prompted!\n",
- "برنده borrande man bA tiqi borrande tanAb rA beridam\n",
- "prompted!\n",
- "دوره dore mA hamegi dar ?in dore ?az kelAshA Serkat kardim\n",
- "prompted!\n",
- "دوره dore barandeye ?in dore ?az mosAbeqAt ?Ali bud\n",
- "prompted!\n",
- "دوره dore qorune vasta yeki ?az tarsnAktarin dorehAye tArixe baSar ?ast\n",
- "prompted!\n",
- "دوره dore ?u vasAyel rA ?az yek doregard xaride bud\n",
- "prompted!\n",
- "دوره dore ?in dore ?az ?entexAbAt besyAr sari? bargozAr Sod\n",
- "prompted!\n",
- "دوره dure hasan goft jAyi ke mirim xeyli dure\n",
- "prompted!\n",
- "دوره dure be ?Ali goftam xodkAr xeyli ?az man dure\n",
- "prompted!\n",
- "دوره dure mAhAn goft ?unjA dure barim ye jAye dige\n",
- "prompted!\n",
- "دوره dure bA ?in ke kAfe xeili dure vali xodamo mirasunam\n",
- "prompted!\n",
- "دوره dure fAseleye xorSid tA zamin xeili dure\n",
- "prompted!\n",
- "نشست naSost rezA ?az tanbali zarfhA rA naSost\n",
- "prompted!\n",
- "نشست naSost man harCe sabr kardam ?u mASin rA naSost\n",
- "prompted!\n",
- "نشست naSost zahrA lebAshA rA barAye marAseme fardA naSost\n",
- "prompted!\n",
- "نشست naSost ?u ?az ?asabAniyat hiC kodAm ?az zoruf rA naSost\n",
- "prompted!\n",
- "نشست naSost sA?at hA gozaSt vali ?u maqAze rA naSost\n",
- "prompted!\n",
- "نشست neSast farhAd be sor?at ruye sandali neSast\n",
- "prompted!\n",
- "نشست neSast havApeymA ruye bAnde forudgAh neSast\n",
- "prompted!\n",
- "نشست neSast ?Ahangi ke guS midAd bar dele man neSast\n",
- "prompted!\n",
- "نشست neSast dAneSAmuz bA dustaS ruye nimkate pArk neSast\n",
- "prompted!\n",
- "نشست neSast pazirAyiye ?AnhA be dele hame neSast\n",
- "prompted!\n",
- "هری herri maqAzedAr goft herri beravid birun\n",
- "prompted!\n",
- "هری herri mas?ud yek lagad be ?u zad va goft herri\n",
- "prompted!\n",
- "هری herri man be ?AnhA goftam herri zud ?az ?injA beravid birun\n",
- "prompted!\n",
- "هری herri piremard be man goft herri zud ?az ?injA boro birun\n",
- "prompted!\n",
- "هری herri ?AnhA goftand hey digar nemixAhim torA bebinim\n",
- "prompted!\n",
- "هری horri sedA CenAn boland bud ke delam horri rixt\n",
- "prompted!\n",
- "هری horri mahsA CenAn tarsid ke delaS horri rixt\n",
- "prompted!\n",
- "هری horri ba?d ?az zelzele sAxtemAne horri rixt\n",
- "prompted!\n",
- "هری horri sAzeye ?u bA tekAniye riz horri pAyin rixt\n",
- "prompted!\n",
- "هری horri ?az ?in ?ettefAq juri tarsidam ke darjA delam horri rixt\n",
- "prompted!\n",
- "هری hari hari nAme motedAvele pesarAne dar ?engelis ?ast\n",
- "prompted!\n",
- "هری hari diSab ?Axarin ketAbe hari pAter rA xAndam\n",
- "prompted!\n",
- "هری hari ?u ketAbe xod rA ?az hari pas gereft\n",
- "prompted!\n",
- "هری hari nevisandeye hari pAtar dar marAsem Serkat karde bud\n",
- "prompted!\n",
- "هری hari mas?ud ketAbe hari pAter rA be man qarz dAd\n",
- "prompted!\n",
- "جنب jonb vaqt CenAn tang bud ke be ?Ali goftam bejonb\n",
- "prompted!\n",
- "جنب jonb ?u barAye jalbe tavajjoh sereS rA mijonbAnad\n",
- "prompted!\n",
- "جنب jonb hasan talAS mikard ke heyvAn ?az jAye xod najonbad\n",
- "prompted!\n",
- "جنب jonb hameye ?AnhA dar ?in jonbeSe bozorg naqS dAStand\n",
- "prompted!\n",
- "جنب jonb parandehA barAye farAr ?az daste ?u dar jonbeS budand\n",
- "prompted!\n",
- "جنب janb ?in sAxtemAn dar janbe forudgAh qarAr dArad\n",
- "prompted!\n",
- "جنب janb maqAzeye ?u dar janbe xAneye mA bud\n",
- "prompted!\n",
- "جنب janb butike ?u dar janbe kuCeye haStom qarAr dArad\n",
- "prompted!\n",
- "جنب janb hameye mA dar janbe sAxtemAn montazere ?u budim\n",
- "prompted!\n",
- "جنب janb foruSgAhe jadid dar janbe foruSgAhe to ?eftetAh miSavad\n",
- "prompted!\n",
- "ملا mala? ?u lebAse xod rA dar mala hozzAr dar ?Avard\n",
- "prompted!\n",
- "ملا mala? hamid mortakebe qatl dar malaye ?Amm Sode bud\n",
- "prompted!\n",
- "ملا mala? hame ?in kArhA dar malAye ?Amm surat migereft\n",
- "prompted!\n",
- "ملا mala? man matn rA malAye dAneSAmuzAn xAndam\n",
- "prompted!\n",
- "ملا mala? ?in kAre zeSte ?Ali dar mala hozzAr mAra xejAlat zade kard\n",
- "prompted!\n",
- "ملا mollA dAstAnhAye mollA nasreddin besyAr Sirin ?ast\n",
- "prompted!\n",
- "ملا mollA fAteme barAye komak nazde mollAye rustA raft\n",
- "prompted!\n",
- "ملا mollA mollA mohammad be man goft Sab be masjed beravam\n",
- "prompted!\n",
- "ملا mollA farmAndehe ?AnhA mollA ?omar nAm dASt\n",
- "prompted!\n",
- "ملا mollA moqe?iyyathAye xandedAri barAye mollA nasreddin be vojud miAyad\n",
- "prompted!\n",
- "بعد ba?d ba?d ?az ?in ?ettefAq hargez be ?AnjA barnagaStam\n",
- "prompted!\n",
- "بعد ba?d marAseme ?extetAmiye ba?d ?az mosAbeqe ?ejrA miSavad\n",
- "prompted!\n",
- "بعد ba?d mA ba?d ?az gozar ?az pol be rustA rasidim\n",
- "prompted!\n",
- "بعد ba?d qesmate ba?di ?in seriyAl jom?e montaSer miSavad\n",
- "prompted!\n",
- "بعد ba?d ba?d ?az ?u digar be hiCkas ?e?temAd nakardam\n",
- "prompted!\n",
- "بعد bo?d jahAne mAddiye mA dArAye se bo?d ?ast\n",
- "prompted!\n",
- "بعد bo?d ?u talAS mikard ba?ede ?erfAni xod rA parvareS dahad\n",
- "prompted!\n",
- "بعد bo?d tA be hAl ?az ?in bo?d be mozu? negAh nakarde budam\n",
- "prompted!\n",
- "بعد bo?d ?AnhA nemudAr rA ?az bo?de digari barresi kardand\n",
- "prompted!\n",
- "بعد bo?d diSab hamegi be sinamA bo?di raftim\n",
- "prompted!\n",
- "شش SeS hamid SeS sAl ?az man bozorgtar bud\n",
- "prompted!\n",
- "شش SeS ba?d ?az SeS mAh dobAre be rustA bargaStam\n",
- "prompted!\n",
- "شش SeS xAharzAde?am SeS sAle Sode bud\n",
- "prompted!\n",
- "شش SeS mA SeS nemudAr barAyetAn tarsim kardim\n",
- "prompted!\n",
- "شش SeS SeS tir be badane ?u ?esAbat karde bud\n",
- "prompted!\n",
- "شش SoS henAme nafas keSidan SoShAye mA taqyire sAyz midahand\n",
- "prompted!\n",
- "شش SoS ?AnhA qazAyi bA SoS gusfand dorost mikonand\n",
- "prompted!\n",
- "شش SoS sigAr keSidan SoShA rA bimAr mikonad\n",
- "prompted!\n",
- "شش SoS mA ?az tariq SoShA nafas mikeshim\n",
- "prompted!\n",
- "شش SoS meqdAri ?az gAze sammi vArede SoSe hamid Sode bud\n",
- "prompted!\n",
- "طبق tebqe tebqe ?osule ?u hameye talASAye mA bihude bud\n",
- "prompted!\n",
- "طبق tebqe mA bAyad tebqe ?in barnAme ?amal konim\n",
- "prompted!\n",
- "طبق tebqe ?Ali bar tebqe goftehAye ?u ?amal mikard\n",
- "prompted!\n",
- "طبق tebqe tebqe ?in nemudAr mA sAle ba?d be natije xAhim resid\n",
- "prompted!\n",
- "طبق tebqe hame mA tebqe goftehAye ?ostAd sobh be ?AnjA roftim\n",
- "prompted!\n",
- "طبق tabaq ?u kisehAra tabaq tabaq ruye ham jam? karde bud\n",
- "prompted!\n",
- "طبق tabaq mAdar nAnhA rA dar tabaq gozASte bud\n",
- "prompted!\n",
- "طبق tabaq ba?d ?az tasAdof tabaqe mASin ?irAd peydA karde bud\n",
- "prompted!\n",
- "طبق tabaq mA ?az mekAnik xAstim tabaq rA ta?mir konad\n",
- "prompted!\n",
- "طبق tabaq barfhA tabaq tabaq ruye ham ?anbASte miSodand\n",
- "prompted!\n",
- "مد mod ?u dar lebAs puSidan mode ruz rA donbAl mikonad\n",
- "prompted!\n",
- "مد mod ?An zamAn mod bud ?az ?in vasAyel bexarim\n",
- "prompted!\n",
- "مد mod hameye mA ?An zamAn mode ruz rA donbAl mikardim\n",
- "prompted!\n",
- "مد mod dar mahalle mA mod bud muhA rA betarASand\n",
- "prompted!\n",
- "مد mod hasan dar zamineye mod fa?Aliat mikonad\n",
- "prompted!\n",
- "مد madd henAme madde ?Ab daryA bAlA miAyad\n",
- "prompted!\n",
- "مد madd mA qabl ?az madd bAyad be sAhel berasim\n",
- "prompted!\n",
- "مد madd jAzebeye mAh bA?ese jazr ?o madd dar koreye zamin miSavad\n",
- "prompted!\n",
- "مد madd mAhigirAn be jazr ?o madde daryA ?Adat dArand\n",
- "prompted!\n",
- "مد madd ?in mAhihA hengAme madd be sat?he ?Ab miAyand\n",
- "prompted!\n",
- "بری beri ?age hamin masiro beri be ?unjA mirasi\n",
- "prompted!\n",
- "بری beri xAstam xodat beri va bebini Ce xebre\n",
- "prompted!\n",
- "بری beri boht dastur midam tA qabl ?az tArik Sodane havA be ?unjA beri\n",
- "prompted!\n",
- "بری beri harCe zudtar beri be moqe? be ?AnjA mirasi\n",
- "prompted!\n",
- "بری beri bAyad bA mohammad beri tA rAho boht neSun bede\n",
- "prompted!\n",
- "بری bori be farhAd goftam bAyad guSthA rA riz riz bebari\n",
- "prompted!\n",
- "بری bori ?u bori be kArthA zad va dobAre paxSaSAn kard\n",
- "prompted!\n",
- "بری bori sa?y kon hengAme kAr bA CAqu dastat rA nabari\n",
- "prompted!\n",
- "بری bori ?Ali be man goft bAyad pArCehA rA bA deqqat bori\n",
- "prompted!\n",
- "بری bori sinA goft ?agar kAblhA rA mibori ?az kAter ?estefAde kon\n",
- "prompted!\n",
- "برم beram man mikhAm ?emsAl be ?unjA beram\n",
- "prompted!\n",
- "برم beram ?age be mosAbeqAt beram qat?an barande miSam\n",
- "prompted!\n",
- "برم beram harCi sa?y mikonam nemitunam be ?unjA beram\n",
- "prompted!\n",
- "برم beram to bAyad bezAri man tanhAyi be ?unjA beram\n",
- "prompted!\n",
- "برم beram nemixAm beram ?unjA behem bean bargard\n",
- "prompted!\n",
- "برم baram kami bA xod kalanjAr roftam tA ?u rA ?az yAd baram\n",
- "prompted!\n",
- "برم baram man vasAyel rA bA xod be xAne mibaram\n",
- "prompted!\n",
- "برم baram mare ?u bA?es Sod tamAme ?amvAl rA be ?ers bebaram\n",
- "prompted!\n",
- "برم baram mohammad yAdAvari kard zamAne mosAbeqAt rA ?az yAd nabaram\n",
- "prompted!\n",
- "برم baram man tamAme matAlebe ketAb rA ?az baram\n",
- "prompted!\n",
- "شوید Suyad ?u sa?y mikonad zarfhA rA Suyad\n",
- "prompted!\n",
- "شوید Suyad ?Ali dar xiyAbAn mASinaS rA miSuyad\n",
- "prompted!\n",
- "شوید Suyad be hoseyn goftam ?emSab maqAze rA naSavid\n",
- "prompted!\n",
- "شوید Suyad hasan bAyad tA sobh hame ?inhA rA beSuyad\n",
- "prompted!\n",
- "شوید Suyad ?u bA ?ajale badane xod rA zire ?Ab miSuyad\n",
- "prompted!\n",
- "شوید Sivid Sivid polo ?az qAzAhAye ?irAniyAn ?ast\n",
- "prompted!\n",
- "شوید Sivid mAdar meqdAri Sivid rA xord kard\n",
- "prompted!\n",
- "شوید Sivid Sivid jazve sabzijAte portarafdAr ?ast\n",
- "prompted!\n",
- "شوید Sivid hengAme bAzgaSt be xAne meqdAri Sivid xaridam\n",
- "prompted!\n",
- "شوید Sivid barAye tahiyye ?in sup be dvisad ram Sivid niAz dArid\n",
- "prompted!\n",
- "شوید Savid SomA bAyad ?az darbe poSt vArede sAlon Savid\n",
- "prompted!\n",
- "شوید Savid lotfan ?ArAm sohbat konid tA mozAheme digarAn naSavid\n",
- "prompted!\n",
- "شوید Savid be ?AnhA goftam lotfan be ?ArAmi vAred Savid\n",
- "prompted!\n",
- "شوید Savid ?agar talASe xod rA biStar konid hatman movaffaq miSavid\n",
- "prompted!\n",
- "شوید Savid sa?y konid qabl ?az digarAn ?az ?injA xArej Savid\n",
- "prompted!\n",
- "چسباند CasbAnd hasan do tekke kAqaz rA be ham CasbAnd\n",
- "prompted!\n",
- "چسباند CasbAnd ?u mASinaS rA be mASine jaluyi CasbAnd\n",
- "prompted!\n",
- "چسباند CasbAnd minA poster rA be divAre ?otAgheS CasbAnd\n",
- "prompted!\n",
- "چسباند CasbAnd farhAd do dastaS rA be ham CasbAnd\n",
- "prompted!\n",
- "چسباند CasbAnd mahdi qete rA bA Casb be jAye xod CasbAnd\n",
- "prompted!\n",
- "چسباند CasbAnad ?in Casb har Cizi rA be ham miCasbAnad\n",
- "prompted!\n",
- "چسباند CasbAnad ?u nabAyad Cizi be divAre ?otAq beCasbAnad\n",
- "prompted!\n",
- "چسباند CasbAnad be hAdi goftam mASinaS rA be mASine man naCasbAnad\n",
- "prompted!\n",
- "چسباند CasbAnad nedA bAyad hame ?akshA rA be ?Albom beCasbAnad\n",
- "prompted!\n",
- "چسباند CasbAnad Sireye ?in giyAh barghA rA be zamin miCasbAnad\n",
- "prompted!\n",
- "تست test hasan dASt dastgAhe jadid rA test mikard\n",
- "prompted!\n",
- "تست test dar ?Azmune teste ?emruz hame gozinehAra dorost zadam\n",
- "prompted!\n",
- "تست test barAdaram dASt mazze qazA rA test mikard\n",
- "prompted!\n",
- "تست test lotfan gabl ?az xArej Sodan ?az maqAze salAmate mahsul rA test konim\n",
- "prompted!\n",
- "تست test nedA mahsul rA ruye puste xod test kard\n",
- "prompted!\n",
- "تست tost nAne tost barAye sobhAne monAseb ?ast\n",
- "prompted!\n",
- "تست tost ?u har ruz morabbA va nAne tost mixorad\n",
- "prompted!\n",
- "تست tost farhAd morabbA rA ruye nAne tost mimAlad\n",
- "prompted!\n",
- "تست tost ?u be jAye tost kardan nAn rA suzAnde bud\n",
- "prompted!\n",
- "تست tost nAnhA dar dastgA dar hAle tost Sodan budan\n",
- "prompted!\n",
- "روی ravi bAyad ?az ?in masir be ?AnjA beravi\n",
- "prompted!\n",
- "روی ravi sa?y kon biS ?az ?in ravi ?a?sAbe ?u rAh naravi\n",
- "prompted!\n",
- "روی ravi ?az ?u porsidam CerA ?in tur rAh miravi\n",
- "prompted!\n",
- "روی ravi ?agar ?az ?in rAh miravi salAme marA ham be ?u beresAn\n",
- "prompted!\n",
- "روی ravi mohammad goft bAyad zudtar be ?AnjA beravi\n",
- "prompted!\n",
- "روی ruy ruy no?i ?onsore felezzi ?ast\n",
- "prompted!\n",
- "روی ruy dar sAxte ?in ?AlyAZ ?az feleze ruy ?estefAde miSavad\n",
- "prompted!\n",
- "روی ruy jense ?in zarf ?az ruy ?ast\n",
- "prompted!\n",
- "روی ruy mA barAye sAxt ?An mitavAnim ?az ruy ?estefAde konim\n",
- "prompted!\n",
- "روی ruy feleze ruy dar san?at kArborde ziyAdi dArad\n",
- "prompted!\n",
- "روی ruye ?ASqAlhA ruye ham ?anbASte Sode budand\n",
- "prompted!\n",
- "روی ruye mAdar patu rA ruye farzandaS keSid\n",
- "prompted!\n",
- "روی ruye mA hamegi ruye barande Sodane ?u hesAb karde budim\n",
- "prompted!\n",
- "روی ruye ganjeSk lAneaS rA ruye deraxti dorost kard\n",
- "prompted!\n",
- "روی ruye hesAm maSqule tamASaye ruye zibAye ?u bud\n",
- "prompted!\n",
- "ولو valo mA nabAyad Sekast bexorim valo be qeymate jAnemAn\n",
- "prompted!\n",
- "ولو valo to bAyad ?in kAr rA tamAm kuni valo be tanhAyi\n",
- "prompted!\n",
- "ولو valo hasan goft xAndane ketAb rA tamAm konid valo tA yekshanbe\n",
- "prompted!\n",
- "ولو valo man sAxte ?An rA tamAm kardam valo bedune pul\n",
- "prompted!\n",
- "ولو valo to nabAyad be ?AnjA bargardi valo be xAtere pedarat\n",
- "prompted!\n",
- "ولو velo hoseyn ruye taxt velo Sode bud\n",
- "prompted!\n",
- "ولو velo pas ?az residan be xAne ruye zamin velo Sodam\n",
- "prompted!\n",
- "ولو velo zarbe bA?es Sod kAbl ruye havA velo Savad\n",
- "prompted!\n",
- "ولو velo sa?y kardan ?az velo Sodane ?AnhA jelogiri konam\n",
- "prompted!\n",
- "ولو velo be mahze residan be bAq hamegi dAxel ?otAq velo Sodim\n",
- "prompted!\n",
- "خواند xAnad ?u dArad Se?r mikhAnad\n",
- "prompted!\n",
- "خواند xAnad be ?Ali goftam ?AvAz naxAnad\n",
- "prompted!\n",
- "خواند xAnad be ?u goftam bolandtar matn rA bexAnad\n",
- "prompted!\n",
- "خواند xAnad hasan dar kelAs ketAb mixAnad\n",
- "prompted!\n",
- "خواند xAnad ?u har Sab qor?An mixAnad\n",
- "prompted!\n",
- "خواند xAnd ?Ali diSab ?AvAz xAnd\n",
- "prompted!\n",
- "خواند xAnd ?u barAyemAn yek sure ?az qor?An xAnd\n",
- "prompted!\n",
- "خواند xAnd rezA bA sedAye boland ?AvAz xAnd\n",
- "prompted!\n",
- "خواند xAnd doktor nosxeye man rA xAnd\n",
- "prompted!\n",
- "خواند xAnd ?u qabl ?az ?in kAr daste man rA xAnd\n",
- "prompted!\n",
- "سمت semat man be ?in semat bargozide Sodam\n",
- "prompted!\n",
- "سمت semat ?u rA ?az ?in semat barkenAr kardand\n",
- "prompted!\n",
- "سمت semat mA ?az semate xod ?este?fA dAdim\n",
- "prompted!\n",
- "سمت semat pas ?az sAlhA talAS be ?in semat resid\n",
- "prompted!\n",
- "سمت semat hAdi ?az semate xod kenAregiri kard\n",
- "prompted!\n",
- "سمت samt ?az samte Sarq zohur kard\n",
- "prompted!\n",
- "سمت samt bAd ?az samte qarb dar hAle vazidan bud\n",
- "prompted!\n",
- "سمت samt mASinhA ?az samte Cap dar hAle taraddod budand\n",
- "prompted!\n",
- "سمت samt did samte rAste ?u za?if bud\n",
- "prompted!\n",
- "سمت samt doSman ?az samte rAst dar hAle piSravi ?ast\n",
- "prompted!\n",
- "کنده kande ?avdar rA ?az jA kande bud\n",
- "prompted!\n",
- "کنده kande loder zamin rA kAmel kande bud\n",
- "prompted!\n",
- "کنده kande pustaS rA be surate kAmel kande va tahvil dAd\n",
- "prompted!\n",
- "کنده kande ?u ?az kAr del kande bud\n",
- "prompted!\n",
- "کنده kande ?Adami ?az donyA del kande ?ast\n",
- "prompted!\n",
- "کنده konde dud ?az konde boland Sod\n",
- "prompted!\n",
- "کنده konde nAnvA ye kondeye xamir be moStari dAd\n",
- "prompted!\n",
- "کنده konde ?u be tanhAyi konde rA boland kard\n",
- "prompted!\n",
- "کنده konde konde be baxSi ?az taneye deraxt gofta miSavad\n",
- "prompted!\n",
- "کنده konde nAder barAye neSastan kondeye betoni dorost kard\n",
- "prompted!\n",
- "گنگ gong sohbate ?amir barAye hame gong bud\n",
- "prompted!\n",
- "گنگ gong matAlebi darsi dar ba?zi mavAred gong mibASad\n",
- "prompted!\n",
- "گنگ gong ?Adres dar sAyt gong bud\n",
- "prompted!\n",
- "گنگ gong ?amir barAye bayAne ?ehsAse gong va gij Sode bud\n",
- "prompted!\n",
- "گنگ gong zarbe bA?es Sod ?u barAye daqA?eqi gong bASad\n",
- "prompted!\n",
- "گنگ gang gang be ma?nAye gruh va bAnd mibASad\n",
- "prompted!\n",
- "گنگ gang tabehkArAne goruhi be nAme gang taSkil dAdand\n",
- "prompted!\n",
- "گنگ gang gange ?AnhA bAlA bud\n",
- "prompted!\n",
- "گنگ gang tipe rezA besyAr gang bud\n",
- "prompted!\n",
- "گنگ gang ?u motorsavAre gangi bud\n",
- "prompted!\n",
- "بکن bokon ?az ?in kAr hazar kon\n",
- "prompted!\n",
- "بکن bokon ?az zendegiye por maSqale duri bokon\n",
- "prompted!\n",
- "بکن bokon to kAre xodeto bokon\n",
- "prompted!\n",
- "بکن bokon ?ey ke dastat mirasad kAri bokon\n",
- "prompted!\n",
- "بکن bokon barAye movaffaqiyyat ?in kArhA rA bokon\n",
- "prompted!\n",
- "بکن bekkan barAye hefze hormat ?az ?u del bekkan\n",
- "prompted!\n",
- "بکن bekkan bA ?in raveS kalake mokAleme rA be rAhati bekkan\n",
- "prompted!\n",
- "بکن bekkan bA ?in kAr kalake ?u rA bekkan\n",
- "prompted!\n",
- "بکن bekkan kASte mive niyAz be kandane zamin dArad\n",
- "prompted!\n",
- "بکن bekkan barAye hamvAr sAzi ?in zamin rA bekkan\n",
- "prompted!\n",
- "درهم derham vAhede pule barxi keSvarhAye ?arabi derham mibASad\n",
- "prompted!\n",
- "درهم derham dar qadim derham ?az noqre va talA dorost miSod\n",
- "prompted!\n",
- "درهم derham behtarin sarrAfihAye xaride derham rA mo?arrefi mikard\n",
- "prompted!\n",
- "درهم derham si hezAr derham pAdAS ta?yin kard\n",
- "prompted!\n",
- "درهم derham sarrAfi barAye xaride derham kutAhi mikard\n",
- "prompted!\n",
- "درهم darham temAmiye ?ajnAse maqAze darham bud\n",
- "prompted!\n",
- "درهم darham dAneSAmuz kalamAte darham rixte rA morattab kard\n",
- "prompted!\n",
- "درهم darham ?injA makAni darham va bi nazm ?ast\n",
- "prompted!\n",
- "درهم darham ?u ?az Seddate xastegi darham Sekaste bud\n",
- "prompted!\n",
- "درهم darham kAram Co zolfe yAr pariSAn va darham ?ast\n",
- "prompted!\n",
- "شناساند SenAsAnd ?u zAte palide xod rA be hame SenAsAnd\n",
- "prompted!\n",
- "شناساند SenAsAnd ?Ali viZegiye jadide xodro rA be hozzAr SenAsAnd\n",
- "prompted!\n",
- "شناساند SenAsAnd mobin tak be tak ?u rA be jam? miSenAsAnd\n",
- "prompted!\n",
- "شناساند SenAsAnd hAdi bA harekati ?u rA be jam? SenAsAnd\n",
- "prompted!\n",
- "شناساند SenAsAnd sarnaxe mojud dar ?AnjA qAtel rA be hame SenAsAnd\n",
- "prompted!\n",
- "شناساند SenAsAnad farhAd dustaS rA be hame miSenAsAnad\n",
- "prompted!\n",
- "شناساند SenAsAnad ?in geryem SAyad Cehreye ?u rA naSenAsAnad\n",
- "prompted!\n",
- "شناساند SenAsAnad ?in tamrin SAyad ?Adres rA be kudak beSenAsAnad\n",
- "prompted!\n",
- "شناساند SenAsAnad ?anjAme ?in ?AzmAyeS no?e ?asid rA be mA miSenAsAnd\n",
- "prompted!\n",
- "شناساند SenAsAnad ?in taqirAt SAyad zAte ?asli ?u rA be mardom naSenAsAnad\n",
- "prompted!\n",
- "یاس ya?s yas ?o nAomidi sangare mA rA farA gerefte bud\n",
- "prompted!\n",
- "یاس ya?s ?u bA yAs ?o nA?omidi ?az ?otAq xArej Sod\n",
- "prompted!\n",
- "یاس ya?s yAse biS ?az hadde ?u bA?ese ?AzAre hame Sode bud\n",
- "prompted!\n",
- "یاس ya?s hasan ?az farte yAs va nA?omidi ?az xAne xArej nemiSod\n",
- "prompted!\n",
- "یاس ya?s ?in Sekast bA?ese yAse ziyAde laSgariyAn Sod\n",
- "prompted!\n",
- "یاس yAs ?u te?dAdi ?az golhAye yAs rA kand\n",
- "prompted!\n",
- "یاس yAs ?u nAme farzandaS rA yAs gozASte bud\n",
- "prompted!\n",
- "یاس yAs rAyeheye ?in mAye? dastSu?i ?atre yAs ?ast\n",
- "prompted!\n",
- "یاس yAs olhAye yAs hame jArA mo?attar karde budand\n",
- "prompted!\n",
- "معبر mo?abber ?az mo?abberAne bozorge zamAne xiS bud\n",
- "prompted!\n",
- "معبر mo?abber bAmdAd mo?abberi rA bexAnad va ta?bire xAbaS rA xAst\n",
- "prompted!\n",
- "معبر mo?abber ?u be mo?abberi ruy ?Avard\n",
- "prompted!\n",
- "معبر mo?abber kahenAne ma?bad mo?abberAne bozorgi budand\n",
- "prompted!\n",
- "معبر mo?abber mo?abber be ma?naye ta?bir konandeye xAb mibASad\n",
- "prompted!\n",
- "معبر ma?bar zendegi ma?bari ?ast ke harkas bAyad ?An rA tay konad\n",
- "prompted!\n",
- "معبر ma?bar dar ma?bare ruzAne?aS bA dustAnaS didAr kard\n",
- "prompted!\n",
- "معبر ma?bar ?in ma?bar xatarnAk ?ast\n",
- "prompted!\n",
- "معبر ma?bar ?u ?az personele sade ma?bar bud\n",
- "prompted!\n",
- "مهم mohem ?anjAme ?in kAr barAye mA besyAr mohem bud\n",
- "prompted!\n",
- "مهم mohem ?in mohemtarin kAri bud ke SAyAn ?anjAm dAd\n",
- "prompted!\n",
- "مهم mohem hefze ?in Sahr barAye mardom mohem bud\n",
- "prompted!\n",
- "مهم mohem farmAndeh ?az ?in movaffaqiyyate mohem xoSAl bud\n",
- "prompted!\n",
- "مهم mohem Serkat dar ?in kelAshA barAye zahrA mohem bud\n",
- "prompted!\n",
- "مهم mohemm ?AnhA ?az ?anjAme ?in mohemm xoSAl budand\n",
- "prompted!\n",
- "مهم mohemm farmAndeh ?anjAme ?in mohemm rA be sarbAzAn seporde bud\n",
- "prompted!\n",
- "مهم mohemm rasedan be ?in mohemm ?az ?ahdAfe mAst\n",
- "prompted!\n",
- "مهم mohemm mA barAye residean be ?in mohemm talASe xod rA mikonim\n",
- "prompted!\n",
- "مهم mohemm mAmuriyate ?u residagi be ?in ?amre mohemm bud\n",
- "prompted!\n",
- "مردم mardom dusti bA mardom nimi ?az ?aql ?ast\n",
- "prompted!\n",
- "مردم mardom mardom be kasi ruyi miAvarand ke xoSruyi konad\n",
- "prompted!\n",
- "مردم mardom mitavAn mardom rA moteqA?ed kard ke beheSt jahannam ?ast\n",
- "prompted!\n",
- "مردم mardom dAnatarine mardom kasi ?ast ke dAneSe mardom rA bA dAneSe xod jam? konad\n",
- "prompted!\n",
- "مردم mardom ?ezzate mardome bA ?imAn dar bi niyAzi ?az mardom ?ast\n",
- "prompted!\n",
- "مردم mordam ?az tars ?o vahSate ?in xabar mordam\n",
- "prompted!\n",
- "مردم mordam mordam ?az bas be mozu?i fekr kardam\n",
- "prompted!\n",
- "مردم mordam barAye ?in piruzi man bArhA mordam\n",
- "prompted!\n",
- "مردم mordam man ?az zoge Senidane ?in xabar mordam\n",
- "prompted!\n",
- "مردم mordam man barAye zendegi bArhA mordam\n",
- "prompted!\n",
- "خوراند xorAnad mahdi ?ostoxAn rA be sagaS mixorAnad\n",
- "prompted!\n",
- "خوراند xorAnad be ?u goftam dAru rA be kudak bexorAnad\n",
- "prompted!\n",
- "خوراند xorAnad mahdi be ?u goft digar ?in dAru rA be ?u naxorAnad\n",
- "prompted!\n",
- "خوراند xorAnad tarkib Sodane ?asid va ?Ab felez rA ?az darun mixorAnad\n",
- "prompted!\n",
- "خوراند xorAnad zahrA bAyad ruzi do qatre be parande bexorAnad\n",
- "prompted!\n",
- "خوراند xorAnd ?u dAruhA rA be kudak xorAnd\n",
- "prompted!\n",
- "خوراند xorAnd ?u ?aqAyede xod rA be mellate nAdAn xorAnd\n",
- "prompted!\n",
- "خوراند xorAnd bahman te?dAdi qand be ?asbe xod xorAnd\n",
- "prompted!\n",
- "خوراند xorAnd zahrA ham xodaS qazA mixorad ham be kudakAn mixorAnad\n",
- "prompted!\n",
- "خوراند xorAnd hasan bA sabr sup rA be bimAr xorAnd\n",
- "prompted!\n",
- "جست jast malax sari?an ?az ruye SAxe be havA jast\n",
- "prompted!\n",
- "جست jast kAngoru bA pareS be ?ertefA?ye ziyAdi jast\n",
- "prompted!\n",
- "جست jast ?u bA zarbei do metr be havA jast\n",
- "prompted!\n",
- "جست jast ?Ali ?az tars be havA jast\n",
- "prompted!\n",
- "جست jast gorbe vaqti se rA did ?az jAye xod jast\n",
- "prompted!\n",
- "جست jost ?u vasAyele xod rA dar ?otAq mijost\n",
- "prompted!\n",
- "جست jost har Ce ?esrAr kardam ?u vasile rA najost\n",
- "prompted!\n",
- "جست jost polis hame jArA be donbAle qAtel mijost\n",
- "prompted!\n",
- "جست jost doktor bA konjkAvi be donbAle ?Amele bimAri mijost\n",
- "prompted!\n",
- "جست jost pahlavAn barAye ?in kAr ?az mellat madad jost\n",
- "prompted!\n",
- "بنا bannA mas?ud dar hAle sohbat bA bannA bud\n",
- "prompted!\n",
- "بنا bannA bannA barAye ?in kAr se ruz zamAn mixAst\n",
- "prompted!\n",
- "بنا bannA bannA be sor?at dar hAle sAxtane sAxtemAn bud\n",
- "prompted!\n",
- "بنا bannA bannA barAye ?in mablag ziyAdi daryAft kard\n",
- "prompted!\n",
- "بنا bannA bannA ?Ajor hA rA ruye ham miCid\n",
- "prompted!\n",
- "بنا banA sAxte ?in banA se sAl tul keSid\n",
- "prompted!\n",
- "بنا banA ?in banA marbut be doreye qAjAryAn ?ast\n",
- "prompted!\n",
- "بنا banA mA bA tars vArede banAye matruk Sodim\n",
- "prompted!\n",
- "بنا banA mardom dar hayAte ?in banA jam? Sode budand\n",
- "prompted!\n",
- "بنا banA ?in banA dArAye hayAte besyAr bozorgi ?ast\n",
- "prompted!\n",
- "ترکاند terekAnad garmAye ziyAd lAstike mASin rA miterkAnad\n",
- "prompted!\n",
- "ترکاند terekAnad ?Ali xAst tA taraqqei beterkAnad\n",
- "prompted!\n",
- "ترکاند terekAnad zahrA bAdkonak rA bA dast miterekAnad\n",
- "prompted!\n",
- "ترکاند terekAnad hasan juSe surataS rA miterekAnad\n",
- "prompted!\n",
- "ترکاند terekAnad feSAre ziyAd momken ?ast kapsul rA beterkAnad\n",
- "prompted!\n",
- "ترکاند terekAnd garmA lAstike mASin rA terekAnd\n",
- "prompted!\n",
- "ترکاند terekAnd ma?danCi dinamit rA zudtar ?az mo?ed terekAnd\n",
- "prompted!\n",
- "ترکاند terekAnd moSte ?u labhAye hamid rA terekAnd\n",
- "prompted!\n",
- "ترکاند terekAnd feSAre ziyAd kapsul rA bA sedAye boland terekand\n",
- "prompted!\n",
- "ترکاند terekAnd kudak bAdkonak rA bA suzan terekAnd\n",
- "prompted!\n",
- "ملاک mallAk ?u ?az mallakine bozorge mantaqe bud\n",
- "prompted!\n",
- "ملاک mallAk mA ?az mallakin xAstim dar ?in barnAme Serkat konand\n",
- "prompted!\n",
- "ملاک mallAk yeki ?az mallakAne besyAr farde badi bud\n",
- "prompted!\n",
- "ملاک mallAk dar ?in barnAme beyne mallAkin qor?e keSi miSod\n",
- "prompted!\n",
- "ملاک mallAk mallAk zaminhAye xod rA zire qeymat foruxt\n",
- "prompted!\n",
- "ملاک melAk melAke ?u barAye ?entexAbe ?in reSte ?alAqeaS bud\n",
- "prompted!\n",
- "ملاک melAk melAke hasan barAye ?entexAbe hamsar mehrabAni bud\n",
- "prompted!\n",
- "ملاک melAk ?u melAkhAye lAzeme mA rA nadArad\n",
- "prompted!\n",
- "ملاک melAk melAke man ?az ?in ?entexAb xoS sohbatiye ?u bud\n",
- "prompted!\n",
- "ملاک melAk ?u hame melAkhAye lAzem barAye ?anjAme ?in kAr rA dArad\n",
- "prompted!\n",
- "پلاس pelAs ?AnhA har Sab dar xiAbAn pelAs budand\n",
- "prompted!\n",
- "پلاس pelAs ?Ali sA?athA dar kAfe pelAs bud\n",
- "prompted!\n",
- "پلاس pelAs mahdi barAye modati dar xAneye mA pelAs Sod\n",
- "prompted!\n",
- "پلاس pelAs mASine ?u yek denA pelAs bud\n",
- "prompted!\n",
- "پلاس pelAs denA pelAs xodro sAxte ?irAn ?ast\n",
- "prompted!\n",
- "پلاس palAs xiyArhA hame ?az garmA pelAside bud\n",
- "prompted!\n",
- "پلاس palAs ?u be man goft harCe zudtar jul ?o palAse xod rA jam? kon\n",
- "prompted!\n",
- "پلاس palAs ?Ali dASt julo palAse xod rA ?az xAne jam? mikard\n",
- "prompted!\n",
- "پلاس palAs mivehA pas ?az gozaSte ruzhA hame pelAside bud\n",
- "prompted!\n",
- "پلاس palAs jul ?o palAse mA dar hame jAye xAne rixte bud\n",
- "prompted!\n",
- "فوت fot pedarbozorge ?u diSab fot kard\n",
- "prompted!\n",
- "فوت fot pas ?az fote ?u hameye xAnevAde qamgin budand\n",
- "prompted!\n",
- "فوت fot ?u bA morAqebat ?az fote barAdaraS jelogiri kard\n",
- "prompted!\n",
- "فوت fot parandehA yeki yeki dAStand fot mikardand\n",
- "prompted!\n",
- "فوت fot fote ?u xeyli kArhAye mA rA ?aqab ?andAxt\n",
- "prompted!\n",
- "فوت fut surenA Sam?hAye ruye keyk rA fut kard\n",
- "prompted!\n",
- "فوت fut man CAye dAq rA CandbAr fut kardam\n",
- "prompted!\n",
- "فوت fut ?ertefA?ye ?in sAze sad fut ?ast\n",
- "prompted!\n",
- "فوت fut fut yek vAhede ?andAze giri ?ast\n",
- "prompted!\n",
- "فوت fut ?u bA Seddat darune ?AtaS fut kard\n",
- "prompted!\n",
- "کت kot man bA ?ajale kote xod rA puSidam\n",
- "prompted!\n",
- "کت kot mA barAye ?u yek kot xaridim\n",
- "prompted!\n",
- "کت kot kote jadide ?u besyAr zibA bud\n",
- "prompted!\n",
- "کت kot ?u ?Aranje kote xod rA vasle karde bud\n",
- "prompted!\n",
- "کت kot qeymate ?Axarin kot ?az hame biStar bud\n",
- "prompted!\n",
- "کت kat man nAmehA rA be katAyun dAdam\n",
- "prompted!\n",
- "کت kat mA hame ruye nimkat neSastim\n",
- "prompted!\n",
- "کت kat ?AnhA dar kate labe bimArestAn montazer budand\n",
- "prompted!\n",
- "کت kat ruye nimkate xis Sode bud\n",
- "prompted!\n",
- "کت kat kat dar ?engilisi be ma?naye gorbe ?ast\n",
- "prompted!\n",
- "برده barde fer?ovn ?az bardehA kAre ziyAdi mikeSid\n",
- "prompted!\n",
- "برده barde ?avvalin goruhe bardehA bA keSti be sAhel rasidand\n",
- "prompted!\n",
- "برده barde yeki ?az bardehA digarAn rA ?aleyhe ?u Surand\n",
- "prompted!\n",
- "برده barde ?u te?dAdi barde barAye ?arbAbe xod xarid\n",
- "prompted!\n",
- "برده barde bardehA maSqule sAxtane heram budand\n",
- "prompted!\n",
- "برده borde ?u qabl ?az pAyAne tAime mosAbeqe rA borde bud\n",
- "prompted!\n",
- "برده borde pedaram man rA be ?AnjA borde bud\n",
- "prompted!\n",
- "برده borde ?u sAlhA xAleam rA be SahrestAn miborde ?ast\n",
- "prompted!\n",
- "برده borde hasan keyfaS rA bA xod naborde bud\n",
- "prompted!\n",
- "برده borde SAyad ?u vasAyel rA bA xod borde bASad\n",
- "prompted!\n",
- "گله gele ?Ali ?az hameye SomA gele mikard\n",
- "prompted!\n",
- "گله gele mAdaram Soru? be gele kardan ?az ?un kard\n",
- "prompted!\n",
- "گله gele hiC kAm nemitavAnestim zarrei gele konim\n",
- "prompted!\n",
- "گله gele temAme geleye ?u ?az ta?xir dar kArhA bud\n",
- "prompted!\n",
- "گله gele man digar nemixAstam ?az ?ozA? gele konam\n",
- "prompted!\n",
- "گله galle CupAn galle rA bA xod be sahrA bord\n",
- "prompted!\n",
- "گله galle yek galleye kaftAr be Sir hamle kardand\n",
- "prompted!\n",
- "گله galle galleye ?u bozorgtarin galleye ?AbAdi bud\n",
- "prompted!\n",
- "گله galle gallei ?az gorghA zuze mikeSidand\n",
- "prompted!\n",
- "گله galle CupAne ?in galle fardi tanumand mibASad\n",
- "prompted!\n",
- "بده bede be ?u goftam medAdtarAS rA be man bede\n",
- "prompted!\n",
- "بده bede ?u be farmAndeh goft do ruz be mA mohlat bede\n",
- "prompted!\n",
- "بده bede hasan be pedaraS goft be man meqdAri pul bede\n",
- "prompted!\n",
- "بده bede milAd goft barAye ?in kAr dastat rA be daste man bede\n",
- "prompted!\n",
- "بده bede be ?u goftam lotfan del be ?in kAr bede\n",
- "prompted!\n",
- "بده bade be hasan goftam ?in kAr xayli bade\n",
- "prompted!\n",
- "بده bade man motma?enam ?avaqebaS xayli bade\n",
- "prompted!\n",
- "بده bade fAteme be baCCeaS goft bade ?edAme nadah\n",
- "prompted!\n",
- "بده bade dozdidane vasAyel yek kAr xeili bade\n",
- "prompted!\n",
- "بده bade hamegi goftim keyfiate film xeyli bade\n",
- "prompted!\n",
- "bedah (فعل) bedah (فعل) ?u raft tA vasAyel rA be dustaS bedahad\n",
- "prompted!\n",
- "bedah (فعل) bedah (فعل) man tasmim gereftam be meqdAri pul bedaham\n",
- "prompted!\n",
- "bedah (فعل) bedah (فعل) mA xAstim marAseme ?emsAl nazri bedahim\n",
- "prompted!\n",
- "bedah (فعل) bedah (فعل) polis ?az ?u xAst tA madArekaS rA bedahad\n",
- "prompted!\n",
- "bedah (فعل) bedah (فعل) man xAstam bA ?in kAr darsi be ?u bedaham\n",
- "prompted!\n",
- "چرخاند CarxAnad ?u dArad dastgire rA miCarxAnad\n",
- "prompted!\n",
- "چرخاند CarxAnad ?az ?u xAstam farmAn rA beCarxAnad\n",
- "prompted!\n",
- "چرخاند CarxAnad be mohsen goftam digar ?ahrom rA naCarxAnad\n",
- "prompted!\n",
- "چرخاند CarxAnad ?u Cub rA dur sereS miCarxAnd\n",
- "prompted!\n",
- "چرخاند CarxAnad farmAndeh xAst mA rA yek dure digar dar hayAt beCarxAnad\n",
- "prompted!\n",
- "چرخاند CarxAnd ?u bA zarbei ?ahrom rA Cand dur CarxAnd\n",
- "prompted!\n",
- "چرخاند CarxAnd ?Ali barAye narmeS sereS rA Cand dur CarxAnd\n",
- "prompted!\n",
- "چرخاند CarxAnd doktor ?ahrome dastgAh rA Cand dor CarxAnd\n",
- "prompted!\n",
- "چرخاند CarxAnd farhAd Cub rA dur sare xod CarxAnd\n",
- "prompted!\n",
- "چرخاند CarxAnd zahrA halqe rA dar dastAnaS miCarxAnd\n",
- "prompted!\n",
- "کندی kandi be mohsen goftam CerA barCasbhA rA kandi\n",
- "prompted!\n",
- "کندی kandi ?az hasan porsidam ?An CAle?i ke kandi kojAst\n",
- "prompted!\n",
- "کندی kandi ?u be man goft barAye xodat bad CAle?i kandi\n",
- "prompted!\n",
- "کندی kandi barAye ?anjAme ?in kAr bAyad CAleye bozorgtari mikandi\n",
- "prompted!\n",
- "کندی kandi CerA vaqti vaqt dASti pArCehA rA ?az saqf nakandi\n",
- "prompted!\n",
- "کندی kondi mASin be kondi dar hAle harekat bud\n",
- "prompted!\n",
- "کندی kondi ?asbe ?AnhA be kondi ?az tape bAlA ?Amad\n",
- "prompted!\n",
- "کندی kondi qerghere be kondi dar hAle CarxeS bud\n",
- "prompted!\n",
- "کندی kondi motore ?entexAbiye ?u motore kondi bud\n",
- "prompted!\n",
- "کندی kondi mA be kondi dar hAle piSravi budim\n",
- "prompted!\n",
- "کندی kenedi jAn ?ef kenedi ra?ise jomhure ?AmrikA bud\n",
- "prompted!\n",
- "کندی kenedi ?AqAye kenedi be kubA safar kard\n",
- "prompted!\n",
- "کندی kenedi jAn ?ef kenedi ?az siyAsathAye Soravi ?AgAh bud\n",
- "prompted!\n",
- "کندی kenedi mA hame ?az ?AghAye kenedi pazirAyi kardim\n",
- "prompted!\n",
- "کندی kenedi ?u jAne ?ef kenedi rA bA golule?i be qatl rasAnd\n",
- "prompted!\n",
- "خلق xolq ba?d ?az masrafe dAruhA xolqe behtari dAStam\n",
- "prompted!\n",
- "خلق xolq xolq ?o xoye ?u bA SarAyet sAzgAr nabud\n",
- "prompted!\n",
- "خلق xolq man dar hAle ?Adat kardan be xolq ?o xoye ?u budam\n",
- "prompted!\n",
- "خلق xolq ra?ise ?AnhA besyAr ?Adame badxolqi ?ast\n",
- "prompted!\n",
- "خلق xolq safar be ?AnjA xolqe hame rA behtar karde bud\n",
- "prompted!\n",
- "خلق xalq jomhuriye xalqe Cin yek ?o nim milyArd jam?iyyat dArad\n",
- "prompted!\n",
- "خلق xalq hadafe ?u tanhA xedmat be xalq ?ast\n",
- "prompted!\n",
- "خلق xalq xalqe hame tahte farmAne ?u budand\n",
- "prompted!\n",
- "خلق xalq xodAvand ?ensAnhA rA ?az gol xalq kard\n",
- "prompted!\n",
- "خلق xalq ?u ?in ?asare zibA rA diSab xalq kard\n",
- "prompted!\n",
- "چک Cak rezA Cake mohkami be surate ?ali zad\n",
- "prompted!\n",
- "چک Cak farmAndeh yek Cak be guSe ?u zad\n",
- "prompted!\n",
- "چک Cak be ?u goftam ma?lum ?ast tA be hAl Cak naxordei\n",
- "prompted!\n",
- "چک Cak sinA bA Cak va sili be jAne pesarak ?oftAd\n",
- "prompted!\n",
- "چک Cak tA be hAl Caki be ?in mohkami naxorde budam\n",
- "prompted!\n",
- "چک Cek bAyad tA ba?dazzohr Cek rA pAs kani\n",
- "prompted!\n",
- "چک Cek barAye ?in kAr be ?u yek terAvel Cek dAdam\n",
- "prompted!\n",
- "چک Cek Cek hA tA diSab pAs naSode bud\n",
- "prompted!\n",
- "چک Cek ?az bAnk yek daste Cek barAye ?in kAr gereftam\n",
- "prompted!\n",
- "چک Cek mablaqe ?in Cek besyAr bAlA bud\n",
- "prompted!\n",
- "بخار boxAr boxAre ziyAdi ?az ruye daryACe boland miSod\n",
- "prompted!\n",
- "بخار boxAr havA por ?az boxArhAye sammi Sode bud\n",
- "prompted!\n",
- "بخار boxAr ?u surateS rA jeloye boxAre ?Ab gerefte bud\n",
- "prompted!\n",
- "بخار boxAr ?Ab ?Anqadr garm Sod ke Suru? be boxAr Sodan kard\n",
- "prompted!\n",
- "بخار boxAr boxAre hAsel ?az ?in kAr besyAr sammi ?ast\n",
- "prompted!\n",
- "بخار bexAr be ?Ali goftam lotfan poStam rA bekhArun\n",
- "prompted!\n",
- "بخار bexAr hasan be man goft bA ?ehtiyAt ?Aranejam rA bexAron\n",
- "prompted!\n",
- "بخار bexAr lotfan pas ?az ?etmAme kAr damAghat rA bexarun\n",
- "prompted!\n",
- "بخار bexAr doktor goft vaqti gaC bAz Sod harCe dust dASti bexArun\n",
- "prompted!\n",
- "بخار bexAr ?ebtedA jurAb rA darbiyAvar va ba?d pAyat rA bexArun\n",
- "prompted!\n",
- "نزد nazde mA hamegi nazde ?emAm roftim\n",
- "prompted!\n",
- "نزد nazde dar nazde ?u hame ?ehsAse ?ArAmeS mikardand\n",
- "prompted!\n",
- "نزد nazde ?in ?avvalin bAr bud ke be nazde ?u miroftam\n",
- "prompted!\n",
- "نزد nazde mahdi gofti barAye ?in kAr bAyad nazde man biyAyi\n",
- "prompted!\n",
- "نزد nazde marde sarAsime xod rA nazde hakim rasAnd\n",
- "prompted!\n",
- "نزد nazad ?u ?az ruye delsuzi marde xAti rA nazad\n",
- "prompted!\n",
- "نزد nazad ?Ali pas ?az talASe farAvAn bAz ham hadaf rA nazad\n",
- "prompted!\n",
- "نزد nazad ?ArAyeSgar muhAye marA be xAtere Soluqi nazad\n",
- "prompted!\n",
- "نزد nazad nimA pul rA be hesAbe mas?ud nazad\n",
- "prompted!\n",
- "نزد nazad ?u gavazn rA did vali tir nazad\n",
- "prompted!\n",
- "چپاند CapAnad ?u bastehA rA dAxele CamedAn miCapAnad\n",
- "prompted!\n",
- "چپاند CapAnad be ?u goftam harCizi rA dar ?otAq naCapAnad\n",
- "prompted!\n",
- "چپاند CapAnad ?u bAyad ?ajalei hame Ciz rA be ?injA beCapAnad\n",
- "prompted!\n",
- "چپاند CapAnad ?Ali kAhhA rA dAxele kise miCapAnad\n",
- "prompted!\n",
- "چپاند CapAnad digar nemitavAnad Cizi rA darune kise beCapAnd\n",
- "prompted!\n",
- "چپاند CapAnd ?u hame Ciz rA dAxel kise CapAnd\n",
- "prompted!\n",
- "چپاند CapAnd leylA bA ?ajale lebAshA rA dar ?otAq CapAnd\n",
- "prompted!\n",
- "چپاند CapAnd nimA basteye ?Axar rA dAxel CamedAn CapAnd\n",
- "prompted!\n",
- "چپاند CapAnd ?u ham zamAn do loqme dar dahAne xod CapAnd\n",
- "prompted!\n",
- "چپاند CapAnd ?u kisihAra be dAxel mASin Capand\n",
- "prompted!\n",
- "اجر ?Ajor ?u bA malAt ?ajorhA rA beham miCasbAnd\n",
- "prompted!\n",
- "اجر ?Ajor ?in sAxtemAn bA ?ajor sAxte Sode ?ast\n",
- "prompted!\n",
- "اجر ?Ajor barAye xaride ?Ajor be Sahr raftim\n",
- "prompted!\n",
- "اجر ?Ajor ?Ali dar kureye ?Ajor pazi kAr mikonad\n",
- "prompted!\n",
- "اجر ?Ajor har ?Ajor nim kilu vazn dArad\n",
- "prompted!\n",
- "اجر ?ajr kArhAye nik ?ajre bozorgi be hamrAh dArad\n",
- "prompted!\n",
- "اجر ?ajr ?u ?ajre kArhAye xod rA daryAft karde bud\n",
- "prompted!\n",
- "اجر ?ajr mA ?ajre zahamAte xod rA nagerefte budim\n",
- "prompted!\n",
- "اجر ?ajr be ?u goftam ?enSa?llah ?ajre to rA ?emAme zamAn midahad\n",
- "prompted!\n",
- "اجر ?ajr ?ajre zahamAte ?u besyAr biStar ?az ?in bud\n",
- "prompted!\n",
- "شان Sa?n be ?u goftam ?anjAme ?in kArhA dar SAne to nist\n",
- "prompted!\n",
- "شان Sa?n Sa?ne ?u besyAr bAlAtar ?az ?anjAme ?in kArhAst\n",
- "prompted!\n",
- "شان Sa?n mA be Sa?n va manzelate ?u qebte mixordim\n",
- "prompted!\n",
- "شان Sa?n ?u Sa?ne xod rA bA harakAteS pAyin ?Avarde bud\n",
- "prompted!\n",
- "شان Sa?n dar SAne to nist ?in kAr rA ?anjAm dahi\n",
- "prompted!\n",
- "شان SAn ?AnhA mAshinSAn rA pArk karde budand\n",
- "prompted!\n",
- "شان SAn Sab CerAqe xAneSAn roSan bud\n",
- "prompted!\n",
- "شان SAn man barAye ?inkAr motorSAn rA qarz kardam\n",
- "prompted!\n",
- "شان SAn diSab dar rAh sari be maqAzeSAn zadam\n",
- "prompted!\n",
- "شان SAn dAmpezeSk dAruyi be SageSAn dAd\n",
- "prompted!\n",
- "رو rav ?u miravad be samte rudxAne\n",
- "prompted!\n",
- "رو rav mohammad bA dustAnaS be samte madrese miravad\n",
- "prompted!\n",
- "رو rav ?u bA mASin be samte SahrestAn miravad\n",
- "prompted!\n",
- "رو rav dustAnam be dAneSgAh ravand\n",
- "prompted!\n",
- "رو rav ?ahmad bA mAdaraS be doktor ravad\n",
- "prompted!\n",
- "رو ru ketAb rA ruye miz bezAr\n",
- "prompted!\n",
- "رو ru gol rA ruye goldAn bezAr\n",
- "prompted!\n",
- "رو ru xAk rA zir ?o ru kon\n",
- "prompted!\n",
- "رو ru mASin rA ruye pol pArk nakon\n",
- "prompted!\n",
- "رو ru ?Ab rA ruye farS nariz\n",
- "prompted!\n",
- "ترک tork ?AzarbAyjAn tork zabAn hastan\n",
- "prompted!\n",
- "ترک tork dar ?irAn zabAne tork ravAj dArad\n",
- "prompted!\n",
- "ترک tork tork be hiC kasi vAbastegi nadArad\n",
- "prompted!\n",
- "ترک tork ?ardebil ?ostAne torkzabAn hast\n",
- "prompted!\n",
- "ترک tork tabriz ?ostAne tork zabAn hast\n",
- "prompted!\n",
- "ترک tark be ?u goftam sigAr rA tark kon\n",
- "prompted!\n",
- "ترک tark ?Ali ?irAn rA tark kard\n",
- "prompted!\n",
- "ترک tark ?u xAne rA tark kard\n",
- "prompted!\n",
- "ترک tark zahrA ?otAq rA tark kard va be hAl raft\n",
- "prompted!\n",
- "ترک tark tarke ?AdathAye bad xeili xub ?ast\n",
- "prompted!\n",
- "ترک tarak kafe pAye mAdarbozorgam tarak dArad\n",
- "prompted!\n",
- "ترک tarak tarak ruye divAr ziyAd ?ast\n",
- "prompted!\n",
- "ترک tarak ?az sarmAye ziyAd tarak xorde ?ast\n",
- "prompted!\n",
- "ترک tarak tarak bA?ese ?ijAde ?Asib be pust miSavad\n",
- "prompted!\n",
- "ترک tarak narm konandehA jelogiri mikonan ?az tarake pusti\n",
- "prompted!\n",
- "دور dor man dore meydAn miCarxam\n",
- "prompted!\n",
- "دور dor man bA mASin be dore meydAn miCarxam\n",
- "prompted!\n",
- "دور dor man be dore mAdaram miCarxam\n",
- "prompted!\n",
- "دور dor man be dore pedaram miCarxam\n",
- "prompted!\n",
- "دور dor mosalmAnAn be dore ka?be migardand\n",
- "prompted!\n",
- "فک fok foke heyvAne CAqi ?ast\n",
- "prompted!\n",
- "فک fok fok dar havAye sard zendegi mikanad\n",
- "prompted!\n",
- "فک fok fokhA be surate goruhi zendegi mikonan\n",
- "prompted!\n",
- "فک fok fok dar qotbe SomAl zendegi mikanad\n",
- "prompted!\n",
- "فک fok fokhA dar nazdikiye ?AbhA hastand\n",
- "prompted!\n",
- "فک fakk zamin xordam va fakkam Sekast\n",
- "prompted!\n",
- "فک fakk fakk baxSi ?az surat ?ast\n",
- "prompted!\n",
- "فک fakk dar dAxele fakk dandAnhA qarAr dArad\n",
- "prompted!\n",
- "فک fakk fakk zadan kAre bihude ?ist\n",
- "prompted!\n",
- "فک fakk fakk jazve zibAye surat mahsub miSavad\n",
- "prompted!\n",
- "راند rAnd rAnde ?avvale mosAbeqe ?AqAz Sod\n",
- "prompted!\n",
- "راند rAnd dar mosAbeqeye koSti rAnde dovvom ?AqAz miSavad\n",
- "prompted!\n",
- "راند rAnd ?in panjomin rAnde mosAbeqeye boks ?ast\n",
- "prompted!\n",
- "راند rAnd panj rAnd poSte sar ham bAxte ?ast\n",
- "prompted!\n",
- "راند rAnd rAnde sevom bA bord hamrAh Sod\n",
- "prompted!\n",
- "راند rAnad ?akbar mASin rA mirAnad\n",
- "prompted!\n",
- "راند rAnad ?u qAyeq rA rAnad\n",
- "prompted!\n",
- "راند rAnad ?u mirAnad be samte xoSki\n",
- "prompted!\n",
- "راند rAnad mASin bar rapi zamin miranad\n",
- "prompted!\n",
- "راند rAnad ?ahmad kAmiyon ro mirAnad\n",
- "prompted!\n",
- "دم dom gorbe dome xod rA lisid\n",
- "prompted!\n",
- "دم dom dome Sir kande Sode bud\n",
- "prompted!\n",
- "دم dom xarguS dome kutAhi dArad\n",
- "prompted!\n",
- "دم dom kAngoaru dome bolandi dArad\n",
- "prompted!\n",
- "دم dom ?ensAnhA dom nadArad\n",
- "prompted!\n",
- "دم dam bokhAri dame garmi be ?otAq dAd\n",
- "prompted!\n",
- "دم dam dar ?in dam sare yek CAyi miCasbad\n",
- "prompted!\n",
- "دم dam dame qorub ?AsemAn besyAr zibA Sod\n",
- "prompted!\n",
- "دم dam dam montazere ?Amadane dustaS bud\n",
- "prompted!\n",
- "دم dam dame rafiqAn arm\n",
- "prompted!\n",
- "ترکان terekAn terekAn be qesseye kohan ?alAqe dArad\n",
- "prompted!\n",
- "ترکان terekAn diruz terekAn dar kelAse xoSnevisi Serkat kard\n",
- "prompted!\n",
- "ترکان terekAn ketAbe jadide terekAn darbAreye tArixe ?irAn ?ast\n",
- "prompted!\n",
- "ترکان terekAn terekAn bA dustAnaS be piyAde ravi be kuh raft\n",
- "prompted!\n",
- "ترکان terekAn mo?allem ?az terekAn xAst ?enSAye xod rA bexAnad\n",
- "prompted!\n",
- "ترکان torkAn torkAn lebAse sonnatiye zibAyi dArand\n",
- "prompted!\n",
- "ترکان torkAn dAstAne SojA?ate torkAn dar tArix mAndegAr Sod\n",
- "prompted!\n",
- "ترکان torkAn goruhi ?az torkAn dar jaSne noruz Serkat kardand\n",
- "prompted!\n",
- "ترکان torkAn torkAn be mehmAnAne xod ?ehterAme ziyAdi migozArand\n",
- "prompted!\n",
- "ترکان torkAn ?AvAzhAye mahalliye torkAn besyAr delneSin ?ast\n",
- "prompted!\n",
- "گرد gard gard ?o qobAr ruye miz rA pAk kard\n",
- "prompted!\n",
- "گرد gard ?asb bA sor?ate ziyAd gardi ?az zamin boland kard\n",
- "prompted!\n",
- "گرد gard kuhnavardAn ?az miane garde kuhestAn ?obur kardand\n",
- "prompted!\n",
- "گرد gard garde talA dar SenhAye rudxAne peydA Sod\n",
- "prompted!\n",
- "گرد gard bAd gard barghA rA dar havA parAkande kard\n",
- "prompted!\n",
- "گرد gerd mize gerd vasate ?otAq qarAr dASt\n",
- "prompted!\n",
- "گرد gerd kudakAn be surate gerd dure ?AtaS jam? Sodand\n",
- "prompted!\n",
- "گرد gerd ?u yek sane gerd ?az kenAre rudxAne bardASt\n",
- "prompted!\n",
- "گرد gerd mAh dar ?AsemAn be Sekle gerd mideraxSid\n",
- "prompted!\n",
- "گرد gerd mAdar yek siniye gerd por ?az mive ruye miz gozASt\n",
- "prompted!\n",
- "جلد jeld jelde ketAb xeili zibA va rangArAng bud\n",
- "prompted!\n",
- "جلد jeld ?u tamAme jeldhAye ?in majmu?e rA xaride ?ast\n",
- "prompted!\n",
- "جلد jeld jelde daftaraS rA bA ?akse golhA taz?in kard\n",
- "prompted!\n",
- "جلد jeld ?in kif ?az jelde Carme tabi?i sAxte Sode ?ast\n",
- "prompted!\n",
- "جلد jeld jelde dAstAn ?Anqadr jazzAb bud ke belAfAsele Soru? be xAndanaS kardam\n",
- "prompted!\n",
- "جلد jald ?u bA jald ?o tiz budan dar darshAyaS hamiSe nomreye xubi miAvard\n",
- "prompted!\n",
- "جلد jald jalde tiz budane ?u dar hale masA?ele riyAzi mesAl zadani ?ast\n",
- "prompted!\n",
- "جلد jald barAye movaffaqiyyat dar zendegi bAyad jald va tiz bud\n",
- "prompted!\n",
- "جلد jald pezeSk dastur dAd zaxme jaldi va be sor?at darmAn Savad\n",
- "prompted!\n",
- "جلد jald ?u bA sor?at jald be tarafe dar david\n",
- "prompted!\n",
- "پر por nimeye pore livAn rA bAyad did\n",
- "prompted!\n",
- "پر por boSke por Sod ?az ?Ab\n",
- "prompted!\n",
- "پر por bArAn ?Amad va daryACehA pore ?Ab Sod\n",
- "prompted!\n",
- "پر por por budane sadd hA neSAne xubi ?ast\n",
- "prompted!\n",
- "پر por por nabudane rudxAne va sad hA neSAn ?az kamAbi ?ast\n",
- "prompted!\n",
- "پر par pare parande be ?ArAmi dar havA SenAvar bud\n",
- "prompted!\n",
- "پر par ?u yek kolAh bA parhAye rangi ruye sereS gozASt\n",
- "prompted!\n",
- "پر par parhAye rangArange yek tAvus dar bAq parAkande Sode bud\n",
- "prompted!\n",
- "پر par dar daste kudak yek pare sefid bud ke ?az zamin bardASte bud\n",
- "prompted!\n",
- "پر par pare morqAbi dar daryACe SenAvar budand\n",
- "prompted!\n",
- "گردان gordAn gordAne nezAmi be sor?at be mahale mAmuriyat ?e?zAm Sod\n",
- "prompted!\n",
- "گردان gordAn ?u farmAndehye gordane vizhe bud va dar meydane nabard SojA?Ane jangid\n",
- "prompted!\n",
- "گردان gordAn gordAnhAye moxtalefe ?arteS dar kenAre ham be defA? ?az marzhA pardAxtand\n",
- "prompted!\n",
- "گردان gordAn dar reZeye nezAmi sarbAzAne gordAn bA deqqat va hamAhangiye bAlA harkat mikardand\n",
- "prompted!\n",
- "گردان gordAn gordAnhAye havApeymahAye jangi dar ?AsemAn be surate monazzam dar hAle parvAz budand\n",
- "prompted!\n",
- "عمر ?omr ?u tamAme ?omre xod rA dar ?in rustA gozarAnd\n",
- "prompted!\n",
- "عمر ?omr ?omre kutAhe ?ensAnhA bAyad bA kArhAye niku por Savad\n",
- "prompted!\n",
- "عمر ?omr dar tule ?omraS hamiSe be donbAle ?elm ?o dAneS bud\n",
- "prompted!\n",
- "عمر ?omr ?in deraxt sAlhAst ke dar ?in bAq ?omr mikonad\n",
- "prompted!\n",
- "عمر ?omr be gofte ?u ?omre gerAnbahAyi ?ast ke nabAyad hadar beravad\n",
- "prompted!\n",
- "عمر ?omar ?omar hamiSe be donbAle kasbe ?elm va dAneS bud\n",
- "prompted!\n",
- "عمر ?omar ?omar dar tamAme zendegi?aS bA saxtihAye ziyAdi ruberu Sod\n",
- "prompted!\n",
- "عمر ?omar ?omar dar kenAre xAnevAde?aS lahazAte Sirini rA gozArAnd\n",
- "prompted!\n",
- "عمر ?omar ?omar har ruz be SokrAneye zendegi dast be do?A mizad\n",
- "prompted!\n",
- "عمر ?omar ?omar yeki ?az ?aSxAse mohemme tArixe ?arab bude ?ast\n",
- "prompted!\n",
- "حل hal mo?allem yek so?Ale saxte riyAzi rA barAye mA hal kard\n",
- "prompted!\n",
- "حل hal ?u be sor?at moSkel rA hal ?o fasl kard\n",
- "prompted!\n",
- "حل hal barAye hale ?in mo?ammA bAyad deqqate ziyAdi dASte bASi\n",
- "prompted!\n",
- "حل hal mA bAyad rAhhali barAye ?in moSkel peydA konim\n",
- "prompted!\n",
- "حل hal bA hamkAriye hamdigar tavAnestim moSkelAt rA be xubi hal konim\n",
- "prompted!\n",
- "حل hall ?u mas?alehAye riyAziye xod rA bA komake hall ?almasa?el hall mikonad\n",
- "prompted!\n",
- "حل hall ?Ab hallAl Sakar ?ast\n",
- "prompted!\n",
- "حل hall halle barxi ?az masA?ele riyAzi besyAr saxt ?ast\n",
- "prompted!\n",
- "حل hall ?aside hallAle besyAri ?az mavAde ma?dani ?ast\n",
- "prompted!\n",
- "حل hall ?Ali ?emsAl barAye tahsilaS hall ?almasA?el xarid\n",
- "prompted!\n",
- "رد radd ?u radde qadamhAyaS rA dar barf donbAl kard\n",
- "prompted!\n",
- "رد radd polis radde mASine ferAri rA gereft\n",
- "prompted!\n",
- "رد radd pas ?az barresiye madArek radde ?eStebAh dar hesAbdAri peydA Sod\n",
- "prompted!\n",
- "رد radd deraxtAne sarsabz radde sAye?i bar zamin ?andAxtand\n",
- "prompted!\n",
- "رد radd ?u natavAnest radde ?eStebAhAtaS rA dar gozAreS peydA konad\n",
- "prompted!\n",
- "رد rad man dar gozineSe kAram rad Sodam\n",
- "prompted!\n",
- "رد rad ?u barAye vorud be madrese ?az ?AzmunaS rad Sod\n",
- "prompted!\n",
- "رد rad ?Ali ?az teste rAnandegi rad Sod\n",
- "prompted!\n",
- "رد rad rad Sodane ?in ?Azmun zahrA rA besyAr nArAhat kard\n",
- "prompted!\n",
- "رد rad ?u dar ?Azmune ?ASpazi rad Sod\n",
- "prompted!\n",
- "رود rud rudxAne deraxtAne kenAre xod rA be ?ArAmi tekAn midahad\n",
- "prompted!\n",
- "رود rud keSAvarzAn barAye ?AbyAriye zaminhAyeshan ?az rud ?estefAde mikonand\n",
- "prompted!\n",
- "رود rud dar hASiyeye rud piyAderuyi kardim va ?az tabi?at lezzat bordim\n",
- "prompted!\n",
- "رود rud ?Abe rud ?az kuhhA be samte daSthA jaryAn dArad\n",
- "prompted!\n",
- "رود rud mAhihA dar rudxAne SenA mikonand va dar kenAre ham zendegi mikonand\n",
- "prompted!\n",
- "رود ravad ?agar ?u be xAne?aS ravad zudtar be mA xAhad peyvast\n",
- "prompted!\n",
- "رود ravad har jA ke delaS bexAhad ravad va hiC mahdudiyati nadArad\n",
- "prompted!\n",
- "رود ravad ?agar be jAddeye ?asli ravad be rAhati be maqsad mirased\n",
- "prompted!\n",
- "رود ravad zamAn be sor?at ravad va mA hiCgAh motevajjeh nemiSavim\n",
- "prompted!\n",
- "رود ravad dar surati ke dAneSAmuz be kelAs dir ravad hozuraS sabt naxAhad Sod\n",
- "prompted!\n",
- "کن kon lotfan darb rA beband va kAre xod rA tamAm kon\n",
- "prompted!\n",
- "کن kon ?u hamiSe miguyad ke har kAri rA bA deqqat kon\n",
- "prompted!\n",
- "کن kon ?emruz bAyad takAlife xod rA ?anjAm dahi pas Soru? kon\n",
- "prompted!\n",
- "کن kon ?agar mixAhi movaffaq Savi bAyad talAS kon va hargez taslim nashav\n",
- "prompted!\n",
- "کن kon xAheS mikonam kAri ke qol dAdi rA hatman kon\n",
- "prompted!\n",
- "کن kan kan nAme mahalli ?ast dar ?ostAne tehrAn\n",
- "prompted!\n",
- "کن kan dar kan deraxtAni ?anbuhi ?ast\n",
- "prompted!\n",
- "کن kan mahalleye kan jozoye SomAle tehrAn miSavad\n",
- "prompted!\n",
- "کن kan masire kan be ?emAmzAdeye dAvud rAh dArad\n",
- "prompted!\n",
- "کن kan kan kAS kardan dar kAr bA?es saxti miSavad\n",
- "prompted!\n",
- "هل hol ?u be Suxi be dustam hol dAd tA biyoftad\n",
- "prompted!\n",
- "هل hol hol dAdan dar saf kAre dorosti nist\n",
- "prompted!\n",
- "هل hol bAde Sadid be deraxtAn hol midAd va SAxehA tekAn mixord\n",
- "prompted!\n",
- "هل hol ?u ?az poSt be man hol zad tA sari?tar rAh bavaravam\n",
- "prompted!\n",
- "هل hol vaqti baCCehA dar pArk bAzi mikonand be yekdigar hol midahand\n",
- "prompted!\n",
- "هل hel dar bAzAr yek baste hele tAze xaridam\n",
- "prompted!\n",
- "هل hel hel yeki ?az ?adviyehAye mo?attar ?ast ke dar besyAri ?az qazAha ?estefAde miSavad\n",
- "prompted!\n",
- "هل hel CAy bA hel ta?me besyAr delpaziri dArad\n",
- "prompted!\n",
- "هل hel dar ?ASpazxAne buye hele tAze hame jA rA por karde bud\n",
- "prompted!\n",
- "هل hel barAye xoSta?m kardane deser kami hel be ?An ?ezAfe kardam\n",
- "prompted!\n",
- "اره ?Are javAbe ?arus dar marAsem ?Are ?ast\n",
- "prompted!\n",
- "اره ?Are beyne ?Are va xayr yeki rA ?entexAb konid\n",
- "prompted!\n",
- "اره ?Are gozineye monAseb ?Are va xeyr rA ?entexAb konid\n",
- "prompted!\n",
- "اره ?Are ?AyA qand mozerr ?ast? ?Are\n",
- "prompted!\n",
- "اره ?Are ?Are va xeyr mAnande bali va xeyr ?ast\n",
- "prompted!\n",
- "اره ?arre ?u bA ?arre CubhA rA be ?andAzehAye kuCak borid\n",
- "prompted!\n",
- "اره ?arre barAye sAxte ?in mize Cubi bAyad ?az ?arre ?estefAde kani\n",
- "prompted!\n",
- "اره ?arre ?arre barqi dar ta?mirAte Cubi besyAr mofid ?ast\n",
- "prompted!\n",
- "اره ?arre be komake ?arre deraxte xoSk rA qat? kardim\n",
- "prompted!\n",
- "اره ?arre sedAye ?arre dar bAq piCide bud va hame be ?An tavajjoh kardand\n",
- "prompted!\n",
- "سرو sarv dar bAq yek deraxte sarve boland va sarsabz roSd karde ?ast\n",
- "prompted!\n",
- "سرو sarv sAyeye sarv dar tAbestAn besyAr xonak va delpazir ?ast\n",
- "prompted!\n",
- "سرو sarv deraxte sarv namAd ?esteqAmat va tule ?omr ?ast\n",
- "prompted!\n",
- "سرو sarv sarvhA?i ke dar kenAre jAdde kASte Sodeand CeSmnavAz hastand\n",
- "prompted!\n",
- "سرو sarv sedAye bAd ke ?az meyAne SAxehAye sarv migozarad ?ArAmeSbaxS ?ast\n",
- "prompted!\n",
- "سرو serv qazA dar boSqAb serv miSavad\n",
- "prompted!\n",
- "سرو serv qazA dar restorAn tavassote gArson serv miSavad\n",
- "prompted!\n",
- "سرو serv qazA hamrAhe nuSidani serv miSavad\n",
- "prompted!\n",
- "سرو serv gArson bA ?ArAmi qazA rA serv mikanad\n",
- "prompted!\n",
- "سرو serv serve qazA kAre herfei ?ast\n",
- "prompted!\n",
- "تن tan ?u faqat be tane xod fekr mikard va ?az salAmatiS morAqebat mikard\n",
- "prompted!\n",
- "تن tan ?in deraxt tane bozorgi dArad ke be rAhati mitavAn zir sAye?aS ?esterAhat kard\n",
- "prompted!\n",
- "تن tan ?u be tane xod zaxmhAyi bardASt ?ama hiCgAh taslim naSod\n",
- "prompted!\n",
- "تن tan dar jangal sedAye bAd dar tane deraxtAn piCide bud\n",
- "prompted!\n",
- "تن tan tane ?u nAzok va narmeye mAnande barge deraxt\n",
- "prompted!\n",
- "تن ton ?u yek ton sang rA ?az ma?dan ?estexrAj kard\n",
- "prompted!\n",
- "تن ton ?in kAmiyon mitavAnad biS ?az dah ton bAr haml konad\n",
- "prompted!\n",
- "تن ton vazne ?in mahmule taqriban yek ton ?ast\n",
- "prompted!\n",
- "تن ton tone mAhi yeki ?az mavAde qazAyiye mahbub dar besyAri ?az keSvarhA ?ast\n",
- "prompted!\n",
- "تن ton ?in mASinAlAte san?ati qAder be jAbejAyiye hezArAn tone mavAd hastand\n",
- "prompted!\n",
- "کش keS ?u dastmAl rA keSid tA lakke ruye ?An pAk Savad\n",
- "prompted!\n",
- "کش keS keSidane nax be ?ArAmi bA?es Sod ke pArCe be xubi duxte Savad\n",
- "prompted!\n",
- "کش keS bAde Sadid bA?es Sod ke deraxthA be tarafeyn keSideh Savand\n",
- "prompted!\n",
- "کش keS ?in tanAb rA mohkam bekeS tA dar jAyeS sAbet bemAnad\n",
- "prompted!\n",
- "کش keS vaqti ke keSidan darzhAye divAr tamAm Sod ?otAq morattabtar be nazar resid\n",
- "prompted!\n",
- "کش koS zahre ?in mAr koSande ?ast\n",
- "prompted!\n",
- "کش koS ?u yek ?Adam rA koSt\n",
- "prompted!\n",
- "کش koS zahre ?in ?ankabut besyAr koSande va xatarnAk ?ast\n",
- "prompted!\n",
- "کش koS koStane ?ensAnhAye bigonAh kAre ?eStebAhi ?ast\n",
- "prompted!\n",
- "کش koS tebqe goftehAye budA koStane yekdigar kAre ?eStebAhi ?ast\n",
- "prompted!\n",
- "رس ros zamin be dalile bAreSe bArAn rose ziyAdi jam? karde bud\n",
- "prompted!\n",
- "رس ros dar sAhel xAke ros be rAhati dar dast gerefte miSod\n",
- "prompted!\n",
- "رس ros ?u ?az rose xAk barAye sAxte zorufe sonnati ?estefAde mikonad\n",
- "prompted!\n",
- "رس ros dar ?in mantaqe keSavarzAn barAye ?AbyAri ?az ros ?estefAde mikonand\n",
- "prompted!\n",
- "رس ros ?in golhA dar xAke ros behtar roSd mikonand\n",
- "prompted!\n",
- "کشت koSt ?u nafase xod ro dar darune xod koSt\n",
- "prompted!\n",
- "کشت koSt ?u be koSt ?o koStAr ?edAme dAd\n",
- "prompted!\n",
- "کشت koSt sarbAzAn dah tan rA koStand\n",
- "prompted!\n",
- "کشت koSt ?u giyAh ro bedune molAhaze nAbud kard va koSt\n",
- "prompted!\n",
- "کشت koSt ?u mitavAnad ?ensAnhAye ziyAdi rA bekeSad\n",
- "prompted!\n",
- "کشت keSt keSAvarzAn dar ?in fasl andom keSt kardand\n",
- "prompted!\n",
- "کشت keSt ?u dar bAqCe?aS golhAye rangArang keSt\n",
- "prompted!\n",
- "کشت keSt barAye bardASte mahsule behtar bAyad keSt rA dar zamAne monAseb ?anjAm dAd\n",
- "prompted!\n",
- "کشت keSt zamin rA Soxm zadim va ?AmAdeye keSt Sod\n",
- "prompted!\n",
- "کشت keSt dar ?in mantaqe keSte berenj yeki ?az ?aslitarin fa?AliyathA ?ast\n",
- "prompted!\n",
- "نقل naql ?u hamiSe dAstAnhAye jAlabi ?az safarhAS naql mikonad\n",
- "prompted!\n",
- "نقل naql dar ketAbe tArix naqlqol?hAyi ?az bozorgAn ?Avarde Sode ?ast\n",
- "prompted!\n",
- "نقل naql naqle makAn kardan be xAneye jadid barAyaS CAleSe bozorgi bud\n",
- "prompted!\n",
- "نقل naql man naqle qoli ?az ?ostAd rA be yAd dAram ke hamiSe marA taSviq mikard\n",
- "prompted!\n",
- "نقل naql vaqti ?az xAterAte gozaSte sohbat mikonim naql kardane dAstAnhAye kudaki besyAr jazzAb ?ast\n",
- "prompted!\n",
- "نقل noql noql hamrAhe qand ?estefAde miSavad\n",
- "prompted!\n",
- "نقل noql noql rA dar marAseme ?arusi be sare ?arus va dAmAd mirizand\n",
- "prompted!\n",
- "نقل noql noql bA ta?me vAnil besyAr xoSmaze ?ast\n",
- "prompted!\n",
- "نقل noql noql dar ?ab?Ad va ?andAzehAye moxtalef vojud dArad\n",
- "prompted!\n",
- "رم ram ?asb bA sor?ate ziyAdi ?az daste SekArCiyAn ram kard\n",
- "prompted!\n",
- "رم ram hengAme tufAn gelehAye gusfandAn Soru? be ram kardan kardand\n",
- "prompted!\n",
- "رم ram dar bAziye futbAl bAzikon be dalile feSAre ziyAd ?az daste tup ram kard\n",
- "prompted!\n",
- "رم ram vaqti deraxtAn be Seddat tekAn mikhorand parandegAn ?az lAnehAyeSan ram mikardand\n",
- "prompted!\n",
- "رم ram ?u ?az tarse sedAhAye ?ajibe SabAne dar dele jangal ram kard\n",
- "prompted!\n",
- "رم rom rom yeki ?az zibAtarin SahrhAye tArixiye jahAn ?ast\n",
- "prompted!\n",
- "رم rom dar safar be rom ?AsAre bAstAni mAnde kolusiom va pAnteon rA didim\n",
- "prompted!\n",
- "رم rom rom dar qalbe ?itAliyA qarAr dArad va jAzebehAye gardeSgariye ziyAdi dArad\n",
- "prompted!\n",
- "رم rom rom be ?onvAne pAytaxte ?itAliyA markaze farhangi va siyAsiye ?in keSvar ?ast\n",
- "prompted!\n",
- "رم rom man hamiSe ?Arezu dAStam ruzi be rom safar konam va ?az nazdik tArixe ?An rA bebinam\n",
- "prompted!\n",
- "گرداند gardAnad xodAvand zamin va ?AsemAn rA migardAnad\n",
- "prompted!\n",
- "گرداند gardAnad ?ust ke migardAnad zamin va sayyArAt rA\n",
- "prompted!\n",
- "گرداند gardAnad zanbur ?asal rA dar dahanaS migardAnad\n",
- "prompted!\n",
- "گرداند gardAnad mAZik rA dar dastAnS migardAnad va sepas minevisad\n",
- "prompted!\n",
- "گرداند gardAnad ?u dustaS rA bA mASin migardAnad\n",
- "prompted!\n",
- "گرداند gardAnd ?u bA deqqat farmAn rA gardAnd va mASin rA be samte Cap hedAyat kard\n",
- "prompted!\n",
- "گرداند gardAnd barAye didane manzareye behtar durbin rA gardand va ?aks gereft\n",
- "prompted!\n",
- "گرداند gardAnd mo?allem naqSe rA ruye taxte gardAnd tA hame betavAnand ?An rA bebinand\n",
- "prompted!\n",
- "گرداند gardAnd bAdbAdak rA dar havA gardand va be bAlA ferestAd\n",
- "prompted!\n",
- "گرداند gardAnd ?u tup rA be sor?at gardAnd va be hamtimiye xod pAs dAd\n",
- "prompted!\n",
- "کل kol kol ruz rA dar kenAre daryA gozarAndim\n",
- "prompted!\n",
- "کل kol kole Sahr dar jaSne bozorge sAle no Serkat kardand\n",
- "prompted!\n",
- "کل kol kole tim dar mosAbeqe Serkat kardeand va ?omidvArand barande Savand\n",
- "prompted!\n",
- "کل kol ?u kole ketAbhA rA xAnd tA ?emtehAn rA bA movaffaqiyyat begozarAnad\n",
- "prompted!\n",
- "کل kal be ?u goftam bA man kal kal nakon\n",
- "prompted!\n",
- "کل kal kalak zadan be dust kAre ?eStebAhi ?ast\n",
- "prompted!\n",
- "کل kal farmAndeh be mA kalAq par dAd\n",
- "prompted!\n",
- "کل kal kalAqhA hodude sAl ?omr mikonand\n",
- "prompted!\n",
- "کل kal range kalAqhA meSki ?ast\n",
- "prompted!\n",
- "سر sor zamin dar zemestAn sor ?ast\n",
- "prompted!\n",
- "سر sor sor budane zamin bA?ese ?ijAde laqzeS miSavad\n",
- "prompted!\n",
- "سر sor mASin hA dar zemestAn sor mixorand\n",
- "prompted!\n",
- "سر sor dustAnam sor xordand va besyAr xandidim\n",
- "prompted!\n",
- "سر sor navid sor xord va dastaS Sekast\n",
- "prompted!\n",
- "سر sar sare ?ahmad Sekast\n",
- "prompted!\n",
- "سر sar dar sar mu roSd mikonad\n",
- "prompted!\n",
- "سر sar daxel sare ?ensAn maqz qarAr dArad\n",
- "prompted!\n",
- "سر sar dustAnam bA motor tasAdof kardand va sare ?AnhA Sekast\n",
- "prompted!\n",
- "سر sar Sekaste Sodane sar biyAr dardAvar ?ast\n",
- "prompted!\n",
- "سر ser ?in yek mas?alehye seri ?ast\n",
- "prompted!\n",
- "سر ser dorost kardane qazA yek ser dArad\n",
- "prompted!\n",
- "سر ser xabar dAri ?az sere darun\n",
- "prompted!\n",
- "سر ser barAye keSidane dandAn ?avval ser mikanad\n",
- "prompted!\n",
- "گنج gonj ?u dar gonje divAr gerye mikard ?u hameye ketAbhA rA dar ketAbxAne gonjAnd\n",
- "prompted!\n",
- "گنج gonj mASin rA dar jAye pArk gonjAnd\n",
- "prompted!\n",
- "گنج gonj gonjAndane ?in hame vasAyel darune ?otAqe kuCak kAre ta?ajjob ?Avari bud\n",
- "prompted!\n",
- "گنج gonj gonjAyeSe ?in livAn si si ?ast\n",
- "prompted!\n",
- "گنج gonj gonjAyeSe ?An botri yek litr ?ast\n",
- "prompted!\n",
- "گنج ganj dar dele kuh ganji penhAn bud ke sAlhA kasi natavAnest ?An rA peydA konad\n",
- "prompted!\n",
- "گنج ganj ?u dar meyAne ketAbhAye qadimi ganji ?az tArix peydA kard\n",
- "prompted!\n",
- "گنج ganj ganje deraxtAne sarsabz va havAye tAzeye kuhestAn barAye ruhe ?ensAn ?ast\n",
- "prompted!\n",
- "گنج ganj vaqti be ?omqe daryA rasidand ganji ?az javAherAt peydA kardand\n",
- "prompted!\n",
- "گنج ganj ganje vAge?i dar zendegi ?ArAmeSe daruni va mohebbat ?ast\n",
- "prompted!\n",
- "تو to to hamiSe be man ?angize midi tA behtar bASam\n",
- "prompted!\n",
- "تو to man nemidAnam CerA to ?inqadr nArAhati\n",
- "prompted!\n",
- "تو to to bAyad biStar be salAmatiat tavajjoh kani\n",
- "prompted!\n",
- "تو to ?AyA to fardA be mehmAni miAyi?\n",
- "prompted!\n",
- "تو to to hamiSe bA harfhAye xub dele hame rA SAd mikani\n",
- "prompted!\n",
- "تو tu tuye jam?e mehmAnAn ?u nafare ?avval bud\n",
- "prompted!\n",
- "تو tu tuye motore mASin roghane motor ?ast\n",
- "prompted!\n",
- "تو tu tu bAqCe giyAh rasad mikonad\n",
- "prompted!\n",
- "تو tu tu motore jak suxt ?ast\n",
- "prompted!\n",
- "تو tu tu ?AsemAn ?abr ?ast\n",
- "prompted!\n",
- "برنج berenj berenj yeki ?az por masraftarin qazAhAye keSvarhAye ?AsiyAyi ?ast\n",
- "prompted!\n",
- "برنج berenj keSavarzAn dar fasle tAbestAn zaminhAye berenje xod rA mikArand\n",
- "prompted!\n",
- "برنج berenj barAye poxtane berenj bAyad ?An rA be dorosti Soste va sepas dar ?Abe juS bepazid\n",
- "prompted!\n",
- "برنج berenj berenje ?irAni be dalile ?atr va ta?me xAssaS ma?ruf ?ast\n",
- "prompted!\n",
- "برنج berenj ?u barAye nAhAr berenj va xoreSt dorost kard\n",
- "prompted!\n",
- "برنج beranj be beranje digarAn nabAyad xandid\n",
- "prompted!\n",
- "برنج beranj beranje digarAn xandidan kAre ?eStebAhi ?ast\n",
- "prompted!\n",
- "برنج beranj beranje digarAn bAyad gerist\n",
- "prompted!\n",
- "برنج beranj ?agar kasi rA beranjidi bAyad be beranjande Sodan ham tAqat dASte bASi\n",
- "prompted!\n",
- "برنج beranj hoseyn be berenje ?ali xandid\n",
- "prompted!\n",
- "قل qel tup ?az ruye tape be samte pAyin qel xord\n",
- "prompted!\n",
- "قل qel CehA san rA ruye zamin qel dAdand va bA ?An bAzi kardand\n",
- "prompted!\n",
- "قل qel vaqti livAn ?az dastaS ?oftAd ruye miz qel xord va Sekast\n",
- "prompted!\n",
- "قل qel ?u sekke rA ruye miz qel dAd tA tasmim begirand Ce kAri ?anjAm dahand\n",
- "prompted!\n",
- "قل qel bAde Sadid bA?es Sod ke kolAh ?az ruye zamin qel bexorad va dur Savad\n",
- "prompted!\n",
- "قل qol ?u goft ke dar ?in qal?eye qadimi yek qol ?az dAstAnhAye Segeftangiz penhAn Sode ?ast\n",
- "prompted!\n",
- "قل qol sedAye qolqole ?Ab dar samAvar fazAye ?otAq rA por karde bud\n",
- "prompted!\n",
- "قل qol qol qal?e hamiSe be ?onvAne namAdi ?az qodrat va ?esteqAmat SenAxte miSod\n",
- "prompted!\n",
- "قل qol vaqti be bAlAye qol resid tamAme manzare zire pAyaS bud\n",
- "prompted!\n",
- "قل qol ?u bA SojA?at be qole kuh so?ud kard va parCam rA barafrASt\n",
- "prompted!\n",
- "کرد kord ?u barAye yAdgiriye zabAne kord dar yek doreye ?AmuzeSi Serkat kord\n",
- "prompted!\n",
- "کرد kord farhange kord yeki ?az qanitarin farhanghAye xAvarmiyAne ?ast\n",
- "prompted!\n",
- "کرد kord duste man ?ahle yek rustAye kordneSin dar qarbe ?irAn ?ast\n",
- "prompted!\n",
- "کرد kord musiqiye kord bA navAye delneSinaS hamiSe man rA tahte ta?sir qarAr midahad\n",
- "prompted!\n",
- "کرد kord mardome kord be mehmAnnavAzi va samimiyyat maSur hastand\n",
- "prompted!\n",
- "کرد kard ?u tamAme talASo ra kard tA proje ra be moqe? tamAm konad\n",
- "prompted!\n",
- "کرد kard mAdar barAye mehmAnAn qazA ?AmAde kard va sofre rA Cid\n",
- "prompted!\n",
- "کرد kard diruz dustam be man zang zad va ?ahvAlam rA porsid kAri ke xayli xoSAlam kard\n",
- "prompted!\n",
- "کرد kard ?u ba?d ?az sAlhAye saxti belakhare be hadafaS dast peydA kard\n",
- "prompted!\n",
- "کرد kard vaqti bArAn Soru? Sod CatraS rA bAz kard va be rAhaS ?edAme dAd\n",
- "prompted!\n",
- "پی pi barAye mohAsebeye mohite dAyere ?az ?adade pi ?estefAde mikonim\n",
- "prompted!\n",
- "پی pi ?adade pi yeki ?az mohemtarin ?a?dAd dar riyAziyyAt va hendese ?ast\n",
- "prompted!\n",
- "پی pi ?adade pi meqdAre taqribi dArad va dar besyAri ?az masA?el kArbord dArad\n",
- "prompted!\n",
- "پی pi riAzidAnAn hezArAn sAle piS be ?ahammiyate ?adade pi pi bordeh budand\n",
- "prompted!\n",
- "پی pi bA ?estefAde ?az ?adade pi masAhate dAyere rA be rAhati mitavAn yAft\n",
- "prompted!\n",
- "پی pey ?u be donbAle peye sAxtemAne qadimi dar bAq migaSt\n",
- "prompted!\n",
- "پی pey mohandeshA peye benA rA be deqqat barresi kardand tA ?az ?estehkAme ?An motma?en Savand\n",
- "prompted!\n",
- "پی pey barAye movaffaqiyyat dar zendegi bAyad qadam be qadam be peye ?ahdAfe xod beravid\n",
- "prompted!\n",
- "پی pey ?u barAye yAftane haqiqat sAlhA be pey tahqiq va motAle?e gozarand\n",
- "prompted!\n",
- "پی pey ba?d ?az bArAn baCCehA ruye peye xise hayAt bAzi kardand\n",
- "prompted!\n",
- "رب rabb ?u hamiSe be rabbe xod tavakkol mikonad va ?az ?u yAri mixAhad\n",
- "prompted!\n",
- "رب rabb do?A kard va ?az rabbe xiS barAye moSekelAtaS rAhhal talabid\n",
- "prompted!\n",
- "رب rabb ?imAn be rabb bA?ese ?ArAmeSe del va ruhe ?u Sode ?ast\n",
- "prompted!\n",
- "رب rabb hargAh be saxti ?oftAd tanhA be rabbe xiS panAh bord\n",
- "prompted!\n",
- "رب rabb SokrgozAri ?az rabb yeki ?az zibAtarin ?ebAdathAye ?ensAn ?ast\n",
- "prompted!\n",
- "رب robb mAdar barAye qazA ?az robbe gojefarangiye tAze ?estefAde kard\n",
- "prompted!\n",
- "رب robb robbe ?anAr ta?me xASi be xoreSt dAd\n",
- "prompted!\n",
- "رب robb dar bAzAr ?anvA?e moxtalefi ?az robbhAye xAnegi va san?ati furuxte miSavad\n",
- "prompted!\n",
- "رب robb ?u barAye dorost kardane sos kami robbe goje be qazA ?ezAfe kard\n",
- "prompted!\n",
- "رب robb range zibAye ?in xorAki be xAtere ?estefAde ?az robbe tabi?i ?ast\n",
- "prompted!\n",
- "تاباند tAbAnd xorSid dar ?AsemAn tAband va zamin garm Sod\n",
- "prompted!\n",
- "تاباند tAbAnd ?u bA CerAqe qovve be gushehAye tArike ?otAq tAband\n",
- "prompted!\n",
- "تاباند tAbAnd deraxthA sAyeye xod rA ruye zamin tAbandand va fazAye xonaki ?ijAd Sod\n",
- "prompted!\n",
- "تاباند tAbAnd nure mahtAb bar sat?he daryA tAband va ?An rA deraxSAn kard\n",
- "prompted!\n",
- "تاباند tAbAnd hengAme qorub nurexorshid be Sekli xAs ?az panjare tAband\n",
- "prompted!\n",
- "تاباند tAbAnad xorSid vaqti be ?AsemAn nure xod rA mitAbAnd damAye havA bAlA miravad\n",
- "prompted!\n",
- "تاباند tAbAnad vaqti be Sab nazdik miSavim mAh ?az poSte ?abrhA nur be zamin mitAbAnad\n",
- "prompted!\n",
- "تاباند tAbAnad hargAh mahtAbnur mitAbAnad fazAye Sab roSan va delangiz miSavad\n",
- "prompted!\n",
- "تاباند tAbAnad vaqti ke be zamin negAh mikoni xorSid nure xod rA mitAbAnad va hame Ciz roSan ?ast\n",
- "prompted!\n",
- "تاباند tAbAnad ?AsemAn pas ?az bArAn sAf Sod vaxorshid nure xod rA mitAbAnad tAbAnad\n",
- "prompted!\n",
- "شو Sav perspolis qahremAn miSavad\n",
- "prompted!\n",
- "شو Sav dolAr gerAn miSevad\n",
- "prompted!\n",
- "شو Sav Cizi ?arzAn nemiSav\n",
- "prompted!\n",
- "شو Sav morq ?arzAn miSevad\n",
- "prompted!\n",
- "شو Sav mASine gerAn miSav\n",
- "prompted!\n",
- "شو So to bAyad bA xodat biStar ro rAst bASi va sAdeq So\n",
- "prompted!\n",
- "شو So dar ?in jaSn ?u bAyad be hame neSAn dahad ke Ceqadr bA ?este?dAd ?ast va xodaS rA So konad\n",
- "prompted!\n",
- "شو So hamiSe vaqti nArAhati be xodat begu ke man qavi hastam va qavi So\n",
- "prompted!\n",
- "شو So barAye movaffaqiyyat dar zendegi bAyad dar barAbare moSkelAt qavi va moqAvem So\n",
- "prompted!\n",
- "شو So ?agar mixAhi dar ?in mosAbeqe barande Savi bAyad biStar tamrin kani va behtar So\n",
- "prompted!\n",
- "شکر Sokr ?u hamiSe dar barAbare lotfhAye digarAn SokrgozAr bud\n",
- "prompted!\n",
- "شکر Sokr ba?d ?az yek ruze saxt Sokr mikard ke sAlem ?ast\n",
- "prompted!\n",
- "شکر Sokr Sokre xodAvand rA ke dar zendegi?aS hamiSe ?az ne?mathA barxordAr bud\n",
- "prompted!\n",
- "شکر Sokr Sokr be ma?naye qadrdAni ?az xodAvand barAye hameye ne?mathAst\n",
- "prompted!\n",
- "شکر Sokr Sokre ne?mat ne?mat ?afzun konad\n",
- "prompted!\n",
- "شکر Sakar ?u be daSt raft tA be SekAr beravad\n",
- "prompted!\n",
- "شکر Sakar SekAr dar ?in mantaqe mamnu? ?ast va bAyad ?az ?An ?ejtenAb kard\n",
- "prompted!\n",
- "شکر Sekar barAye ta?me behtar kami Sekar be CAye xod ?ezAfe kard\n",
- "prompted!\n",
- "شکر Sekar Sekar be dalile dAStane qande ziyAd bAyad be meqdAre kam masraf Savad\n",
- "prompted!\n",
- "شکر Sekar barAye poxte keyk ?ebtedA bAyad Sekar rA bA kere maxlut kard\n",
- "prompted!\n",
- "شکر Sekar Sekar be ture tabi?i dar besyAri ?az mivehA va sabzijAt vojud dArad\n",
- "prompted!\n",
- "شکر Sekar Sekar yeki ?az mavAde ?asli dar tahiyyeye desarhAye Sirin ?ast\n",
- "prompted!\n",
- "شست Sast Saste pAye ?u ?Asib dide bud\n",
- "prompted!\n",
- "شست Sast Saste daste ?u dar rafte bud dar futbAl\n",
- "prompted!\n",
- "شست Sast Saste daste rAstaS rA dar surAx karde bud\n",
- "prompted!\n",
- "شست Sast Saste pAye pedaram be konje divAr xord\n",
- "prompted!\n",
- "شست Sast Saste dastam ?az tAype ziyAd xaste Sod\n",
- "prompted!\n",
- "شست Sost qable ?az qazA bAyad dasthAye xod rA be deqqat Sost\n",
- "prompted!\n",
- "شست Sost ?u lebAshAye kasif rA Sost va ?AnhA rA dar ?AftAb xoSk kard\n",
- "prompted!\n",
- "شست Sost mAdar be man goft ke qable ?az xordane mivehA ?AnhA rA xub beSuyim\n",
- "prompted!\n",
- "شست Sost ba?d ?az bAzi dar gol pAyaS rA Sost tA tamiz Savad\n",
- "prompted!\n",
- "شست Sost ?u bA sAbun dasthAye xod rA Sost tA ?az hargune mikrob pAk Savand\n",
- "prompted!\n",
- "خرد xord ?u sib rA be qate?Ate kuCek xord kard tA rAhattar bexorad\n",
- "prompted!\n",
- "خرد xord dar bAzAr sabzihA rA be surat xord barAye foruS miAvardand\n",
- "prompted!\n",
- "خرد xord vaqti ke zarf Sekast tekehAye xorde ?An dar hame jA paxS Sod\n",
- "prompted!\n",
- "خرد xord ?u barAye dorost kardane sup gojefarangi rA xord kard\n",
- "prompted!\n",
- "خرد xord dar pAyAne bAzi time harif be dalile ?eS?bAhAte xord Sekast xord\n",
- "prompted!\n",
- "خرد xorad ?u qazA rA bA vala? mixorad\n",
- "prompted!\n",
- "خرد xorad Sir heyvAni ?ast ke guSt mixorad\n",
- "prompted!\n",
- "خرد xorad gAv ?alaf mixorad\n",
- "prompted!\n",
- "خرد xorad xarguS havij mixorad\n",
- "prompted!\n",
- "خرد xorad ?ensAnhA dar ruz se va?de qazA mixarand\n",
- "prompted!\n",
- "خرد xarad ?u hamiSe vaqti be bAzAr miravad ketAbhAye jadid mixarad\n",
- "prompted!\n",
- "خرد xarad ?u ?az ?in foruSgAh hamiSe mivehAye tAze mixarad\n",
- "prompted!\n",
- "خرد xarad ?u tasmim gereft ke yek ?otomobile no bekharad tA rAhattar be mahale kAr beravad\n",
- "prompted!\n",
- "خرد xarad mAdar barAye ?eid lebAshAye jadid mixarad tA barAye mehmAni ?AmAde Savad\n",
- "prompted!\n",
- "خرد xarad har ruz ?az ?in foruSgAh yek baste SokolAt mixarad va be dustAnaS midahad\n",
- "prompted!\n",
- "خرد xerad ?u ?az kudaki be xerad va darke ?amiqe masA?el ?alAqemand bud\n",
- "prompted!\n",
- "خرد xerad xerad va tajrobe dar zendegi be ?ensAn komak mikonad tA tasmimAte behtari begirad\n",
- "prompted!\n",
- "خرد xerad dar farhanghAye moxtalef ?ehterAm be xerad\n",
- "prompted!\n",
- "خرد xerad bA gozaSte zamAn xerad be ?ensAn tavAnAyiye darke behtare moSkelAt rA midahad\n",
- "prompted!\n",
- "خرد xerad har fard bAyad dar zendegiye xod be donbAle kasbe xerad va dAneS bASad\n",
- "prompted!\n",
- "برند barand ?u dar mosAbeqeye davidan barande Sod va medAle talA gereft\n",
- "prompted!\n",
- "برند barand barande Sodan dar ?in reqAbathA niyAz be tamrin va talASe ziyAdi dArad\n",
- "prompted!\n",
- "برند barand time mA dar bAziye finAl barande Sod va qahremAne mosAbeqAt Sod\n",
- "prompted!\n",
- "برند barand barande Sodan dar zendegi biStar be talAS va poStekAr bastegi dArad tA SAns\n",
- "prompted!\n",
- "برند borand CAqu va borande budane ?An niAz be deqqat va ?ehtiyAte ziyAdi dar ?estefAde dArad\n",
- "prompted!\n",
- "برند borand ?u be dalile ?estefAdeye nAdorost ?az CAqu doCAre jerAhat Sod ?amA hamiSe yAdAvari mikonad ke CAqu bAyad boranda bASad tA kArhA rA sari?tar ?anjAm dahad\n",
- "prompted!\n",
- "برند borand dar bAzAr CAguhAye borande barAye ?ASpazhA ?az ?ahammiyate vizhe?i barxordArAnd\n",
- "prompted!\n",
- "برند borand CAguhAye borande be rAhati mitavAnand mavAde qazAyi rA be qate?Ate kuCak taqsim konand\n",
- "prompted!\n",
- "برند borand hengAme ?estefAde ?az CAguhAye borande bAyad ?ehtiyAte biStari kard tA ?az ?Asib jelogiri Savad\n",
- "prompted!\n",
- "برند berand ?u hamiSe lebAshAye berande nAmdAr mipuSad tA ?estAyle xAsi dASte bASad\n",
- "prompted!\n",
- "برند berand ?in Serkat tolidkonandeye yek berande nAmdAr dar ?arseye teknoloZi ?ast\n",
- "prompted!\n",
- "برند berand besyAri ?az ?afrAd be donbAle xaride mahasulAte berande nAmdAr hastand tA ?az keyfiate ?An motma?en Savand\n",
- "prompted!\n",
- "برند berand berandhAye nAmdAr hamiSe talAS mikonand tA mahasulAte xod rA bA bAlAtarin standArdhA ?erAye dahand\n",
- "prompted!\n",
- "برند berand tabliqAte berand ?in ruzhA dar resAnaha besyAr dide miSavad va tavajjohe ziyAdi jalb mikonad\n",
- "prompted!\n",
- "بری bari hasan ?az tamAme ?in ?ettehAmAt bari bud\n",
- "prompted!\n",
- "بری bari be ?u goftam to bari ?az har bimi hasti\n",
- "prompted!\n",
- "بری bari milAd bari ?az tamAme ?in tohmat hAi bud ke be ?u mizadand\n",
- "prompted!\n",
- "بری bari ?u ?az hameye ?in niyAzhA bari bud\n",
- "prompted!\n",
- "بری bari xodAvande mota?Al bari ?az har palidi ?ast\n",
- "prompted!\n",
- "بخار bexAr be ?Ali goftam lotfan poStam rA bexAr\n",
- "prompted!\n",
- "بخار bexAr hasan be man goft bA ?ehtiyAt ?Arnajam rA bexAr\n",
- "prompted!\n",
- "بخار bexAr lotfan pas ?az ?etmAme kAr damAghat rA bexAr\n",
- "prompted!\n",
- "بخار bexAr doktor goft vaqti gaC bAz Sod harCe dust dASti bexAr\n",
- "prompted!\n",
- "بخار bexAr ?ebtedA jurAb rA darbiyAvar va ba?d pAyat rA bexAr\n",
- "prompted!\n",
- "رو rav ?Ali be mohammad goft to fardA be madrese miravi\n",
- "prompted!\n",
- "رو rav pezeSk be dastyAre xod goft bAyad be ?otAqe ?amal beravi\n",
- "prompted!\n",
- "رو rav ba?d ?az xordane sobhAne be sarkAr miravi\n",
- "prompted!\n",
- "رو rav to bAyad ?emruz be dAneSgah beravi\n",
- "prompted!\n",
- "رو rav ba?d ?az varzeS be hamum miravi\n",
- "prompted!\n",
- "رو ru be tarafe xAneye mAdarbozorg boru\n",
- "prompted!\n",
- "رو ru be tarafe xAne boru\n",
- "prompted!\n",
- "رو ru be tarafe darmangAhe boru\n",
- "prompted!\n",
- "رو ru be tarafe bimArestAn boru\n",
- "prompted!\n",
- "رو ru pedaram be man goft be bAzAr boru\n",
- "prompted!\n",
- "ترک tork torkhAye ?irAn jam?iyyate besyAri ?az ?irAn rA taSkil midahand\n",
- "prompted!\n",
- "ترک tork qome tork yeki ?az qomhAye ?irAn ?ast\n",
- "prompted!\n",
- "ترک tork qomhAye tork dar ?aksare ?irAn zendegi mikanand\n",
- "prompted!\n",
- "ترک tork ?osturehAye melli sattAr xAn va bAqer xAn ?esAlatan tork budand\n",
- "prompted!\n",
- "ترک tork hAkAn CAlAn ?uqlu bAzikone time futbAle ?intere milAn ?esAlatan tork ?ast\n",
- "prompted!\n",
- "ترک tark kampe tarke ?e?tiyAd yek markaz barAye ?afrAde mo?tAd ?ast\n",
- "prompted!\n",
- "ترک tark man xordane SokolAt rA tark kardam\n",
- "prompted!\n",
- "ترک tark tark nakardane sigAr barAye ?afrAde sigAri mitavAnad bA?ese boruze bimAri hA?i Savad\n",
- "prompted!\n",
- "ترک tark mohammad mahale kAre xod rA tark kard\n",
- "prompted!\n",
- "ترک tark ?afrAde mo?tAd bAyad harCe sari?tar xod rA be kampe tarke ?e?tiyAd mo?arrefi konand\n",
- "prompted!\n",
- "ترک tarak pas ?az zelzele divAre xAneye mA tarak bardASt\n",
- "prompted!\n",
- "ترک tarak ?Ali doCAre tarake pusti Sod\n",
- "prompted!\n",
- "ترک tarak tarake zamin nASi ?az xoSkiye ziyAd ?ast\n",
- "prompted!\n",
- "ترک tarak kasi nArAhat Sode bASad miguyim qalbaS tarak bardASte ?ast\n",
- "prompted!\n",
- "ترک tarak tarakhAye ruye divAr rA bAzsAzi kardim\n",
- "prompted!\n",
- "دور dor mardom dar hengAme ziyArat dore xAneye xodA tavAf mikanand\n",
- "prompted!\n",
- "دور dor man sobhhA dore pArk dar hAle davidan hastam\n",
- "prompted!\n",
- "دور dor man meydAn rA dor zadam\n",
- "prompted!\n",
- "دور dor man dore sAxtemAn dar hAle gaSt ?o gozAr budam\n",
- "prompted!\n",
- "دور dor dore zamine futbAl mASinhA dar hAle pArk kardan budand\n",
- "prompted!\n",
- "دور dur masAfate man ?az xAne tA sarkAr dur ?ast\n",
- "prompted!\n",
- "دور dur ?Ali goft man bexAtere dur budan ?az xAne natavAnestam be sarkAr beravam\n",
- "prompted!\n",
- "دور dur fAseleye tehrAn tA buSehr dur ?ast\n",
- "prompted!\n",
- "دور dur mohammad be durtarin noqteye ?irAn safar kard\n",
- "prompted!\n",
- "دور dur man mixAham be varzeSgAh beram vali xeyli be xAneye man dur ?ast\n",
- "prompted!\n",
- "فک fok foke daryAyi yek guneye jAnavare dozist ?ast\n",
- "prompted!\n",
- "فک fok foke daryAyi dar xoSki ham mitavAnad zendegi konad\n",
- "prompted!\n",
- "فک fok foke daryAyi dar ?Ab ham mitavAnad zendegi konad\n",
- "prompted!\n",
- "فک fok man ?akse yek foke daryAyi rA dar morurare xod didam\n",
- "prompted!\n",
- "فک fok foke daryAyi dar daryAye xazar hozur dArand\n",
- "prompted!\n",
- "فک fakk fakk dard mohammad rA ?Asi karde bud\n",
- "prompted!\n",
- "فک fakk man ?az fakk darde diSab xAbam nabord\n",
- "prompted!\n",
- "فک fakk fakk dard mitavAnad bA?ese boruze moSkelati Savad\n",
- "prompted!\n",
- "فک fakk ba?d ?az barxorde tup be fakke bAzikon ?u masdum Sod\n",
- "prompted!\n",
- "فک fakk mohammad bA fakke xod be zamin barxord kard\n",
- "prompted!\n",
- "راند rAnd mosAbeqeye ?emSab dar rAnde sevom be ?etmAm resid\n",
- "prompted!\n",
- "راند rAnd bAzikon pas ?az masdum Sodan dar rAnde CahArom zamine bAzi rA tark kard\n",
- "prompted!\n",
- "راند rAnd pas ?az sute dAvar rAnde ?avval Soru? Sod\n",
- "prompted!\n",
- "راند rAnd bAzikon ?emtiyAzhAye monAsebi ?az rAnde ?avval kasb kard\n",
- "prompted!\n",
- "راند rAnd man bA dustam se rAnde mortal kombat bAzi kardam\n",
- "prompted!\n",
- "راند rAnad ?u virAn ?ast vali mirAnad\n",
- "prompted!\n",
- "راند rAnad pedare ?Ali ?otobus dArad va dar jAddehA mirAnad\n",
- "prompted!\n",
- "راند rAnad ?u tavAnest govAhinAme begirad tA mASin rA borAnad\n",
- "prompted!\n",
- "راند rAnad rAndane mASin besyAr kAre rAhati ?ast ?amA bAyad govAhinAme daryAft konad\n",
- "prompted!\n",
- "راند rAnad ?u mitavAnad dar Sab mASin rAnad\n",
- "prompted!\n",
- "دم dom dome xorus va qasame hazrate ?abbAs yek zarbolmasale ?irAni ?ast\n",
- "prompted!\n",
- "دم dom man dome gorbe rA nAz kardam\n",
- "prompted!\n",
- "دم dom ?aksare heyvAnAt dArAye dom hastand\n",
- "prompted!\n",
- "دم dom dom yeki ?az ?a?zAye badane heyvAn ?ast\n",
- "prompted!\n",
- "دم dom heyvAnAt bA dome xod mitavAnand payAm hAi rA be ?ensAn montaqel konand\n",
- "prompted!\n",
- "دم dam muS barAye xordane panir be dAm ?oftAd\n",
- "prompted!\n",
- "دم dam gAhi ?oqAt ?ensAnhA ?az rAhe rAst xArej va be dAme gonAh mioftand\n",
- "prompted!\n",
- "دم dam heyvAnAt momken ?ast be dAme SekArCiyAn bioftad\n",
- "prompted!\n",
- "دم dam dAmhA barAye be tale ?andAxtan yek hadafe xAs morede ?estefAde qarAr migirand\n",
- "prompted!\n",
- "دم dam SekArCi barAye be tale ?andAxtane heyvAn barAye ?u dAm pahn kard\n",
- "prompted!\n",
- "ترکان terekAn ma?ni nadArad\n",
- "prompted!\n",
- "ترکان torkAn torkAne ?osmAni yek ?emperAturiye bozorg dAStand\n",
- "prompted!\n",
- "ترکان torkAn torkAne ?irAn dar sar tA sare ?irAn zendegi mikanand\n",
- "prompted!\n",
- "ترکان torkAn torkAne tabriz besyAr mardomie xungarm hastand\n",
- "prompted!\n",
- "ترکان torkAn torkAne ?ardebil besyAr mehmAnnavAz hastand\n",
- "prompted!\n",
- "ترکان torkAn torkAne zanjAn CAquhAye zibAyi rA dArand\n",
- "prompted!\n",
- "گرد gard gard ?o qobAr bA?es Sod havAye Sahr ?Alude Savad\n",
- "prompted!\n",
- "گرد gard gard ?o qobAr yek padideye tabi?i dar donyA ?ast\n",
- "prompted!\n",
- "گرد gard gard ?o qobAr bA?ese ?ijAde moSkel dar dastgAhe tanaffosiye ?ensAn miSavad\n",
- "prompted!\n",
- "گرد gard gard ?o qobAr rAnandegi rA saxt mikanad\n",
- "prompted!\n",
- "گرد gard gard ?o qobAr be Sahre tehrAn resid\n",
- "prompted!\n",
- "گرد gerd Sekle dAyere gerd ?ast\n",
- "prompted!\n",
- "گرد gerd surate ba?zi ?az ?ensAnhA gerd ?ast\n",
- "prompted!\n",
- "گرد gerd guSthAye qelqeli gerd ?ast\n",
- "prompted!\n",
- "جلد jeld jeld kardane ketAb dar sahhAfihA ?anjAm miSavad\n",
- "prompted!\n",
- "جلد jeld jelde ketAbe man qermez ?ast\n",
- "prompted!\n",
- "جلد jeld tarhe jelde ruznAme zibA bud\n",
- "prompted!\n",
- "جلد jeld jelde bastani rA dar satle ?ASqAl ?andAxtam\n",
- "prompted!\n",
- "جلد jeld jelde daftar tarhAye pesarAne dArad\n",
- "prompted!\n",
- "جلد jald jalde daftar tarhAye doxtarAne ham dArad\n",
- "prompted!\n",
- "جلد jald kabutar jalde xod rA be makAni ke be ?An ta?alloq dArad miresAnad\n",
- "prompted!\n",
- "جلد jald kabutarhAye harame ?emAme rezA be jald budan ma?rufand\n",
- "prompted!\n",
- "جلد jald jald be ma?nAye CAbok ?ast\n",
- "prompted!\n",
- "جلد jald yozpalang yek heyvAne jald ?ast\n",
- "prompted!\n",
- "پر por zarfe man por ?az qazA bud\n",
- "prompted!\n",
- "پر por dar ?eid didani zarfe mehmAnhA por ?az ?Ajil bud\n",
- "prompted!\n",
- "پر por tofane sar por yek seriyAle qadimiye ?irAni ?ast\n",
- "prompted!\n",
- "پر por farmAndeh be sarbAz yek tofane por dAd\n",
- "prompted!\n",
- "پر por tArix por ?az ?ettefaqAte talx ?o Sirin ?ast\n",
- "prompted!\n",
- "پر par pare parande besyAr narm ?ast\n",
- "prompted!\n",
- "پر par ?az par dar san?ate lebAs ?estefAde miSavad\n",
- "prompted!\n",
- "پر par pare parvAz yek ?Albom ?az SAdmehre ?aqili ?ast\n",
- "prompted!\n",
- "پر par pedarbozorg ?az miyAne mA raft va par keSid\n",
- "prompted!\n",
- "پر par dar pare gu bozorg Sodan yek mesAl ?ast\n",
- "prompted!\n",
- "گردان gardAn resturane gardAne borje milAd xeyli bozorg ?ast\n",
- "prompted!\n",
- "گردان gardAn Carxe gardAn gar do ruzi bar morAde mA nagaSt dA?eman yeksAn nabASad hAle dorAn qam naxor\n",
- "prompted!\n",
- "گردان gardAn ?emSab resturAne gardAn xeyli Soluq bud\n",
- "prompted!\n",
- "گردان gardAn restorAne gardAne yek fazAye besyAr zibA va ?albate Soluq ?ast\n",
- "prompted!\n",
- "گردان gardAn dar restorAne gardAn menohA motenavve? ?ast\n",
- "prompted!\n",
- "گردان gordAn yek gordAne nezAmi dar masire pAdegAn hozur dAStand\n",
- "prompted!\n",
- "گردان gordAn gordAne sevom mas?uliate pAksAziye manAteqe moSaxxas Sode ra dArad\n",
- "prompted!\n",
- "گردان gordAn gordAnhA dar hAlate ?AmAde bAS qarAr dArand\n",
- "prompted!\n",
- "گردان gordAn har gordAn ?az Cand goruhAn taSkil miSavad\n",
- "prompted!\n",
- "گردان gordAn gordAne ?emAm ?Ali yek gordAne mojahhaz dar tehrAn ?ast\n",
- "prompted!\n",
- "عمر ?omr mAdar bozorgam be man goft xodA boht ?omr bA ?ezzat bede\n",
- "prompted!\n",
- "عمر ?omr ?omre har kas yek ruz be pAyAn mirasad\n",
- "prompted!\n",
- "عمر ?omr ?Adam bAyad dar tule ?omre xod kArhaye xub ?anjAm dahad\n",
- "prompted!\n",
- "عمر ?omr ?omre mA dar ?in donyA tamum miSavad\n",
- "prompted!\n",
- "عمر ?omr man bist sAl ?omr kardam\n",
- "prompted!\n",
- "عمر ?omar ?omar ?ebn xatAb yek Saxsiyyate maxduS dar tArix ?ast\n",
- "prompted!\n",
- "عمر ?omar ?omar ben sa?d yek Saxsiyyate manfur dar tArixe karbalA ?ast\n",
- "prompted!\n",
- "عمر ?omar ?omar ben xatAb dar jange moqAbele ?irAniyAn hozur dASt\n",
- "prompted!\n",
- "عمر ?omar ?omar ben xatAb barAye ?ahle sonnat qAbele ?ehterAm ?ast\n",
- "prompted!\n",
- "حل hal mas?ud ?in mas?ale ro hal kard\n",
- "prompted!\n",
- "حل hal mohammad ?in moSkel rA hal kard\n",
- "prompted!\n",
- "حل hal ?amirrezA bA komake pedaraS moSkelAte mAliye xod rA hal kard\n",
- "prompted!\n",
- "حل hal hal kardane ?in mas?aleye fizik besyAr ?AsAn ?ast\n",
- "prompted!\n",
- "حل hal ?in mozu? be rAhati qAbele hal kardan ?ast\n",
- "prompted!\n",
- "حل hall mA bAyad na dar gozaSte balke dar hAl zendegi konim\n",
- "prompted!\n",
- "حل hall hAle man ?emruz mosA?ed nabud\n",
- "prompted!\n",
- "حل hall hAle mA bastegi be hAle ?azizAnemAn dArad\n",
- "prompted!\n",
- "حل hall hAle pedarbozorg besyAr xub ?ast\n",
- "prompted!\n",
- "حل hall ?Ali ?emruz ?az bimArestAn moraxxas Sod va hAle ?un xub ?ast\n",
- "prompted!\n",
- "رد radd man ?Albome ?akshAyam rA dune dune radd kardam\n",
- "prompted!\n",
- "رد radd mA jAddeye tehrAn qom rA radd kardim\n",
- "prompted!\n",
- "رد radd radde pAye yek heyvAn dar ?in makAn vojud dArad\n",
- "prompted!\n",
- "رد radd sinA yek guSiye huSmand dArad\n",
- "prompted!\n",
- "رد radd sa hesse buyAyiye qavi dArad\n",
- "prompted!\n",
- "رد rad rad kardane CerAqe qermez xalAfe qavAnin ?ast\n",
- "prompted!\n",
- "رد rad bAzikone mohAjem ?az xate defA?i rad Sod va tup rA vArede darvAze kard\n",
- "prompted!\n",
- "رد rad man tabliqAt rA rad mikonam\n",
- "prompted!\n",
- "رد rad ?aksare mardom moqaddameye ketAb rA rad mikanand\n",
- "prompted!\n",
- "رد rad pedarbozorgam ?az xiyAbAn rad Sod\n",
- "prompted!\n",
- "رود rud rude kArun yeki ?az mohemtarin rudhAye ?irAn ?ast\n",
- "prompted!\n",
- "رود rud kenAre rud neSastan lezzatbaxS ?ast\n",
- "prompted!\n",
- "رود rud yeki ?az tafrihAte man didane rud ?ast\n",
- "prompted!\n",
- "رود rud dar rud mAhi ham yAft miSavad\n",
- "prompted!\n",
- "رود rud rude ?aras dar SomAle qarbiye ?irAn qarAr dArad\n",
- "prompted!\n",
- "رود ravad ?u qarAr ?ast jom?e sobh be kuh beravad\n",
- "prompted!\n",
- "رود ravad ?ensAn gAhi ?oqAt tasmim migirad beravad\n",
- "prompted!\n",
- "رود ravad pedar majbur ?ast sobhhA zud be mahale kAr beravad\n",
- "prompted!\n",
- "رود ravad mas?ud bAyad ba?d ?az sarkAr be dAneSgA beravad\n",
- "prompted!\n",
- "رود ravad sArA barAye tahqiqAte xod bAyad be kAfinot beravad\n",
- "prompted!\n",
- "کن kon pedar be man goft hamiSe be ?ArAmi rAnandegi kon\n",
- "prompted!\n",
- "کن kon mAdar be xAharam goft ?emruz ?ASpazi kon\n",
- "prompted!\n",
- "کن kon ra?ise Serkat be ?AbdArCi goft ?emruz nezAfat kon\n",
- "prompted!\n",
- "کن kon dustam dar moqe?iyyate hassAs be man goft komakam kon\n",
- "prompted!\n",
- "کن kon be dustam goftam guSi rA SArZ kon\n",
- "prompted!\n",
- "کن kan sad kan ?AbeS kam Sode\n",
- "prompted!\n",
- "کن kan havAye kan besyAr delpazir ?ast\n",
- "prompted!\n",
- "کن kan kan ?Ab ?o havAye xonaki dArad\n",
- "prompted!\n",
- "کن kan havaye kan besyAr tamiz va dur ?az ?Aludegi ?ast\n",
- "prompted!\n",
- "کن kan kan jAddehAye bAriki dArad\n",
- "prompted!\n",
- "هل hol bAzikone qermez bAzikone ?Abi rA dar mohavvateye jarime hol dAd\n",
- "prompted!\n",
- "هل hol ?Ali barAye Suxi mohammad rA hol dAd\n",
- "prompted!\n",
- "هل hol hol dAdan mitavAnad xatarsAz bASad\n",
- "prompted!\n",
- "هل hol ?ehsAn ?asabAni Sod va dustaS rA hol dAd\n",
- "prompted!\n",
- "هل hol dar varzeSe futbAl hol dAdan yek no? xatA ?ast\n",
- "prompted!\n",
- "هل hel hel CAy rA xoSmaze mikanad\n",
- "prompted!\n",
- "هل hel hel qazA rA xoSmazeh mikanad\n",
- "prompted!\n",
- "هل hel ?aksare mardom barAye tama? dAdan be xorAki dar ?An hel mirizand\n",
- "prompted!\n",
- "هل hel hel besyAr xoSbu ?ast\n",
- "prompted!\n",
- "هل hel hel xAsiyyate bAlAyi dArad\n",
- "prompted!\n",
- "اره ?Are ba?zi vaqthA bAyad ?Are va ba?zi vaqtA bAyad na goft\n",
- "prompted!\n",
- "اره ?Are ?az pedar porsidam va goftam kuler dorost Sod goft ?Are\n",
- "prompted!\n",
- "اره ?Are dar javAbe yek turist goftam ?Are mA ?injA banAhAye tArixiye ziyAdi dArim\n",
- "prompted!\n",
- "اره ?Are dar javAb be ?Ali be ?u goftam ?Are\n",
- "prompted!\n",
- "اره ?Are ?az pedar porsidam mitavAnim SAm birun bexorim va ?u goft ?Are\n",
- "prompted!\n",
- "اره ?arre ?arre besyAr jesme tizi ?ast\n",
- "prompted!\n",
- "اره ?arre bA ?arre mitavAn Cube yek seri ?az deraxthA rA nesf kard\n",
- "prompted!\n",
- "اره ?arre ?arre yek vasile barAye bAqbAnAn ?ast\n",
- "prompted!\n",
- "اره ?arre ?arreye barqi yek vasileye porkArbord dar bAqbAni ?ast\n",
- "prompted!\n",
- "اره ?arre barAye kAr bA ?arre bAyad ?ehtiyAt kard\n",
- "prompted!\n",
- "سرو sarv deraxte sarv dar ?irAn ziyAd vojud dArad\n",
- "prompted!\n",
- "سرو sarv deraxte sarv dar pArkhAye ?irAn ziyAd yAft miSavad\n",
- "prompted!\n",
- "سرو sarv deraxte sarv qad ?o qAmate ziyAdi dArad\n",
- "prompted!\n",
- "سرو sarv parvande bar ruye deraxte sarv neSast\n",
- "prompted!\n",
- "سرو serv mhemAnAn qazAhAye xod rA serv kardand\n",
- "prompted!\n",
- "سرو serv dar hotelhA qazAye rAyegAn serv miSavad\n",
- "prompted!\n",
- "سرو serv serve ?in bAzikon barAye timaS ?emtiyAz be ?armaqAn ?Avord\n",
- "prompted!\n",
- "سرو serv serv zadan dar vAlibAl yek mahArate xAssi mixAhad\n",
- "prompted!\n",
- "سرو serv man nuSidani serv kardam\n",
- "prompted!\n",
- "تن tan dar heyne dargiri polis bA niruhai xalAfkAr Cand tan ?az xalAfkArAn koSte Sodand\n",
- "prompted!\n",
- "تن tan Cand tan ?az mohAjerAne qeyreqAnuni doCAre ?ertekAbe jorm Sodand\n",
- "prompted!\n",
- "تن tan do tan ?az mohAjerAne qeyreqAnuni dar daryA qarq Sodand\n",
- "prompted!\n",
- "تن tan tane man niAz be mAsAZ dArad\n",
- "prompted!\n",
- "تن tan tane to besyAr narm va latif ?ast\n",
- "prompted!\n",
- "تن ton ton mAhi qazAye besyAr xoSmazei ?ast\n",
- "prompted!\n",
- "تن ton sabzi polo bA tone mAhi yek qazAye laziz ?ast\n",
- "prompted!\n",
- "تن ton konserve tone mAhi rA qabl ?az mil kardan bAyad Cand daqiqe joSAnd\n",
- "prompted!\n",
- "تن ton tone mAhi yek qazAye monAseb barAye dAneSjuyAn ?ast\n",
- "prompted!\n",
- "تن ton dar sarbAzi be sarbAzAn tone mAhi midahand\n",
- "prompted!\n",
- "کش keS sarbAzAn bA keS bAyad barAye xod getr dorost konand\n",
- "prompted!\n",
- "کش keS doxtarAn ?az keSe mu besyAr ziyAd ?estefAde mikonand\n",
- "prompted!\n",
- "کش keS keS dAdane yek mozue xAs bA?es dargiriye ?afkAr miSavad\n",
- "prompted!\n",
- "کش keS panire pitzA bA?es keS ?Amadane pitzA miSavad\n",
- "prompted!\n",
- "کش keS kese pul barAye morattab kardane pul zaruri ?ast\n",
- "prompted!\n",
- "رس ros xAke ros barAye sAxtemAnsAzi ?estefAde miSavad\n",
- "prompted!\n",
- "رس ros xAke ros ?az farsAyeSe bolandmoddate sanghAye ma?dani be vojud miAyad\n",
- "prompted!\n",
- "رس ros kArgarAn xAxAye ros rA jA be jA mikardand\n",
- "prompted!\n",
- "رس ros Cand guni xAke ros birune hayAt ?oftAde bud\n",
- "prompted!\n",
- "رس ros dar ketAbe ?olum dar morede xAke ros tozihAti ?AmAde ?ast\n",
- "prompted!\n",
- "رس res tAksiye ?interneti be mabda? resid\n",
- "prompted!\n",
- "رس res pedaram be moqe? be xAne resid\n",
- "prompted!\n",
- "رس res sarmAye havA be tehrAn resid\n",
- "prompted!\n",
- "رس res ?Aludegiye havA be tehrAn resid\n",
- "prompted!\n",
- "کشت koSt qAtel vArede xAneye yek nafar Sod va ?u rA koSt\n",
- "prompted!\n",
- "کشت koSt dozd be qasde dozdidane vasAyele qeymati vArede xAne Sod ?amA be surate qeyre?amd sAhebxAne rA koSt\n",
- "prompted!\n",
- "کشت koSt SekArCi bA Selieke golule ?Ahu rA koSt\n",
- "prompted!\n",
- "کشت koSt polis majbur be Selik kardan Sod va ?arAzel ro koSt\n",
- "prompted!\n",
- "کشت koSt mirzA rezAye kermAni nAsereddin SAh rA koSt\n",
- "prompted!\n",
- "کشت keSt zamine keSte berenj dar gilAn vojud dArad\n",
- "prompted!\n",
- "کشت keSt keSte CAy dar gilAn ?anjAm miSavad\n",
- "prompted!\n",
- "کشت keSt behtarin CAye ?irAn dar gilAn keSt miSavad\n",
- "prompted!\n",
- "کشت keSt behtarin berenjhAye ?irAn dar gilAn keSt miSavad\n",
- "prompted!\n",
- "کشت keSt keSte xaSxAS dar ?afqAnestAn surat migirad\n",
- "prompted!\n",
- "نقل naql naql ?o ?enteghAlAte futbAle ?irAn ?AqAz Sod\n",
- "prompted!\n",
- "نقل naql pedar bozorg dAstAnhAye qadimiye xod rA barAye mA naql mikanad\n",
- "prompted!\n",
- "نقل naql ?az gozaSte dAstAnhAye ziyAdi naql miSavad\n",
- "prompted!\n",
- "نقل naql pedaram ?az javAniye xod xAterAti naql mikonad\n",
- "prompted!\n",
- "نقل naql mA ?az xAneye qabliye xod naqle makAn kardim\n",
- "prompted!\n",
- "نقل noql noql besyAr Sirin ?ast\n",
- "prompted!\n",
- "نقل noql man noql ro bA CAy mixoram\n",
- "prompted!\n",
- "نقل noql noql rA ruye sare ?arus va dAmAd mirizan\n",
- "prompted!\n",
- "نقل noql x ?ar Ce dAnad qeymate noql ?o nabAt\n",
- "prompted!\n",
- "نقل noql noql va qand va nabAt CAy rA xoSmazzetar mikanand\n",
- "prompted!\n",
- "رم ram ram hAfezeye movaqqate guSi ?ast\n",
- "prompted!\n",
- "رم ram man yek rame gi por ?az film va ?Ahang dAram\n",
- "prompted!\n",
- "رم ram qeymate ramhAye guSi motenavve? ?ast\n",
- "prompted!\n",
- "رم ram man barAye mAdaram yek ram xaridam\n",
- "prompted!\n",
- "رم ram dar xiyAbAn yek ram gomSode bud\n",
- "prompted!\n",
- "رم rom timhAye Sahre rom lAtziyo va ?A s rom hastand\n",
- "prompted!\n",
- "رم rom rom Sahre besyAr zibAyi ?ast\n",
- "prompted!\n",
- "رم rom havAye rom besyAr sard Sode ?ast\n",
- "prompted!\n",
- "رم rom rom jAzebehAye gardeSgari dArad\n",
- "prompted!\n",
- "گرداند gardAnad mas?ulAne proje tasmim dArand ke tajhizAte jadid rA har Ce sari?tar gardAnand\n",
- "prompted!\n",
- "گرداند gardAnad mo?allemhA talAS mikonand tA kelAshA rA be Sekli jazzAb gardAnand\n",
- "prompted!\n",
- "گرداند gardAnad ?u hamiSe be donbAle rAh?hAyi ?ast ke timeS rA be behtarin Sekl gardAnd\n",
- "prompted!\n",
- "گرداند gardAnad barxi ?az rahbarAn mixAhand siyAsathAye xod rA be gune?i gardAnand ke hame rAzi bASand\n",
- "prompted!\n",
- "گرداند gardAnad ?agar modirAn be dorosti kArhAye ruzAne rA gardAnand tim behtar ?amal xAhad kard\n",
- "prompted!\n",
- "کل kol kole mozu? hamin bud\n",
- "prompted!\n",
- "کل kol kol ?ettefaqAte xube zendegiye man mAndegAr hastand\n",
- "prompted!\n",
- "کل kol ketAbe kol ?az joz yek ketAbe ma?ruf ?ast\n",
- "prompted!\n",
- "کل kol kole SabakehAye xabari dar morede ta?tili sohbat mikanand\n",
- "prompted!\n",
- "کل kol man kole ketAbhAye darsiye xod rA xundam\n",
- "prompted!\n",
- "کل kel kel keSidan dar marAseme ?aqd to ?irAn rAyej ?ast\n",
- "prompted!\n",
- "کل kel kel keSidan dar marAseme nAmzadi to ?irAn rAyej ?ast\n",
- "prompted!\n",
- "کل kel kel keSidan dar marAseme ?arusi to ?irAn rAyej ?ast\n",
- "prompted!\n",
- "کل kel mAdare ?arus dar marAseme nAmzadiye doxtaraS kel keSid\n",
- "prompted!\n",
- "کل kel kel keSidan barAye ?arus va dAmAd xoSAyand ?ast\n",
- "prompted!\n",
- "کل koll kolle xAneye mA bAyad Soste Savad\n",
- "prompted!\n",
- "کل koll kolle madArese ?irAn ta?til Sod\n",
- "prompted!\n",
- "کل koll kolle mosAbeqAte varzeSiye tehrAn laqv Sod\n",
- "prompted!\n",
- "کل koll be ture koll tamAme mA ?ensAnhA tavallode xod rA jaSn migirim\n",
- "prompted!\n",
- "کل koll kolle pulhAyam rA xarj kardam\n",
- "prompted!\n",
- "کل kal ?in mive kAl ?ast\n",
- "prompted!\n",
- "کل kal pedarbozorg goft bAyad sabr kani mivehAye kAl reside Savad\n",
- "prompted!\n",
- "کل kal xordane miveye kAl bA?es deldard miSavad\n",
- "prompted!\n",
- "کل kal miveye kAl maze xubi nadArad\n",
- "prompted!\n",
- "کل kal miveye kAl rA nabAyad Cid\n",
- "prompted!\n",
- "سر serr serre hiCkas rA nabAyad fAS kard\n",
- "prompted!\n",
- "سر serr man serre xod rA bA dustam dar miyAn gozAStam\n",
- "prompted!\n",
- "سر serr duste man goft serre to hamiSe dar piSe man bAqi xAhad mAnd\n",
- "prompted!\n",
- "سر serr serr zendegiye xod rA nabAyad be harkasi goft\n",
- "prompted!\n",
- "سر serr faqat ?AdamhAye morede ?etminAn haqe Senidan serrhAye zendegiye Soma ro dArand\n",
- "prompted!\n",
- "سر sor zamin besyAr sor ?o laqzande ?ast\n",
- "prompted!\n",
- "سر sor zange varzeSe mA bexAtere sor budane zamin laqv Sod\n",
- "prompted!\n",
- "سر sor man dar baCCegi ziyAd sorsore savAr miSodam\n",
- "prompted!\n",
- "سر sor bexAtere laqzandegiye zamin mohammad sor xord\n",
- "prompted!\n",
- "سر sor ?agar mASinhA zanjire Carx ?estefAde nakanand CarxhAyeshan sor xAhad xord\n",
- "prompted!\n",
- "سر sar sardard mitavAnad nASi ?az kambude ?Ab bASad\n",
- "prompted!\n",
- "سر sar sardard mitavAnad nASi ?az kambude xAb bASad\n",
- "prompted!\n",
- "سر sar sare ?in mAjarA ?afrAde ziyAdi nArAhat Sodand\n",
- "prompted!\n",
- "سر sar to sare man ?afkAre ziyAdi hast\n",
- "prompted!\n",
- "سر sar sar be sar kasi nagozAStam\n",
- "prompted!\n",
- "سر ser qabl ?az tazriq bAyad bimAr rA ser kard\n",
- "prompted!\n",
- "سر ser ser Sodan qabl ?az jarrAhi ?ejbAri ?ast\n",
- "prompted!\n",
- "سر ser be yAd dAram qabl ?az ?amal doktor man rA ser kard\n",
- "prompted!\n",
- "سر ser ser Sodan bA?es miSavad dard rA motevajjeh naSavim\n",
- "prompted!\n",
- "سر ser man tajrobeye ser Sodan qabl ?az ?amal rA dAram\n",
- "prompted!\n",
- "گنج ganj nAbardeh ganj ranj moyassar nemiSavad\n",
- "prompted!\n",
- "گنج ganj ganjhA zire xAk dafn Sode hastand\n",
- "prompted!\n",
- "گنج ganj dar dAstAnhA mArhA ?az ganjhA morAqebat mikanand\n",
- "prompted!\n",
- "گنج ganj ganje har kasi vaqt va ?omr ?ust\n",
- "prompted!\n",
- "گنج ganj nimA be donbAle naqSeye ganj ?ast\n",
- "prompted!\n",
- "تو to to mitavAni dar ?Ayande movaffaq Savi\n",
- "prompted!\n",
- "تو to pedaram be man goft to dar ?Ayande bAyad be sarbAzi beravi\n",
- "prompted!\n",
- "تو to to mitavAni ?in matlab rA sahih bexAni?\n",
- "prompted!\n",
- "تو to to bAyad pulhAyat rA pas ?andAz kani\n",
- "prompted!\n",
- "تو to to kelide xAne rA dar jibet gozASti?\n",
- "prompted!\n",
- "تو tu tu xAneye mA hamiSe boxAri roSan ?ast\n",
- "prompted!\n",
- "تو tu tu har lahze mitavAnad ?ettefaqAte ?ajibi rox bedahad\n",
- "prompted!\n",
- "تو tu tu qalbat momken ?ast ?ettefaqAte jAlebi bioftad\n",
- "prompted!\n",
- "تو tu tu sare man ?afkAre ?ajibi migozarad\n",
- "prompted!\n",
- "برنج berenj kabAb ham bA nAn va ham bA berenj xoSmaze ?ast\n",
- "prompted!\n",
- "برنج berenj berenjhAye ?irAni ?atre foqol?Adei dArad\n",
- "prompted!\n",
- "برنج berenj berenje dudi besyAr xoSmaze ?ast\n",
- "prompted!\n",
- "برنج berenj berenj dArAye qand ?ast\n",
- "prompted!\n",
- "برنج berenj dar Sab behtar ?ast ?az xordane berenj jelogiri Savad\n",
- "prompted!\n",
- "برنج beranj man dust dAram juje kabAb rA bA beranj bexoram\n",
- "prompted!\n",
- "قل qel qAblame ?az dastam ?oftAdam va qel xord\n",
- "prompted!\n",
- "قل qel tup ruye zamin qel mixorad\n",
- "prompted!\n",
- "قل qel man fesenjAn rA bA guSte qelqeli dust dAram\n",
- "prompted!\n",
- "قل qel baCCehA ?aksaran qelqeli hastand\n",
- "prompted!\n",
- "قل qel tup rA ?ArAm qel dAdam\n",
- "prompted!\n",
- "قل qol hamid be pedare xod qol dAd dar darshAyaS movaffaq Savad\n",
- "prompted!\n",
- "قل qol ?amir be sinA qol dAd ke bA ham be varzeSgAh beravand\n",
- "prompted!\n",
- "قل qol man be xodam qolhAye ziyAdi dAdam\n",
- "prompted!\n",
- "قل qol har kasi ke qol midahad bAyad be ?An pAyband bASad\n",
- "prompted!\n",
- "قل qol be qolhAye xod bAyad ?amal konim\n",
- "prompted!\n",
- "کرد kord kordhA yeki ?az neZAdhAye ?irAni hastand\n",
- "prompted!\n",
- "کرد kord kordhAye ?irAn ?omdatan dar SahrhAye kordestAn kermAnSAh va ?ilAm hozur dArand\n",
- "prompted!\n",
- "کرد kord kordhA raqse ma?rufi dArand\n",
- "prompted!\n",
- "کرد kord kordhA qazAhAye besyAr xubi dArand\n",
- "prompted!\n",
- "کرد kord kordhAye ?erAq dar SomAle ?in keSvar hozur dArand\n",
- "prompted!\n",
- "کرد kard dar jange haSt sAleye defA?e moqaddas te?dAde ziyAdi ?az kardhAye ?erAq be ?irAn ?Amadand\n",
- "prompted!\n",
- "کرد kard pedar bAtriye sA?at rA ?avaz kard\n",
- "prompted!\n",
- "کرد kard mAdar ?ASpazi kard\n",
- "prompted!\n",
- "کرد kard mohsen ?emruz besyAr ziyAd xarid kard\n",
- "prompted!\n",
- "کرد kard ?imAn ba?d ?az Senidan yek jok be Seddat xande kard\n",
- "prompted!\n",
- "پی pi ?adade pi yek ?adade gong ?ast\n",
- "prompted!\n",
- "پی pi dar riyAzi mas?alehAye ziyAdi vojud dArad ke ?adade pi dar ?An ?ast\n",
- "prompted!\n",
- "پی pey mAdaram goft sari? be harfe man pey bebar\n",
- "prompted!\n",
- "پی pey pedaram goft ba?dhA be harfe man pey xAhi bord\n",
- "prompted!\n",
- "پی pey man tAze be harfe pedarbozorg pey bordam\n",
- "prompted!\n",
- "پی pey pey bordan be kAre ?eStebAhe xod yek qadam ro be jelo ?ast\n",
- "prompted!\n",
- "پی pey man be ?eStebAhe xod pey bordam\n",
- "prompted!\n",
- "رب rabb rabb dar ?arabi be ma?nAye parvardgAr ?ast\n",
- "prompted!\n",
- "رب rabb vAZe rabb be karAt dar qor?Ane karim ?Amade ?ast\n",
- "prompted!\n",
- "رب rabb vAZeye rabb dar surehAye moxtalefi ?Amade ?ast\n",
- "prompted!\n",
- "رب rabb dar qonut gereftan vAZeye rabb ?estefAde miSavad\n",
- "prompted!\n",
- "رب rabb barAye Soru?ye har kAri ?az rabb komak migirim\n",
- "prompted!\n",
- "رب robb robb qermez ?ast\n",
- "prompted!\n",
- "رب robb be qazAhAye ziyAdi robb zade miSavad\n",
- "prompted!\n",
- "رب robb robb qazA rA xoSmaze mikanad\n",
- "prompted!\n",
- "رب robb robb qazA rA xoS rang ?o lo?Ab mikanad\n",
- "prompted!\n",
- "رب robb barAye poxte qazAye qeyme be ?An robb mizanand\n",
- "prompted!\n",
- "تاباند tAbAnd xorSid garmAye xod rA bar zamin tAband\n",
- "prompted!\n",
- "تاباند tAbAnd xorSid nure xod rA bar mA tAband\n",
- "prompted!\n",
- "تاباند tAbAnd xorSide diruz garmAye ziyAdi bar zamin tAband\n",
- "prompted!\n",
- "تاباند tAbAnd xorSide dAqi xod rA bar zamin tAband\n",
- "prompted!\n",
- "تاباند tAbAnd leylA muhAye xod rA tAband\n",
- "prompted!\n",
- "تاباند tAbAnad xorSid garmA rA be zamin mitAbAnad\n",
- "prompted!\n",
- "تاباند tAbAnad xorSide dAqi rA be zamin mitAbAnad\n",
- "prompted!\n",
- "تاباند tAbAnad xorSid nure xod rA be zamin mitAbAnad\n",
- "prompted!\n",
- "تاباند tAbAnad xorSid harruz biStar garmAye xod rA mitAbAnad\n",
- "prompted!\n",
- "تاباند tAbAnad ?axbAre havASenAsi goft xorSid fardA bA Seddate biStari garmaye xod rA bar zamin mitAbAnad\n",
- "prompted!\n",
- "شکر Sokr man harruz xodA rA Sokr mikanam\n",
- "prompted!\n",
- "شکر Sokr Sokre xodA bimAriye man darmAn Sod\n",
- "prompted!\n",
- "شکر Sokr Sokre xodA ?emruz bArAn bArid\n",
- "prompted!\n",
- "شکر Sokr Sokre xodA hAle man xub ?ast\n",
- "prompted!\n",
- "شکر Sokr Sokre xodA ke havA besyAr tamiz ?ast\n",
- "prompted!\n",
- "شکر Sekar man sobhAneye Sekar rA dar CAy mirizam\n",
- "prompted!\n",
- "شکر Sekar Sekare ziyAd qande ?ensAn rA bAlA mibarad\n",
- "prompted!\n",
- "شکر Sekar dar Sirini Sekar ?estefAde miSavad\n",
- "prompted!\n",
- "شکر Sekar Sekare ziyAd dandAnhA rA xarAb mikonad\n",
- "prompted!\n",
- "شکر Sekar Sekare ziyAd barAye badan mozerr ?ast\n",
- "prompted!\n",
- "شست Sast pedare hoseyn Sam?e tavallode Sast sAlegiye xod rA fut kard\n",
- "prompted!\n",
- "شست Sast pedarbozorge man dar sene Sastohaft sAlegi ?az donyA raft\n",
- "prompted!\n",
- "شست Sast ?in varzeSgAhe Sast sAl piS ?eftetAh Sod\n",
- "prompted!\n",
- "شست Sast ?in filme Sast sAl piS sAxte Sod\n",
- "prompted!\n",
- "شست Sast ?in ?Ahange Sast sAl piS sAxte Sod\n",
- "prompted!\n",
- "شست Sost mAdar ZarfhAye ?emruz rA Sost\n",
- "prompted!\n",
- "شست Sost sajjAd zarfhAye SAm rA Sost\n",
- "prompted!\n",
- "شست Sost ?emruz mahdi lebAshAye xod rA Sost\n",
- "prompted!\n",
- "شست Sost mojtabA hayAte xAne rA Sost\n",
- "prompted!\n",
- "شست Sost mostafA ?emruz kAre Sost ?o Su rA ?anjAm dAd\n",
- "prompted!\n",
- "خرد xord livAn ?az dastam ?oftAd va xord Sod\n",
- "prompted!\n",
- "خرد xord SiSe xord Sod\n",
- "prompted!\n",
- "خرد xord boSqAb Sekast va xord Sod\n",
- "prompted!\n",
- "خرد xord pas ?az barxorde tup be dahAne bAzikon dandAne ?u xord Sod\n",
- "prompted!\n",
- "خرد xord sibe zamini besurate xalAli xord Sod\n"
- ]
- }
- ]
- }
- ],
- "metadata": {
- "colab": {
- "collapsed_sections": [
- "ABgLYF9R8viP",
- "WEY5MiKLzurH",
- "EOZGZa2lMfPe",
- "Zg2EzX4hOReJ",
- "AdU8VMTIOWLZ",
- "XhbCA2tkR45b",
- "XjAPkfq7SF87",
- "wDV7ysXf2b_H",
- "Jjacw9Mp2eoX",
- "ciSPyhRc3Rvo",
- "2F06noXfhFoy",
- "kKswdIBO_kH1",
- "6UpTo6L_1bD8"
- ],
- "provenance": []
- },
- "kernelspec": {
- "display_name": "Python 3",
- "name": "python3"
- },
- "language_info": {
- "name": "python"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 0
- }
|