Robotas

Vakar pradėjome pažintį su vartotojų sekimu internete. Kol kas vis dar neprieisime prie konkrečių kodo pavyzdžių, nes iki galo visko neišsiaiškinus kodas gali likti neaiškus, o jei jau aš juo noriu pasidalinti su kitais, tai tegu jis turės subjektyviai padorų pagrindimą ir paaiškinimą. Šiandien plačiau nagrinėsime svetainės veiksmų saugojimą ir reitingavimą - vis dar formuosime mūsų duomenų struktūrą, kurią vėliau bus galima efektyviai panaudoti vartotojo pomėgių identifikavimui. Taip pat norėčiau nuraminti visus skaitytojus, kad tokios sistemos dažniausiai kuriamos ne kenkti vartotojams, o svetainėms suteikti interaktyvumo ir vartotojo naršymą padaryti kuo labiau naudingą jam pačiam.

Jei robotą jau apsibrėžėme kaip visiškai nuo konkrečios svetainės atskirtą servisą, tai kaip suderinsime jų veiksmus? Mano pasiūlymas ir pasirinkimas - naudoti svetainių profilius arba kitaip aprašus. Aprašas yra naudingas tuo, kad vienas robotas galės dirbti su keliomis svetainėmis vienu metu, taip pat bus galima lengvai naudoti kelių svetainių sukauptus duomenis, kas automatiškai padidina efektyvumą. Iš esmės aprašas gali būti suformuotas labai įvairiais būdais, tačiau paprasčiausia jį padaryti hierarchinės duomenų struktūros principu arba tiesiog elementariu n-mačiu masyvu. Šiame įraše aprašymą mes naudosime svetainės veiksmų reitingavimui, o tolesnėse dalyse jį praplėsime taip, kad jis galėtų jungti svetaines ir pan.

Vakar nagrinėjome vieną elektroninės parduotuvės nuorodą, todėl ir šį kartą likime prie tos pačios parduotuvės. Paprasčiausia ir efektyviausia yra apsirašyti tik tas svetainės vietas, kurios yra realiai naudingos analizuoti - tai prekių katalogas ir prekės. Pagalbos tekstai, užsakymo apmokėjimas ir panašūs puslapiai yra neverti analizės, nes šie veiksmai nenurodo pirkėjo pomėgių ir interesų. O analizuodami vartotojo veiksmus prekių kataloge ir konkrečiose prekėse mes galime gana nesunkiai nustatyti žmogaus mėgstamas prekes ir net jį dominantį kainų spektrą ar pan. Taigi mūsų testinėje parduotuvėje verta sukurti visų esančių kategorijų ir kainų grupių sąrašus ir juos patalpinti į svetainės aprašą roboto sistemoje.

Aprašo naudojimas mums padės susikurti jau anksčiau minėtą svetainės vietos objekto aprašą. Kaip tai padaroma? Susiejant vartotojo naršomą nuorodą ar atliekamą veiksmą su aprašo dalimis arba tiesiog sudėliojant žymas (angl. tags). Nuorodą http://www.manoparduotuve.lt/index.php?action=category&cat_id=41242 pažymime kaip „kategorija.41242“, o http://www.manoparduotuve.lt/index.php?action=product&cat_id=143 - su „kaina.>100“ ir „kategorija.43565“ žymėmis. Matome, kad antroji nuoroda savyje talpina ne tik produkto informaciją, bet ir loginį sąryšį su kategorija. Mums toks susižymėjimas naudingas tuo, kad norėdami nuspręsti kokio tipo prekės patinka vartotojui mes žiūrėsime ne į lankytas kategorijas, o į visus veiksmus, kurie turi kategorijų žymas.

