Steam kaupan arvostelujen prosessointi pelimarkkinan toiveiden mittaamiseen
Högander, Lassi (2024)
Högander, Lassi
2024
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2024052816979
https://urn.fi/URN:NBN:fi:amk-2024052816979
Tiivistelmä
Tässä opinnäytetyössä pyrittiin kehittämään järjestelmä, joka tiivistäisi, mitä asiakkaat sanovat videopelistä. Vuosien varrella on huomattu kaksi ongelmaa peliteollisuudessa: trendejä jahdataan liian vahvasti ja mitä suurempi yhtiö tekee videopeliä, sitä vähemmän se kuuntelee asiakkaiden huolia ja mielipiteitä. Ongelmien lähteeksi on usein syytetty pelien tekijöiden puutteellisen kyvyn kuunnella heidän asiakkaitansa. ”Mutta miksi he eivät vain kuuntele enemmän”? Tälle kysymykselle on yksinkertainen vastaus, ei ole aikaa. Jos sadantuhannen (100.000) arvostelun joukosta kymmenentuhatta (10.000) ihmistä valittaa samasta asiasta, kuinka monta näistä arvosteluista pitäisi lukea ennen kuin asialle pitäisi tehdä jotakin? Se ei vaan ole järkevää laittaa ketään lukemaan kaikkia arvosteluja. Ja vaikka joku lukisikin ne, miten arvostelijoiden lukijan kuuluisi raportoida ongelmat? Ja tämä työvuori olisi jokaiselle pelille. Yhtiön näkökulmasta tämä on resurssien tuhlausta, mutta asiakkaan näkökulmasta tämä näyttää loukkaukselle.
Tässä työssä suunniteltiin, rakennettiin ja esiteltiin verkkopalvelu, josta videopelimarkkinoita tutkiva henkilö voisi saada Valve-korporaation Steam-kaupan verkkokauppapaikan arvosteluihin perustuvaa dataa. Työssä käytettiin git-versionhallintaa ohjelmakoodin tallentamiseen, Docker-virtuaalikoneita järjestelmän palveluiden pystytykseen, Flask-kirjastoa palveluiden datan siirtoon, Valven Steamworks API-työkaluja datan keräämiseen, Pandas-kirjastoa datan prosessointiin ja sen muodon hallintaan, MongoDB-tietokantaa datan tallentamiseen ja lopuksi TensorFlow-kirjastoa neuroverkon rakentamiseen. Neuroverkko opetettiin Steam-kaupan datalla.
Työn päätavoite saavutettiin, mutta lopputulokset eivät olleet tarkkoja. Tämä johtuu siitä, että työssä oleva luonnollisen kielen datan esiprosessointiskriptin luominen vei enemmän aikaa kuin muut työn osat, ja siltikään se ei ole riittävän perusteellinen data-aineiston puhdistuksessa. Tästä syystä monet sanat, jotka tarkoittavat samaa asiaa, lasketaan eri sanoina, ja toisinpäin että sanat, jotka kirjoitetaan samalla tavalla, mutta tarkoittavat eri asiaa, lasketaan samoiksi sanoiksi. Tämä hämmentää neuroverkkoa, jolloin sen tarkkuus pienentyy. Tästä kehityksen jatkaminen on kuitenkin helppoa, mutta aikaa kuluttavaa. Tämä datan esiprosessi on avain, jolla saadaan englanninkielisten Steam-kaupan asiakkaiden mieltymykset mitatuksi.
Docker oli ennestään tuttu työkalu palveluiden sekä niiden verkkoasetusten hallinnan, ylläpitoon ja rakentamiseen. Se yksinkertaistaa versiohallintaa sekä sillä voi helposti luoda turvallisen eristyksen mikropalveluiden kesken, sekä emokoneeseen. Dockerin sisäiset toiminnat helpottivat myös palveluiden välisen viestinnän kehitystä. Dockerin käyttö sujuvoitti erityisesti järjestelmän pystyttämistä ja hallintaa. Myös mahdollinen palveluiden skaalaaminen onnistuu Docker-työkalujen avulla.
Tietenkin koodin voisi optimoida vaihtamalla esimerkiksi Pandas-kirjaston uudempaan ja tehokkaampaan Polars-kirjastoon tai vaihtamalla paljon muistia vaativan MongoDB-tietokannan relaatiotietokantaan, kuten MariaDB. Polars-kirjastoon perehdyin vasta työn loppupuolella ja relaatiotietokannan käyttö olisi pidentänyt työnteon aikaa paljon. Mikäli järjestelmää kehittäisi vielä eteenpäin, se voisi olla vahva työkalu antamaan peliyhtiöille tai markkina-analytiikoille silmät ja korvat markkinoilla sanottaviin asioihin sekä toimimaan esimerkiksi pankille todisteena mahdollisena lainan hankintaan tai todisteena asiakkaiden mielipiteistä tietystä osaa peliä. Tällä hetkellä tämä työ on vain esimerkki siitä, mikä olisi mahdollista.
Tässä työssä suunniteltiin, rakennettiin ja esiteltiin verkkopalvelu, josta videopelimarkkinoita tutkiva henkilö voisi saada Valve-korporaation Steam-kaupan verkkokauppapaikan arvosteluihin perustuvaa dataa. Työssä käytettiin git-versionhallintaa ohjelmakoodin tallentamiseen, Docker-virtuaalikoneita järjestelmän palveluiden pystytykseen, Flask-kirjastoa palveluiden datan siirtoon, Valven Steamworks API-työkaluja datan keräämiseen, Pandas-kirjastoa datan prosessointiin ja sen muodon hallintaan, MongoDB-tietokantaa datan tallentamiseen ja lopuksi TensorFlow-kirjastoa neuroverkon rakentamiseen. Neuroverkko opetettiin Steam-kaupan datalla.
Työn päätavoite saavutettiin, mutta lopputulokset eivät olleet tarkkoja. Tämä johtuu siitä, että työssä oleva luonnollisen kielen datan esiprosessointiskriptin luominen vei enemmän aikaa kuin muut työn osat, ja siltikään se ei ole riittävän perusteellinen data-aineiston puhdistuksessa. Tästä syystä monet sanat, jotka tarkoittavat samaa asiaa, lasketaan eri sanoina, ja toisinpäin että sanat, jotka kirjoitetaan samalla tavalla, mutta tarkoittavat eri asiaa, lasketaan samoiksi sanoiksi. Tämä hämmentää neuroverkkoa, jolloin sen tarkkuus pienentyy. Tästä kehityksen jatkaminen on kuitenkin helppoa, mutta aikaa kuluttavaa. Tämä datan esiprosessi on avain, jolla saadaan englanninkielisten Steam-kaupan asiakkaiden mieltymykset mitatuksi.
Docker oli ennestään tuttu työkalu palveluiden sekä niiden verkkoasetusten hallinnan, ylläpitoon ja rakentamiseen. Se yksinkertaistaa versiohallintaa sekä sillä voi helposti luoda turvallisen eristyksen mikropalveluiden kesken, sekä emokoneeseen. Dockerin sisäiset toiminnat helpottivat myös palveluiden välisen viestinnän kehitystä. Dockerin käyttö sujuvoitti erityisesti järjestelmän pystyttämistä ja hallintaa. Myös mahdollinen palveluiden skaalaaminen onnistuu Docker-työkalujen avulla.
Tietenkin koodin voisi optimoida vaihtamalla esimerkiksi Pandas-kirjaston uudempaan ja tehokkaampaan Polars-kirjastoon tai vaihtamalla paljon muistia vaativan MongoDB-tietokannan relaatiotietokantaan, kuten MariaDB. Polars-kirjastoon perehdyin vasta työn loppupuolella ja relaatiotietokannan käyttö olisi pidentänyt työnteon aikaa paljon. Mikäli järjestelmää kehittäisi vielä eteenpäin, se voisi olla vahva työkalu antamaan peliyhtiöille tai markkina-analytiikoille silmät ja korvat markkinoilla sanottaviin asioihin sekä toimimaan esimerkiksi pankille todisteena mahdollisena lainan hankintaan tai todisteena asiakkaiden mielipiteistä tietystä osaa peliä. Tällä hetkellä tämä työ on vain esimerkki siitä, mikä olisi mahdollista.