{"id":39546,"date":"2019-10-31T22:35:27","date_gmt":"2019-10-31T19:35:27","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python\/"},"modified":"2019-10-31T22:35:27","modified_gmt":"2019-10-31T19:35:27","slug":"kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","title":{"rendered":"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Meie jaoks on oluline m\u00f5ista, mis toimub meie \u00f5pilastega \u00f5ppe ajal ja kuidas need hetked m\u00f5jutavad tulemust, seet\u00f5ttu kaardistame kliendi teekonna \u2014 klientide kogemuste kaardi. \u00d5ppeprotsess ei ole pidev ja terviklik, see on kimp omavahel seotud s\u00fcndmustest ja \u00f5pilase tegevustest, mis v\u00f5ivad oluliselt erineda erinevate \u00f5pilaste seas. Siin on ta l\u00e4binud tunni: mida ta edasi teeb? Kas ta l\u00e4heb kodut\u00f6\u00f6le? Avab mobiilirakenduse? Muudab kursust, palub vahetada \u00f5petajat? Sisestub kohe j\u00e4rgmistesse tundidesse? V\u00f5i lahkub lihtsalt pettunult? Kas selle kaardi anal\u00fc\u00fcsimise kaudu on v\u00f5imalik tuvastada mustreid, mis viivad kursuse edukale l\u00f5petamisele v\u00f5i vastupidi, \u201elahkumisele\u201c?<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga\" src=\"\/wp-content\/uploads\/2019\/10\/3eaee2e858273669b4490f6ceb65d281.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTavaliselt kasutatakse CJMi koostamiseks spetsialiseeritud, \u00fcsna kalliseid sulgeda koodiga t\u00f6\u00f6riistu. Kuid me soovisime v\u00e4lja m\u00f5elda midagi lihtsat, mis vajaks minimaalset vaeva ja oleks v\u00f5imalikult avatud l\u00e4htekoodiga. Nii tekkis idee kasutada Markovi ahelaid \u2014 ja meil \u00f5nnestus. Oleme koostanud kaardi, t\u00f5lgendanud \u00f5pilaste k\u00e4itumise andmeid graafina, n\u00e4inud t\u00e4iesti mitteilmseid vastuseid globaalsele \u00e4ri k\u00fcsimusele ja isegi leidnud s\u00fcgavale peidetud vigu. K\u00f5ike seda tegime avatud l\u00e4htekoodiga Python-skriptide abil. Selles artiklis r\u00e4\u00e4gin kahest juhtumist, mis andsid need mitteilmseid tulemusi ja jagan skripti k\u00f5igiga, kes soovivad.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNii n\u00e4itavad Markovi ahelad \u00fclemineku t\u00f5en\u00e4osust s\u00fcndmuste vahel. Siin on primitiivne n\u00e4ide Vikipeediast:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga\" src=\"\/wp-content\/uploads\/2019\/10\/978e18169ba4c7b2b71787536e4bb219.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSiin on \u201eE\u201c ja \u201eA\u201c \u2014 s\u00fcndmused, nooled \u2014 \u00fcleminekud nende vahel (sealhulgas \u00fcleminek s\u00fcndmusest endasse), ja noolte kaalud \u2014 \u00fclemineku t\u00f5en\u00e4osus (\u201ekaalutud suunatud graaf\u201c).<\/p>\n<h2>Mida kasutati<\/h2>\n<p>\nAhel \u00f5petati Python'i standardse funktsionaalsusega, millele s\u00f6\u00f6dati \u00f5pilaste aktiivsuse logisid. Graaf saadi saadud maatriksist NetworkX teeki kasutades.<\/p>\n<p>Logi n\u00e4eb v\u00e4lja j\u00e4rgmine:<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga\" src=\"\/wp-content\/uploads\/2019\/10\/bc75077802cd7eeb00ebe4a56bc61050.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee on csv-fail, mis sisaldab kolme veergu: \u00f5pilase ID, s\u00fcndmuse nimetus, aeg, millal see s\u00fcndmus leidis aset. Need kolm v\u00e4lja on piisavad, et j\u00e4lgida kliendi liikumisi, koostada kaart ja l\u00f5puks saada Markovi ahel.<\/p>\n<p>Raamatukogu tagastab ehitatud graafikuid .dot v\u00f5i .gexf formaadis. Esimeste visualiseerimiseks v\u00f5ib kasutada tasuta Graphviz paketti (t\u00f6\u00f6riist gvedit), me t\u00f6\u00f6tasime .gexf ja Gephi'ga, mis on samuti tasuta.<\/p>\n<p>Edasi tahan tuua kaks n\u00e4idet Markovi ahelate kasutamisest, mis on v\u00f5imaldanud meil uut moodi vaadata meie sihte, \u00f5ppeprotsesse ja kogu Skyengi \u00f6kos\u00fcsteemi. Ja ka veidi vigu parandada.<\/p>\n<h2>Esimene juhtum: mobiilirakendus<\/h2>\n<p>\nAlguses uurisime \u00f5pilase teekonda meie k\u00f5ige populaarsemas tootes \u2014 General kursusel. Sel hetkel t\u00f6\u00f6tasin Skyengi lasteosakonnas ja soovisime n\u00e4ha, kui efektiivselt mobiilirakendus meie laste sihtr\u00fchmas t\u00f6\u00f6tab.<\/p>\n<p>V\u00f5ttes logid ja viies need l\u00e4bi skripti, sain midagi sellist:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/ws\/ru\/de\/wsrudeufw3pzwrrxtxtn1pjeqvu.png\"><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga\" src=\"\/wp-content\/uploads\/2019\/10\/f2533ddfae7d5f85d0e86902b9b7005f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Sissejuhatus s\u00f5lme \u2014 Start General, ja all kolm v\u00e4ljunds\u00f5lme: \u00f5pilane \u00abmagas\u00bb, vahetas kurssi, l\u00f5petas kursuse.<\/p>\n<ul>\n<li>Fell asleep, \u00abMagas\u00bb \u2014 see t\u00e4hendab, et ta ei osale enam tundides, t\u00f5en\u00e4oliselt on ta loovutanud. Me nimetame seda seisundit optimistlikult \u00abmagama\u00bb, kuna teoorias on tal v\u00f5imalus j\u00e4tkata \u00f5pinguid. See on meie jaoks halvim tulemus.<\/li>\n<li>Dropped general, Vahetas kurssi \u2014 vahetas Generalilt millegi teise peale ja kadus meie Markovi ahelast.<\/li>\n<li>Finished course, L\u00f5petas kursuse \u2014 ideaalne seisund, inimene on l\u00e4binud 80% tundidest (k\u00f5ik tunnid ei ole kohustuslikud).<\/li>\n<\/ul>\n<p>\nSattumine s\u00f5lme successful class t\u00e4histab \u00f5ppetunni edukat l\u00e4bimist meie platvormil koos \u00f5petajaga. See fikseerib edusamme kursusel ja l\u00e4henemise soovitud tulemusele \u2014 \u00abL\u00f5petas kursuse\u00bb. Meile on t\u00e4htis, et \u00f5pilased k\u00fclastaksid seda nii palju kui v\u00f5imalik.<\/p>\n<p>Kuna kahtlesime mobiilirakenduse t\u00e4psetes kvantitatiivsetes j\u00e4reldustes (s\u00f5lm app session), ehitasime iga l\u00f5pp-s\u00f5lme jaoks eraldi ahelad ja seej\u00e4rel v\u00f5rdlesime paarikaupa servade kaalu:<\/p>\n<ul>\n<li>app session'ist tagasi sinna;<\/li>\n<li>app session'ist successful class'i;<\/li>\n<li>successful class'ist app session'i.<\/li>\n<\/ul>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/iw\/mz\/yq\/iwmzyqmlmbkgzmjqa7qhxwd7shq.png\"><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga\" src=\"\/wp-content\/uploads\/2019\/10\/fc68ca73b379f57a38b53f0c31e75cb1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>Vasakul \u2014 kursuse l\u00f5petanud \u00f5pilased, paremal \u2014 \u00abmagajad\u00bb<\/i><\/p>\n<p>Need kolm servi n\u00e4itavad seost \u00f5pilase edukuse ja mobiilirakenduse kasutamise vahel. Ootasime, et kursuse l\u00f5petanutel on mobiilirakendusega tugevam side kui \u00abmagajatel\u00bb. Kuid reaalsuses saime hoopis vastupidiseid tulemusi:<\/p>\n<ul>\n<li>veendusime, et erinevad kasutajagruppide suhtlemised mobiilirakendusega on erinevad;<\/li>\n<li>Edukaorid kasutavad mobiilirakendust v\u00e4hem intensiivselt;<\/li>\n<li>Uinuvad \u00f5pilased kasutavad mobiilirakendust aktiivsemalt.<\/li>\n<\/ul>\n<p>\nSee t\u00e4hendab, et \"uinuvad\" \u00f5pilased hakkavad \u00fcha rohkem aega mobiilirakenduses veetma ja l\u00f5puks j\u00e4\u00e4vad nad sinna igaveseks.<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga\" src=\"\/wp-content\/uploads\/2019\/10\/45c17a908e2178edd99e340f34657cad.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEsmalt olime \u00fcllatunud, kuid p\u00e4rast m\u00f5tlema hakates saime aru, et see on t\u00e4iesti loogiline efekt. Aegade jooksul \u00f5ppisin ma prantsuse keelt iseseisvalt, kasutades kahte t\u00f6\u00f6riista: mobiilirakendust ja grammatika loenguid YouTube'is. Alguses jagasin aega nende vahel 50\/50. Kuid rakendus oli l\u00f5busam, seal oli m\u00e4ngude elemendid, k\u00f5ik oli lihtne, kiire ja arusaadav, samas pidin loengutes s\u00fcvenema, midagi \u00fcles kirjutama, harjutama m\u00e4rkmikus. Aja jooksul veetsin ma smartphone'is aina rohkem aega, kuni selle osa kasvas 100%-ni: kui veedad selles kolm tundi, tekib vale tunne tehtud t\u00f6\u00f6st, mist\u00f5ttu pole mingit soovi minna ja midagi kuulata.<\/p>\n<p>Aga kuidas nii? Me ju ts\u00fckliliselt l\u00f5ime mobiilirakenduse, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/312126\/\">integreerisime sellesse Ebbinghausi k\u00f5verat,<\/a><\/noindex>m\u00e4ngustasime selle, muutsime selle atraktiivseks, et inimesed veedaksid seal rohkem aega, aga selgub, et see ainult segab neid? Tegelikult on p\u00f5hjus see, et mobiilirakenduse tiim tegi oma \u00fclesandeid liiga h\u00e4sti, mille tulemuseks oli see, et see muutus suurep\u00e4raseks iseseisvaks tooteks ja hakkas meie \u00f6kos\u00fcsteemist v\u00e4lja kukkuma.<\/p>\n<p>Uurimise tulemusena j\u00f5uti arusaamisele, et mobiilirakendust tuleb kuidagi muuta, et see ei segaks p\u00f5hikursusest. Ja nii laste kui ka t\u00e4iskasvanute puhul. Praegu on see t\u00f6\u00f6 k\u00e4imas.<\/p>\n<h2>Teine juhtum: onboardingu vead.<\/h2>\n<p>\nOnboarding on uus \u00f5pilase registreerimise protseduur, mis ei ole kohustuslik, kuid aitab v\u00e4ltida tulevikus v\u00f5imalikke tehnilisi probleeme. P\u00f5histsenaarium h\u00f5lmab seda, et inimene registreerib end maandumislehel, saab juurdep\u00e4\u00e4su isiklikule kontole, temaga v\u00f5etakse \u00fchendust ning korraldatakse sissejuhatav tund. Samas m\u00e4rkame sissejuhatava tunni ajal suurt arvu tehnilisi raskusi: vale brauseri versioon, mikrofoni v\u00f5i heli probleemid, \u00f5petaja ei saa kohe lahendust soovitada ja see k\u00f5ik on eriti keeruline, kui tegu on lastega. Seet\u00f5ttu oleme arendanud isiklikus kabinetis t\u00e4iendava rakenduse, kus saab l\u00e4bi viia neli lihtsat sammu: kontrollida brauserit, kaamerat, mikrofoni ja kinnitada, et vanemad on sissejuhatava tunni ajal l\u00e4heduses (sest nemad maksavad laste hariduse eest).<\/p>\n<p>Need paar onboarding'i lehte n\u00e4itasid j\u00e4rgmist funnelskeemi:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/l5\/pt\/aj\/l5ptajlgx6msydvswctke1w505w.jpeg\"><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga\" src=\"\/wp-content\/uploads\/2019\/10\/5e949640d4d4f8a70dc4fd677e3c93a7.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<i>1: algblokk kolme veidi erineva (olenevalt kliendist) sisselogimise vormiga.<br \/>\n2: n\u00f5usoleku kinnitamise m\u00e4rkeruut t\u00e4iendava onboarding'i protseduuri jaoks.<br \/>\n2.1-2.3: vanema kohaloleku kontroll, Chrome'i versiooni ja heli kontroll.<br \/>\n3: l\u00f5ppblokk.<\/i><\/p>\n<p>See n\u00e4eb v\u00e4ga loogiline v\u00e4lja: esimestel kahel sammul lahkub enamik k\u00fclastajatest, m\u00f5istes, et siia tuleb midagi t\u00e4ita, kontrollida ja aega pole. Kui klient j\u00f5uab kolmandasse sammu, siis on ta juba peaaegu kindel, et ta j\u00f5uab l\u00f5puni. Funnelskeemil ei ole \u00fchtegi p\u00f5hjust midagi kahtlustada.<\/p>\n<p>Otsustasime siiski anal\u00fc\u00fcsida meie onboarding'i mitte klassikalise \u00fchem\u00f5\u00f5tmelise funnelskeemiga, vaid Markovi ahela abil. Lisame veidi rohkem s\u00fcndmusi, k\u00e4ivitame skripti ja saame sellise tulemuse:<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/pi\/e6\/9p\/pie69p-4rmwaqdqqunigm3oz8am.png\"><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga\" src=\"\/wp-content\/uploads\/2019\/10\/44c094cb0be013beac00c0af5a3801be.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Selles segaduses on \u00fchem\u00f5tteliselt aru saada vaid \u00fchte: midagi on valesti l\u00e4inud. Onboarding'i protsess on lineaarne, see on disainis paika pandud, selles ei tohiks olla sellist keerulist seostulemuste v\u00f5rgustikku. Siin on kohe n\u00e4ha, et kasutajat visatakse sammude vahel, mille vahel ei tohiks \u00fcldse \u00fcleminekuid olla.<\/p>\n<p><img decoding=\"async\" alt=\"Kuidas kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Python scriptiga\" src=\"\/wp-content\/uploads\/2019\/10\/f43fcabaa7b773c17741b4eaa927b600.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelle kummalise pildi p\u00f5hjused v\u00f5ivad olla kaks:<\/p>\n<ul>\n<li>vead on sattunud logide andmebaasi;<\/li>\n<li>vead on olemas ka tootes \u2014 onboarding'is.<\/li>\n<\/ul>\n<p>\nEsimene p\u00f5hjus on t\u00f5en\u00e4oliselt olemas, kuid selle kontrollimine on piisavalt t\u00f6\u00f6intensiivne ja logide parandamine ei paranda kindlasti kasutajakogemust. Teise puhul, kui see on olemas, oleks pidanud kiiresti midagi ette v\u00f5tma. Seet\u00f5ttu asusime vaatama s\u00f5lmi, tuvastama servad, mida ei peaks olema, otsima nende tekkimise p\u00f5hjuseid. N\u00e4gime, et m\u00f5ned kasutajad j\u00e4id ringi k\u00e4ima, teised kukkusid keskmisest algusesse, kolmandad ei saanud \u00fcldse esimestest kahest sammust v\u00e4lja. Edastasime andmed QA-le \u2014 ja jah, v\u00e4lja tuli, et onboardimisel oli piisavalt vigu: see oli selline k\u00f5rvaltoode, veidi k\u00e4tet\u00f6\u00f6ga tehtud, seda ei testitud piisavalt s\u00fcgavalt, kuna ei oodatud mingeid probleeme. Praeguseks on kogu registreerimisprotsess muutunud.<\/p>\n<p>See lugu n\u00e4itas meile ootamatut Markovi ahelate rakendust QA valdkonnas.<\/p>\n<h3>Proovige ise!<\/h3>\n<p>\nMa olen \u00fcles laadinud oma <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/BartolomeuD\/markov-chain\">Markovi ahelate \u00f5petamiseks m\u00f5eldud Python-skripti<\/a><\/noindex> avalikuks \u2014 kasutage mureta. Dokumentatsioon on GitHubis, k\u00fcsimusi v\u00f5ib esitada siin, p\u00fc\u00fcan k\u00f5igile vastata.<\/p>\n<p>Ja siin on kasulikud lingid: <noindex><a rel=\"nofollow\" href=\"https:\/\/networkx.github.io\/\">NetworkX teek<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.graphviz.org\/\">Graphviz visuaaliseerija<\/a><\/noindex>. Siin <noindex><a rel=\"nofollow\" href=\"http:\/\/habr.com\/ru\/post\/455762\">on Habril artikkel<\/a><\/noindex> Markovi ahelate kohta. Artiklis olevad graafid on loodud kasutades <noindex><a rel=\"nofollow\" href=\"https:\/\/gephi.org\/\">Gephi<\/a><\/noindex>.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skyeng\/blog\/473124\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u043c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Customer Journey Map \u2014 \u043a\u0430\u0440\u0442\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430. \u0412\u0435\u0434\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f \u2014 \u043d\u0435 \u043d\u0435\u0447\u0442\u043e \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0435 \u0438 \u0446\u0435\u043b\u044c\u043d\u043e\u0435, \u044d\u0442\u043e \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430, \u043f\u0440\u0438\u0447\u0435\u043c \u044d\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u0443 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0447\u0435\u043d\u0438\u043a\u043e\u0432. \u0412\u043e\u0442 \u043e\u043d [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":39547,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-39546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430\u043c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Customer Journey Map \u2014 \u043a\u0430\u0440\u0442\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0435\u043f\u0438 \u041c\u0430\u0440\u043a\u043e\u0432\u0430 \u0432 \u043e\u0446\u0435\u043d\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u0431\u0430\u0433\u043e\u0432. \u0421\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043d\u0430 Python | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430\u043c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Customer Journey Map \u2014 \u043a\u0430\u0440\u0442\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:35:27+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:35:27+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kuidas me kasutame Markovi ahelaid otsuste hindamisel ja vigade leidmisel. Pythoniga skript | ProHoster","description":"On oluline m\u00f5ista, mis toimub meie \u00f5pilastega \u00f5ppe ajal ja kuidas need s\u00fcndmused tulemusele m\u00f5juvad, seet\u00f5ttu koostame Customer Journey Map'i \u2014 kliendikogemuse kaardi.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0435\u043f\u0438 \u041c\u0430\u0440\u043a\u043e\u0432\u0430 \u0432 \u043e\u0446\u0435\u043d\u043a\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0438 \u043f\u043e\u0438\u0441\u043a\u0435 \u0431\u0430\u0433\u043e\u0432. \u0421\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u043d\u0430 Python | ProHoster","og:description":"\u041d\u0430\u043c \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043d\u0430\u0448\u0438\u043c\u0438 \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c Customer Journey Map \u2014 \u043a\u0430\u0440\u0442\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u043e\u043f\u044b\u0442\u0430.","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/kak-my-ispolzuem-tsepi-markova-v-otsenke-reshenij-i-poiske-bagov-so-skriptom-na-python","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:35:27+00:00","article:modified_time":"2019-10-31T19:35:27+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39546","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 02:13:24","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:16:25","updated":"2026-01-24 02:13:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/39546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=39546"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/39546\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/39547"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=39546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=39546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=39546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}