Toks požymių žymėjimas yra šiek tiek neoptimalus - juk vienas požymis yra vertingesnis už kitą. Siekdami įvesti šiek tiek tvarkos ir efektyvumo, mes suteiksime sąryšiui „svorio“ vertę - kuo didesnė svorio reikšmė, tuo šis sąryšis yra vertingesnis. Vartotojui peržiūrint prekę kategorija yra svarbi, tačiau ne tokia svarbi kaip pati prekės informacija, todėl kategorijos žymai suteikime mažesnę „svorio“ reikšmę nei prekės kainos požymiui. Paprasčiausia „svoriui“ naudoti reikšmes nuo 0 iki 1, kur 1 žymėtų maksimalų atitikimą, o 0 - visišką neatitikimą (nors 0 mes niekada nenaudosime, nes toks požymis yra vertingas tiek pat, kiek ir požymio nebuvimas). Žinoma, tokiam žymėjimui reikia nusistatyti savo vertas įvertinus kiekvieno požymio svarbą jūsų svetainei - laisvė jūsų vaizduotei.

Deja, bet ir požymių „svorio“ pridėjimas nėra efektyvus, nes vienos aplankytos puslapio vietos yra svarbesnės už kitas - nupirkta prekė pasako žymiai daugiau informacijos apie vartotoją, nei jo naršymas. Naršoma yra daug, o nusiperkama vis tiek tik tai, kas iš tikrųjų domina. Todėl svetainės aprašyme sukursime ir specialias konstantas žyminčias svetainės vietų vertę - prekės peržiūrėjimas vertinamas mažiau nei prekės įsidėjimas į krepšelį, kuris tuo tarpu yra vertinamas mažiau nei prekės įsigijimas - tas pats požymis bus skirtingų „svorių“. Akivaizdu, kad atsiranda gana daug niuansų, nes reikia iš anksto numatyti kas yra vertinga, o kas yra ne, tačiau visus veiksmus žymint vienodai bus sunkiau atsirinkti, kurie yra naudingi, o kurie - ne.

Tačiau vertėtų nepamiršti, kad teisingas išvadas galime padaryti tik surinkę daug (labai daug) duomenų, taigi jei vartotojas aplanko vos kelis puslapius per dieną, tai teisingai nuspėti jo norus bus pernelyg sudėtinga. Kaip duomenis apdoroti neprarandant efektyvumo? Būtina nusistatyti ribą, ties kuria vartotojo veikla svetainėje gali būti efektyviai apdorojama. Ribai skaičiuoti mums pravers ir anksčiau apibrėžtas „svoris“ - sudėkime visus vartotojo veiklos svorius ir jei gautoji reikšmė yra didesnė arba lygi nustatytajai - galime pradėti analizę. Kadangi kai kurie veiksmai turės kelis požymis, tai ir jų turima didesnė informacija bus automatiškai įvertinama - juk kiekvienas požymis turės po „svorį“, kuriuos sudėjus gausime didesnę vertę, nei kad vieną požymį teturintis veiksmas.

Šiame straipsnyje pradėjome analizuoti jau nebe nuorodas, o vartotojo veiksmus - mūsų robotas žymėsis ne nuorodas, kurias aplanko vartotojas, o veiksmus kuriuos jis atlieka - peržiūri prekę, ją įsigyja ir t.t. Tokia informacija yra žymiai naudingesnė ir plačiau panaudojama nes kartu su „svorio“ koeficientais ji aprašo veiksmus, kuriuos atlieka vartotojas ir jų loginę reikšmę nustatant vartotojo poreikius. Tolesniuose įrašuose pabandysime sudaryti keletą pavyzdinių duomenų grupių ir atlikti jų analizę, o užbaigsiu pažymėdamas, kad ši straipsnių serija yra daugiau teorino pobūdžio ir aprašytas būdas tikriausiai nebus pats efektyviausias.

RSS Patiko ką perskaitei? Užsiprenumeruok RSS srautą ir visada gauk mano naujausius įrašus pats pirmas! Tai ne tik, kad yra be galo patogu, tačiau ir leis tau nepraleisti nei vieno mano įrašo. Jei kiltų problemų - rašyk.

--!>