• Ei tuloksia

Chatbot: Keskustelevat käyttöliittymät

N/A
N/A
Info
Lataa
Protected

Academic year: 2023

Jaa "Chatbot: Keskustelevat käyttöliittymät"

Copied!
34
0
0

Kokoteksti

(1)

Chatbot: Keskustelevat käyttöliittymät

Andrei Oksanen

Opinnäytetyö

Tietojenkäsittelyn koulutusoh-

(2)

Tiivistelmä

Tekijä(t)

Andrei Oksanen Koulutusohjelma

Tietojenkäsittelyn koulutusohjelma Raportin/Opinnäytetyön nimi Chatbot: Keskustelevat käyttöliittymät

Sivu- ja liitesi- vumäärä 27 + 4

Tämä dokumentti on opinnäytetyöksi laadittu selontekoraportti keskustelurobottien (jäljempänä chatbot) sekä muunlaisten keskustelevien käyttöliittymien suunnittelusta, rakentamisesta ja hyödyntämisestä osana nykyaikaisten verkkosivustojen ja -palveluiden toiminnallisuuksia. Tyypillisesti chatbot on siis tietylle yksittäiselle verkkosivustolle

rakennettu toiminnallisuus, joka pyrkii esittelemään verkkosivuston tarjonnan selailijalleen.

Chatbotin avulla pystytään myös simuloimaan fyysistä asiakaspalvelutilannetta (esimerkiksi myymälässä asioiminen) vastaava tilanne virtuaalisesti.

Virtuaalisessa asiakaspalvelutilanteessa chatbotin käyttäjä on sen yrityksen asiakas, jonka verkkosivustolla hän vierailee ja kyseisen yrityksen työntekijä palvelee häntä hänen

näyttöruudulleen ilmestyvän keskusteluikkunan välityksellä. Fyysisen ja virtuaalisen asiakaspalvelutilanteen ainoa ero on siis se, että fyysisessä tilanteessa osapuolet kommunikoivat keskenään kasvotusten ja virtuaalisessa puolestaan yhteisen

keskusteluikkunan kautta sähköisesti näkemättä toisiaan. Tästä huolimatta tilanteen kulku ja osapuolten käyttäytymismallit ovat molemmissa tapauksissa täysin samanlaiset.

Niiden molempien aikana esitetään siis täysin samanlaiset kysymykset ja niin edelleen.

Chatbotteja voidaan käyttää myös esimerkiksi yrityksen sisäisten liiketoimintaprosessien tehostamiseen ja automatisointiin. Yrityksen sisäinen chatbot voidaan nimittäin esimerkiksi ohjelmoida hakemaan tiettyjä ennalta määritettyjä yrityksen sisäisiä tietoja tiettyjen

käskyjen, komentojen, hakusanojen tai muiden vastaavien määritysten perusteella.

Tällaisia tietoja voivat olla esimerkiksi ruoka- ja muut listattavissa olevat tiedot.

Toteutin chatbotin Googlen omistamalla Dialogflow-alustalla. Opinnäytetyön lopussa on tarkat ohjeet, miten lukija itse voi luoda suomenkielisen chatbotin. Opinnäytetyö sisältää myös tarkat ohjeet, miten rajapinnan yhdistäminen tapahtuu Google Cloud Functions ym- päristössä, johon olen ohjelmoinut Node.js:n avulla yhteyden FireBase tietokantaan.

(3)

Sisällys

1 Johdanto ... 1

2 Asiakaspalvelun automatisointi ... 2

2.1 Chatbot ... 6

2.2 Tekoäly AI ... 7

2.3 Koneoppiminen ... 10

2.4 Chatbot historiaa ... 11

2.5 Chatbot nykypäivänä... 12

3 Chatbot IT-tuessa ... 13

4 Kehitysympäristöt ... 14

4.1 Alustat ... 15

4.2 Dialogflow ... 15

4.3 Suomen kielen tuki ... 16

5 Luonnollisen kielen prosessointi chatboteissa ... 16

6 Dialogflow käyttöönotto ... 19

6.1 Intent luonti ... 21

6.2 Action and Parameters ... 22

6.3 Agentit ... 23

6.4 Chatbotin ohjelmointi... 23

6.5 Node.js ohjelmointi ... 24

7 Pilvipalvelut ... 24

7.1 Firebase ... 25

7.2 Firebase luonti ... 25

7.3 Chatbot yhdistäminen Firebase-tietokantaan ... 25

8 Yhteenveto ... 26

9 Liite ... 27

Lähteet ... 29

(4)

1 Johdanto

Keskustelevat käyttöliittymät ovat yleistyneet viime vuosina huomattavasti. Erilaiset sivus- tot tarjoavat asiakkaille verkkopalveluiden kautta erilaisia toimivia automatisoituja asiakas- palvelijoita chattibotti muodossa. Chatbotit ovat tekstin tai puheen välityksellä tapahtuva keskustelu, jossa ohjelma vastaa ihmiskäyttäjän antamaan syötteeseen jonkinlaisen vas- tauksen. Chattibottien mahdolliset käyttötapaukset ovat erittäin laajat ja voivat mahdolli- sesti lähitulevaisuudessa korvata monet asiakaspalvelun toiminnat.

Tekoälyn kehittyessä kiihtyvää tahtia yhä suuremman osan tyypillisistä asiakaspalveluti- lanteista pystyvät hoitamaan tekstipohjaiset chatbotit. Jotka voivat korvata mahdollisesti lähitulevaisuudessa myös yhden osan it-tuesta. Nykypäivän tekstipohjaiset chatbotit toimi- vat perustason asiakaspalvelijoina yrityksien nettisivuilla ja toimivat ympyrävuorokauden.

Toimiva chatbot on hyvä hanke yritykselle sillä se voi säästää asiakaspalvelun kuluissa ja samalla luo nopean vuorovaikutuksen asiakkaaseen. Tämä myös vähentää mahdollista taakkaa puhelinlinjalla olevilta asiakaspalvelijoilta ja samalla vähentää yrityksen kuluja.

Reaaliaikainen palvelutilanne voi parhaimmillaan estää asiakkaan siirtymistä kilpailijan si- vustolle ja vaikuttaa oleellisesti asiakkaan ostopäätökseen. Kun sinulla on mahdollisuus estää asiakkaan turha harhailu sivustolla ja opastaa hänet oikeaan paikkaan, voi sivus- tolla vierailijasta tulla vierailijan sijaan potentiaalinen asiakas. Palvelutilanteen syntyminen edesauttaa asiakkaan ostopäätöstä ja sinulla on mahdollisuus saada myös lisäkauppaa hänen kanssaan. (Sareskivi 2014)

Ihmisten välinen viestintä on muuttunut viime vuosien aikana ja vastauksia halutaan saada nopeasti. Tekoälypohjaisen asiakaspalvelun avulla pyritään nopeuttamaan yksin- kertaisia rutiinitason asiakaspalvelutilanteita ja vapauttamaan asiakaspalvelijoiden resurs- seja muihin tehtäviin. Samalla pystytään säästämään asiakaspalveluun kohdistuviin kului- hin. Yritys pystyy luomaan laadukkaan asiakaspalvelun käyttäen nykyajan digitaalisia työ- kaluja. Asiakkaiden pyynnöt, kysymykset ja muut tarpeet saadaan ratkaistua kustannuste- hokkaasti ja nopeasti.

Opinnäytetyöni käsitellee automatisoitua asiakaspalvelua eli chatbot-sovellusta, joka on rakennettu Google Dialogflow-alustalle. Lukijalle esitellään ensin chatbotin liittyvät keskei- set avainkäsitteet, kuten automatisoitu asiakaspalvelu, tekoäly, luonnollinen kieli ja alusta missä itse chatbot voidaan rakentaa.

(5)

2 Asiakaspalvelun automatisointi

Käytännössä erilaisia chattibotteja on tyypillisimmin luotu digitalisoituvalla palvelualalla te- hostamaan asiakaspalvelua eli automatisoimaan asiakaspalvelua. Ne kykenevät teke- mään ihmisen puolesta asioita, jotka olisivat työläitä tai epämukavia tehdä itse. Tätä kut- sutaan asiakaspalvelun automatisoinniksi. Asiakaspalvelijoiden ei tarvitse enää vastata lukemattomia kertoja asiakkaiden jatkuvasti toistuviin samoihin kysymyksiin vaikkapa au- kioloajoista. Asiakas saa tiedon nopeasti chattibotista tarvitsemaan ajankohtaan, eikä hä- nen tarvitse soittaa ravintolaan tai etsiä tietoja ravintolan verkkosivuilta. Ravintola puoles- taan säästää resursseja ja aikaa, kun henkilöstön tarve vastata puhelinsoittoihin vähenee huomattavasti. Lisäksi hyvin toimiessaan chatbot parantaa asiakaskokemusta. Ravintola- nasiakas saapuu ravintolan verkkosivulle ja hän klikkaa botin kuvaketta, jolloin aukeaa keskustelunäkymä. Näkymä on melko minimalistinen ja sisältää keskusteluruudun lisäksi vain palautepainikkeen.

Chatbot tervehtii käyttäjää ja esittelee itsensä ja toimintonsa pikaisesti. Botin on kyettävä vastaamaan yksinkertaisiin ravintolan asiakaspalveluun liittyviin kysymyksiin. Chatbotit ovat ohjelmoituja, interaktiivisia ja osittain keskustelevia viestintäjärjestelmiä,

jotka käyttävät nykyisellään pääosin tekstimuotoista kieltä ja voivat keskustella kysymys- vastaus muotoisesti vaikkapa Skypessä, Messengerissä tai muussa chat palvelussa ih- misten kanssa. (Collin 2017)

Bottien päätarkoitus on tarjota asiakkaille vuorovaikutuksellisen tuntuista asiakaspalvelua, jonka avulla voidaan vastata asiakkaiden kysymyksiin ja huoliin perinteisiä keinoja, kuten usein kysytyt kysymykset palstoja paremmin.

Vaikka chatbot on terminä suhteellisen tuore, jonkinlaisia chatbotteja on ollut olemassa jo 60-luvulta lähtien. Tuolloin kehitettiin ensimmäiset luonnollista kieltä ymmärtävät tieto- koneohjelmat, kuten luonnollisen kielen tietokoneohjelma Eliza, josta kerrotaan myöhem- min opinnäytetyössä lisää.

Jos kuluttajilta olisi kysytty noin kymmenen vuotta sitten, miten he käsittävät chatbotit, olisi vastaus saattanut olla hyvin erilainen kuin tänä päivänä. Nyt chattiboteista on tullut tuttuja, sillä niihin törmää usealla eri alustalla, useassa eri tehtävässä. Tyypillisimpiä ne ovat tois- taiseksi sähköisessä asiakaspalvelussa, joskin botteja käytetään yhä enenevässä määrin myös erilaisina virtuaaliassistentteina.

(6)

Käytännössä erilaisia chattibotteja on tyypillisimmin luotu digitalisoituvalla palvelualalla te- hostamaan asiakaspalvelua eli automatisoimaan asiakaspalvelua. Ne kykenevät teke- mään ihmisen puolesta asioita, jotka olisivat työläitä tai epämukavia tehdä itse. Tätä kut- sutaan asiakaspalvelun automatisoinniksi. Asiakaspalvelijoiden ei tarvitse enää vastata lukemattomia kertoja asiakkaiden jatkuvasti toistuviin samoihin kysymyksiin vaikkapa au- kioloajoista. Chatboteilla onkin ihmistyövoimaan verrattuna moninkertainen kyky käydä samanaikaisia keskusteluita asiakkaiden kanssa. Perinteiset chatbotit eivät oikeastaan eroa tietojärjestelmästä. Niiden käyttöliittymänä toimii tekstuaalinen syötekenttä ja vas- taukset tulevat tekstuaalisina viesteinä. (Collin 2017.)

Pääpiirteittäin chatbotit toimivat niin, että keskustelun aloittaa käyttäjän eli esimerkiksi asiakkaan esittämä kysymys tai kommentti eli syöte esimerkiksi verkkosivuilla, sosiaali- sessa mediassa tai älypuhelimessa. Aloitteen jälkeen chatbot reagoi syötteeseen esittä- mällä vastauksen, kommentin tai tarkentavan kysymyksen. Botti hyödyntää omaa tieto- kantaansa vastauksiin. Tietokanta sisältää mallivastauksia, joista sovitetaan käyttäjälle sopivia vastauksia.

Chatbotin viisi yleisintä käyttökohdetta ovat:

1. Vastauksien antaminen reaaliajassa yleisimpiin kysymyksiin, joihin ohjelmoidaan vastaus etukäteen.

2. Pienet tehtävät yksikertaisella logiikalla, esimerkiksi varausten vahvistaminen tai pizzan tilaaminen.

3. Viihdyttäjä, joka juttukaverin tapaisesti vastaa ja kommentoi kysymyksiä.

4. Suhteiden rakentaja ja ylläpitäjä, joka luo brändiuskollisuutta esimerkiksi muistut- tamalla lapsia pesemään hampaansa.

5. Asiantuntija, joka vastaa yleisimpiin kysymyksiin (Hupli 2018.)

(7)

Suomessa Yksi isoimmista chatbot kokeiluista tehtiin Kela.fi-sivustolla, jossa käytettiin IBM:n Watsonia eli chatbot alustaa. Vuonna 2017 tuli voimaan uusi laki asumistuesta ja Kela tiesi, että opiskelijoilla olisi paljon kysymyksiä lakimuutoksesta. Siksi Kelassa arvel- tiin, että muutos voisi aiheuttaa puhelinpalveluun ison soittopiikin. (Alykassuomi.fi 2017)

Kuva 1. Kela:n korona-chattirobotti.

Chatbotin tarkoituksena oli ohjata ja neuvoa kysyjää. Koska puhelinpalvelu oli jo ennes- tään kuormittunut, tueksi kaivattiin uutta palvelua, joka voisi kantaa osan taakasta ja hel- pottaa palvelun paineita. Apuun valjastettiin Watson. Kiitosta chattirobotti on kerännyt muun muassa helppokäyttöisyydestä, vastauksien selkeydestä ja nopeudesta. Chattiro- botti myös palvelee silloin, kuin perinteinen asiakaspalvelu ei ole saatavilla. (Alykas- suomi.fi 2017)

Yksi ensimmäisistä suomessa toimivista chattiboteista on kotipizzan ja OP Ryhmän kanssa toteutettu yhteistyö vuonna 2017.

(8)

Kuva 2. Koti-pizzan Kotibotti.

Kotipizzan uusi KotiBotti-chatbot toimii Facebook Messengerissä. Sen kautta voi tilata ja maksaa Kotipizzan tuotteita mobiilisti koko maassa. KotiBotti on ensimmäinen pikaviesti- välitteinen maksusovellus Suomessa ja yksi ensimmäisistä Euroopassa. Kotipizza toteut- taa chatbotin yhteistyössä OP Ryhmän kehittämän Pivon kanssa. (Sttinfo 2017)

Kuluttajat käyttävät sosiaalista mediaa ja tekevät ostoksia yhä enemmän mobiilisti. Koti- Botti tarjoaa miellyttävän ja helpon käyttäjäkokemuksen, kun kasvanut mobiilikäyttö yhdis- tyy ostamiseen ja tekoälyn tuomiin mahdollisuuksiin. Pikaviestivälitteinen ostaminen yleis- tyy ja kehittyy jatkossa yhä älykkäämmäksi, sanoo Kotipizzan digitaalisten ja tietoratkaisu- jen asiantuntija -Johanna Kuosmanen. (Sttinfo 2017)

Google Assistant toimii myös hyvänä esimerkkinä toimivista Chattiboteista. Julkaistu vuonna 2016 ja toimii myös ääni pohjaisena avustajana tekstin lisäksi. Google Assistant toimii Android puhelimissa ja Google Home älykaijutimissa.

(9)

Kuva 3. Google assistant.

Digiavustajille ominaiseen tapaan Google Assistant osaa vastata käyttäjän esittämiin ky- symyksiin, mutta se ymmärtää myös jatkokysymyksiä ja pystyy näin ikään kuin käymään keskustelua käyttäjän kanssa. Käyttäjä voi esimerkiksi kysyä tietyn elokuvan ohjaajaa ja vastauksen saatuaan kysyä ”mitä muita elokuvia hän on tehnyt”, mainitsematta ohjaajaa uudelleen nimeltä. (Laakso 2016)

2.1 Chatbot

Yleisesti chatbot tarkoitetaan mitä tahansa tietokoneohjelmia, jotka suorittavat automati- soituja tehtäviä. Chatbotti tekee tätä erilaisilla chatti alustoilla ja sen tehtävänä on nimen- omaan simuloida ihmisten välistä keskustelua. Liiketoiminnassa chatbotin tehtävänä on yleensä toimia virtuaalisena asiakaspalvelijana, joka jaksaa palvella 24/7. (Hupli 2018)

(10)

Kuva 4. Chatbot toimintaympäristö. (Rizvi)

Chatbotit eivät ole ihmisiä, mutta eivät myöskään täysin koneita. Ne ovat tekoälyä ja kone- oppimista hyödyntäviä tietokoneohjelmia, jotka voivat viestiä luonnollisella kielellä ja mat- kia ihmiselle tyypillistä vuorovaikutusta.

Chatbotit voidaan jakaa kolmeen kategoriaan: käsikirjoitetut, älykkäät ja hybridi-chatbotit.

Käsikirjoitettu chatbot on näistä kaikkein yksinkertaisin. Sen toiminta perustuu sääntöpoh- jaisiin ja etukäteen ohjelmoituihin dialogeihin. Käyttäjän pitää valita valmiiksi annetuista kysymyksistä ja vastaukset tulevat suoraan dialogeista. Älykäs chatbot tarjoaa käyttäjälle mahdollisuuden kirjoittaa haluamansa kysymykset ja vastaukset. Vastausvaihtoehdot ovat yleensä valmiiksi kirjoitetut, mutta älykäs chatbot pystyy luontevampaan keskusteluun kuin käsikirjoitettu. Hybridi-chatbot on älykkäämpi kuin älykäs chatbot. Se käyttää hyväk- seen ennalta määriteltyjä polkuja, mutta osaa myös tulkita uutta tekstiä. Ominaisuuk- siensa vuoksi se pystyy kaikista luonnollisimpaan keskusteluun käyttäjän kanssa. Sekä älykäs että hybridi-chatbot käyttävät toiminnassaan tekoälyä (AI). Useat asiakaspalve- lussa käytetyt chatbotit käyttävät hyödykseen luonnollisen kielen käsittelyä (NLP). (Hupli 2018.)

2.2 Tekoäly AI

Tekoälyn viime vuosien nopea kehitys ja sen vaikutus yhteiskuntaan on ollut ajankohtai- nen aihe uutisoinnissa. Viime aikojen uutisoinnissa tekoälyyn liitettyyn ”ylistykseen” tulisi kuitenkin suhtautua kriittisesti ja varauksella. Jopa suuret teknologiajätit ovat joutuneet korjaamaan ja laskemaan aiempia korkeita odotuksia tekoälyyn liittyen.

(11)

Yksi sovellutusalueista, jonka kautta useat yritykset ovat alkaneet hyödyntämään teko- älyä, on yritysten asiakaspalvelu. Tekoälypohjaisen asiakaspalvelun ja älykkäiden chatbo- tien avulla pyritään vapauttamaan ihmisasiakaspalvelijoiden resursseja. Chatbot-teknolo- gian tarkoituksena on helpottaa asiakaspalvelussa työskentelevien kiirettä ja muuttaa hei- dän työnkuvaansa siten, että rutiininomaiset työtehtävät vähenevät käyttäen tekoälyä.

Tekoälyteknologian kehityksen myötä chatbotti kehitykseen on otettu erilaisia tekoälyä käyttäviä sovelluksia, joiden myötä chatbotin toiminnasta on mahdollista tehdä vuorovai- kutteisempaa. Tekoäly on kattotermi, joka sisältää muun muassa koneoppimisen, sy- väoppimisen ja neuroverkkojen hyödyntämisen.

Tekoälystä käytetään usein lyhennettä AI, joka tulee englanninkielisestä nimityksestä Arti- ficial Intelligence. Suomenkielisessä keskustelussa käytetään myös termejä keinoäly, ko- neäly, koneoppiminen ja syväoppiminen. Yleisessä keskustelussa näitä termejä käytetään jonkin verran myös epäloogisesti tai harhaanjohtavasti. Ei ole olemassa yhtä tekoälytek- nologiaa, vaan tekoäly koostuu useasta eri menetelmästä ja tekniikasta, joista pitää aina pystyä valitsemaan paras ja tarkoituksenmukaisin käsillä olevaan bisnesongelmaan.

Älykkäiden ja hybridi-chatbotien toiminnassa apuna toimii tekoäly (AI). Fiksuimmat chat- botit hyötyvät myös koneoppimisesta, mikä tässä kontekstissa tarkoittaa sitä, että chat- botti oppii koko ajan lisää ihmisten välisestä vuorovaikutuksesta. Oma roolinsa on myös NLP:llä, millä ei viitata soveltavaan psykologiaan, vaan termiin natural language proces- sing. NLP:ssä kyse on chatbotin kyvystä analysoida ihmisten luonnollista kieltä kerää- mänsä teksti- ja puhedatan pohjalta. (Hupli 2018)

Tekoäly ei ole yksi kokonaisuus vaan kokoelma erilaisia teknologioita ja sovelluksia. Sen vuoksi kokonaisvaltaista ja selkeää jäsennystä aiheesta ei ole juurikaan saatavissa. Erilai- sia tarpeita varten on kuitenkin tehty jäsennyksiä, jotka ovat hyödyllisiä aihepiirin ymmär- tämiseksi. (Seppälä 2018)

Tekoälyn kehitykseen vaikuttanut tekijä liittyy ”teoriasta käytäntöön” ajatukseen. Tämä nä- kyy esimerkiksi siten, että tiettyjen ohjelmistokirjastojen käyttöön liittyvien internet-hakujen määrä on kasvanut ajan myötä. Myös internetin, avoimen lähdekoodin ja -alustojen myötä ideoiden jakamisesta on tullut hyvin nopeaa. Koulutus ja kurssimateriaalia on saatavilla internetistä edullisesti tai jopa ilmaiseksi. Nämä kaikki ilmiöt yhdessä nopeuttavat tekoälyn kehittymistä ja käyttöönottoa.

(12)

Ihminen voittaa yleisissä kysymyksissä tekoälyn vielä pitkään, mutta tietyillä kapeilla aihe- alueilla tekoälyn suorituskyky on jo saavuttanut tai ylittänyt ihmisen suorituskyvyn. Usein tekoälyn suorituskykyä verrataan ihmiseen mittaamalla tekoälyn kykyä pelata pelejä. Pelit ovat helposti hallittava, rajattu ympäristö testien suorittamiseen.

(Ailisto, Heikkilä, Helakoski, Neuvonen, Seppälä 2018)

Tekoäly yhdistää huomattavan monenlaisia alueita, kuten oppiminen ja havaitseminen spesifisempiin tehtäviin, kuten peleihin, matemaattisten lauseiden esittelyyn ja sairauksien diagnosointiin, joita pidetään merkityksellisinä mihin tahansa älylliseen tehtävään.

Mahdollisuus kouluttaa tietokonetta vuoropuhelun luomiseksi ihmisten kanssa juontaa juu- rensa 1950-luvulle Alan Turingin kanssa. Esseessään "Computing Machinery and Intelli- gence" Turing ehdotti testiä, joka koostui ohjelmasta, joka kehitti tekstiviestikeskustelun kyselijän kanssa viiden minuutin ajan. Henkilön tulisi sitten arvata puhuiko hän ihmiselle vai tietokoneelle ja jos kone huijaisi kyselylaitetta 30% ajasta niin ohjelma läpäisi testin.

Keinotekoisen älykkyyden (AI) tutkijat ovat vuosikymmenien ajan pyrkineet antamaan tie- tokoneille mahdollisuuden suorittaa monenlaisia tehtäviä, jotka sen ajateltiin olevan va- rattu ihmisille. Viime vuosina tekniikka on siirtynyt tieteiskirjallisuudesta tosielämään: teko- älyohjelmat voivat pelata pelejä, tunnistaa kasvot ja puheen, oppia ja tehdä tietoon perus- tuvia päätöksiä. (Ailisto, Heikkilä, Helakoski, Neuvonen, Seppälä 2018)

Niin hämmästyttävää kuin tekoälyohjelmatkin saattavat olla (ja mahdollisesti häiritseviä elokuvan kävijöille, jotka kärsivät ajoittain painajaisista robottien itsetietoisuudesta ja pa- hantahtoisuudesta), tekoälyn takana olevilla kognitiivisilla tekniikoilla on jo todellinen vai- kutus monien ihmisten elämään ja työhön. Tekoälyyn perustuvat tekniikat sisältävät kone- oppimisen, tietokonenäön, puheen tunnistamisen, luonnollisen kielenkäsittelyn ja robotii- kan; 1 ne ovat tehokkaita, skaalautuvia ja parantavia eksponentiaalisella nopeudella. Ke- hittäjät pyrkivät toteuttamaan tekoälyratkaisuja kaikessa, itse ajavista autoista itsenäisten droonien parviin, älykkäistä roboteista hämmästyttävän tarkkaan puheen käännökseen.

(Eggers, Schatsky, Viechnicki 2017)

Ajan myötä tekoäly synnyttää massiivisia muutoksia julkisella sektorilla muuttamalla sitä, miten valtion työntekijät suorittavat työnsä. Se todennäköisesti eliminoi joitain työpaikkoja, johtaa lukemattomien uusiin uudistuksiin ja luo kokonaan uusia ammatteja. Analyysimme mukaan lähitulevaisuudessa suuret valtion työpaikkojen menetykset ovat epätodennäköi-

(13)

mahdollistaa työntekijöitä keskittymään muihin tärkeisiin asioihin (Eggers, Schatsky, Viechnicki 2017)

2.3 Koneoppiminen

Koneoppiminen (machine learning) on tietokonetekniikan osa-alue, jossa yleensä käyte- tään tilastotieteen menetelmiä, jotka antavat tietokoneille kyvyn oppia datasta (s.o. paran- taa suorituskykyään tietyn tehtävän suorittamisessa) ilman eksplisiittistä ohjelmointia. Ko- neoppimisen menetelmiä käytetään ennustamaan ja luokittelemaan ilmiöiden tai toimien lopputulemia (Bishop, 2006). Nämä menetelmät eivät edellytä ilmiön tuntemista ja kuvaa- mista matemaattisella mallilla kuten esimerkiksi perinteisissä fysiikan malleissa. Koneop- piminen sopii siis tilanteisiin, joissa ilmiötä ei ymmärretä tai sen mallintaminen nähdään liian työlääksi, mutta ilmiöstä on saatavilla riittävästi dataa, jotta käytettävä menetelmä voi- daan opettaa. Monet koneoppimisen tekniikat ovat läheistä sukua hahmontunnistukselle (pattern recognition). (Ailisto, Heikkilä, Helakoski, Neuvonen, Seppälä 2018)

Koneoppiminen on yksi tekoälyn osa-alue edustaen datapohjaisia menetelmiä: Muita te- koälyn osa-alueita ovat esim. mallipohjaiset menetelmät sekä laajemmin erikseen robo- tiikka, konenäkö ja luonnollisen kielen käsittely (NLP). (Kääriäinen, Aihkisalo, Halen, Jurmu, Matinmikko, Seppälä, Tihinen 2018)

Luonollinen kieli (NLP) on osa koneoppimista. Viime vuosina sen tarkkuutta on kyetty pa- rantamaan syväoppimisen menetelmillä. Luonnollisen kielen opettaminen on perinteisesti tehty ohjatun opettamisen keinoin, minkä vuoksi koneen kielen opettaminen vaatii hyvin paljon dataa. Kun kone tunnistaa jokaisen sanan yksittäisenä tapahtumana, se ei ym- märrä sanojen välisiä korrelaatioita. Esimerkiksi synonyymien löytäminen tai samaan ka- tegoriaan kuuluvien sanojen yhdistäminen on ollut haastavaa. (Kananen, Puolitaival 2019)

Koneoppimisessa järjestelmää opetetaan ensin antamalla sille opetusdataa, jonka avulla algoritmi oppii eli käytännössä säätää algoritmin sisäiset parametrit niin, että se kykenee luokittelemaan opetusdatassa olevat tapaukset (näytteet) mahdollisimman oikein tai teke- mään niiden perusteella mahdollisimman hyvän ennusteen halutusta suureesta. Seuraa- vassa vaiheessa eli käytössä algoritmille annetaan tuntematon näyte, ja algoritmi luokitte- lee sen tai tekee ennusteen halutun suureen arvosta.

(Ailisto, Heikkilä, Helakoski, Neuvonen, Seppälä 2018)

(14)

Koneoppimisen malleja on käytetty apuna päätöksenteossa esimerkiksi johtoryhmätyös- kentelyssä. Tekoälysovellukselta voidaan kysyä esimerkiksi talousdataan liittyviä kysy- myksiä, ja kone tarkastaa, visualisoi ja antaa ennusteita data-analytiikan avulla. Kun teko- äly on opetettu ymmärtämään luonnollista kieltä, voidaan sille esittää kysymyksiä puhu- malla, ja se pystyy antamaan vastauksia ja suosituksia. Tekoäly mahdollistaa faktojen tar- kastuksen nopeasti. Parannettavaa on vielä erityisesti puheen tunnistamisessa ja kielen käsittelyssä. Tekoäly helpottaa suurten aineistojen ja tietomassojen käsittelyssä. Tekoäly nopeuttaa työskentelyä, mutta ei korvaa työntekijöitä – ainoastaan yksittäisiä työtehtäviä.

(Kananen, Puolitaival 2019)

Datan käsittely koneopetuksen opetusvaiheessa on yksi kenties työläimmistä vaiheista kehityksen aikana. Parhaimmillaan opetus on kuitenkin ainutkertainen tapahtuma. Datan laatu on merkittävä asia, joka vaikuttaa tekoälymallin ja siten siitä koostetun järjestelmän toiminnan hyvyyteen; esim. vinoutumat, virheiden korostuminen ja kertautuminen aineis- toja yhdisteltäessä tai koosteita muodostettaessa voivat johtaa vinoutuneisiin ja virheelli- siin tuloksiin. (Kääriäinen, Aihkisalo, Halen, Jurmu, Matinmikko, Seppälä, Tihinen 2018)

Chatbotit oppivat datan avulla. Mitä enemmän korkealaatuista dataa se saa pureskelta- vakseen, sitä paremmin se oppii. Oli kyseessä sitten käsikirjoitettu tai älykäs chatbotti, tu- lee ihmisten kehittää ja opettaa sitä. (Hupli 2018)

2.4 Chatbot historiaa

Bottien kiehtova historia alkoi jo 1950-luvulla kun Alan Turing, brittiläinen tietokone alan tiedemies joka oli selvästi aikansa edellä, alkoi vaivautua ajatuksesta, pystyvätkö koneet ajattelemaan? Vuonna 1950 hän julkaisi arvostetun artikkelinsa 'Computing Machinery and Intelligence', ja siitä seurasi Turing-testi. Hänen työnsä ja tutkimuksensa koko ajatus oli, että myös koneet voivat ajatella ja olla älykkäitä. Hänen mukaansa, jos kone pystyy esiintymään ihmisenä ja koneen käyttäytymisensä vakuuttamaan reaaliaikaisessa keskus- telussa olevan henkilön siitä, että hän on vuorovaikutuksessa ihmisen (ei koneen) kanssa, kone läpäisee Turing-testin.

Ensimmäisen chatbotin julkaistiin vuonna 1966 Joseph Weizenbaumin toimesta ja hän ni- mesi chatbotin nimeksi Eliza. Ohjelma kykeni saavuttamaan illuusion älykkyydestä tunnis- tamalla käyttäjän syötteestä avainsanoja ja -fraaseja ja vastaamalla näiden mukaisesti käyttämällä ennalta määritettyjä vastauksia. Esimerkiksi, jos ihminen sanoo "Äitini kokkaa hyvää ruokaa". ELIZA otti sanan ”äiti” ja vastasi kysymällä avoimen kysymyksen ”Kerro

(15)

Seuraava huomionarvoinen chatbot tuli vuonna 1972 Stanfordin tutkijalta Kenneth Colby, joka loi toisen ohjelman nimeltään Parry. Ohjelma yritti mallintaa paranoidisen skitsofre- nian käyttäytymistä.

Vuoden kuluttua tammikuussa 1973 tietojenkäsittelytieteen edelläkävijä Vint Cerf päätti mielenosoituksena kansainvälisessä tietokonekonferenssissa viedä botit loogiseen johto- päätökseen: käyttäen ARPANETia hän aloitti keskustelun ELIZAn ja PARRYn välillä.

Keskustelu kahden välisen botin kanssa näytti tältä:

ELIZA: Hyvää iltaa. Kerro minulle ongelmasi. Lopeta syöttö pisteellä tai kysymysmerkillä.

PARRY: Ihmiset joutuvat toisinaan hermoilleni.

ELIZA: En ole varma, että ymmärrän sinut täysin.

PARRY: Sinun tulisi kiinnittää enemmän huomiota.

ELIZA: Oletetaan, että sinun pitäisi kiinnittää enemmän huomiota.

PARRY: Sinulla on oikeus omaan mielipiteeseesi.

ELIZA: Mikä ajattelee, että minulla on oikeus omaan mielipiteeseeni?

PARRY: Minua häiritsee vain olla lähellä ihmisiä yleensä.

ELIZA: Jatka.

(Garber 2014)

2.5 Chatbot nykypäivänä

Viime vuosien aikana chatbotit ovatkin tulleet tutuiksi monille viimeistään mobiililaitteisiin sisällytettyjen virtuaaliassistanttien muodossa. Esimerkkejä näistä ovat muun muassa Ap- plen Siri, Google Now, Amazonin Alexa, Microsoftin Cortana sekä Google Assistant.

Nämä virtuaaliassistentit käyttävät hyväkseen luonnollisen kielen käsittelyä sekä puheen- tunnistusta ja yhdistävät web-palveluihin vastatakseen käyttäjien kysymyksiin ja täyttääk- seen heidän tarpeensa.

Markkinoilta löytyy jo valmiita chatbot rakentamiseen kehitettyjä eri tasoisia alustoja.

Alustat ovat erilaisia sen mukaan, minkä tasoinen chattibotti käyttöön valitaan (käsikirjoi- tettu, älykäs vai hybridi-chattibotti). Merkitystä on myös sillä, haluatko chattibotin esimer- kiksi Facebookiin vai suoraan omille nettisivuillesi. Automaation vaikutuksista terveyden- huollossa on puhuttu jonkin aikaa. Näillä toiminnoilla haluttaisiin päästä eroon tehottomuu- desta ja automatisoida tehtäviä, jotka sopivat sähköiselle palvelulle. Myös pitkien etäisyyk- sien vuoksi on hyvä, että terveydenhuoltoon kehitellään palveluita, jotka voidaan helposti

(16)

3 Chatbot IT-tuessa

Esimerkkinä voidaan tuoda IT-tuki ja sen laaja mahdollisuus tuoda chatbot palvelut helpot- taakseen IT-tuki palvelun taakkaa. Itse olen työskennellyt CGI Service Deskissä ja huo- mannut, että asiakaspalveluun tulee turhan monta soittoa saman tyyppisistä ongelmista.

Nämä ongelmat voidaan helposti korjata, luomalla automatisoitu chatbot vastaajaksi eikä asiakkaan tarvitse tuhlata omaa aikaa asioitten selvittämiseen, tai jonottamiseen. Automa- tisoitu chatbot mahdollistaa yrityksen nopeasti vastaanottamaan asiakkaan ongelman ja mahdollisesti välttyä turhalta soitolta asiakkaan puolelta.

Monesti asiakkaat ovat tottuneet soittamaan IT-tuki numeropalveluihin eivätkä ole tietoisia muusta asiakaspalvelu mahdollisuudesta. Näin ollen hyvä automatisoitu IT-tuki chatbot olisi oiva mahdollisuus keventää IT-yrityksien ruuhkaa IT-alalla. Samalla yritys voisi va- pautua turhilta sähköpostiselvittelyitä sekä keventäisi ongelma tilanteiden kertymistä lin- jastossa. Chatbot voisi vastata helppoihin kysymyksiin tai tiedusteluihin IT-tuen web-si- vuilla ja vaikeimmissa tapauksissa ehdottaa asiakaspalvelunumeroon soittamista.

Esimerkiksi voidaan automatisoida yleisimmät tulleet kysymykset puhelinlinjasta tai IT on- gelmatilanteista. Työntekijät voivat myös ehdottaa joka viikkoisissa palavereissa mitkä kohdat voitaisiin siirtää automatisoidulle chattibotille ja näin ollen keventää ja nopeuttaa ongelmatilanteiden selvittelyä.

Chatbotin voisi kehittää myös yritys, joka haluaa säästää ulkoistetusta IT-tukipalvelusta, sillä jokainen työntekijän soitto ja tiketti maksaa yritykselle rahaa. Näin ollen yritys voisi itse päättää hankkeen kannattavuutta ja säästää sillä rahaa. Chatbot voi toimia myös yri- tyksen sisäisenä oppaana ja nopeuttaa uuden työntekijän löytämään tarvittavat tiedot rat- koakseen ongelmatilanteen. Myös vaikeiden asioiden hoitaminen chatissa voi olla tie- tyissä tilanteissa helpompaa, sillä asian hoitaminen voidaan mieltää chatissa helpommin kuin puhelimitse, sillä puhelinviestintä vaatii henkilökohtaista kontaktia asiakaspalvelijaan, kun taas chat-viestintä ei.

Aikavyöhykkeet tai yleiset vapaapäivät eivät rajoita automaattista asiakaspalvelua. Tämä antaa organisaatioille mahdollisuuden tarjota jatkuvasti asiakaspalvelua ongelmien ratkai- semiseksi heti, kun ne syntyvät. Kyvyllä ratkaista asiakaspalvelukysymykset ennen niiden

(17)

tunteja tai edes päiviä. Tämä voi vaikuttaa suuresti asiakastyytyväisyyteen ja muutoksiin.

Se osoittaa myös, että yritys, on sitoutunut tukemaan asiakkaita - mikä on arvokasta tuo- temerkin maineen ja luottamuksen kannalta (Schneider 2017).

Asiakaspalvelussa on kyse mukavuudesta, joka sisältää ympärivuorokautisen asiakas- tuen. Kustannustehokas, mutta tehokas tapa tarjota perustukea on 24 tuntia vuorokau- dessa. Devine kertoi tästä erinomaisen esimerkin. Pankkialalla Workfusionin chatrobotteja koulutetaan käyttämällä historiallisia keskusteluja, ja ne voivat suorittaa joitain samoja teh- täviä kuin live-tukikeskuksen edustaja, kuten Laskujen oikaiseminen, tilin saldoja koske- viin kysymyksiin vastaaminen ja paljon muuta. Asiakkaat saavat saman palvelutason kuin he saisivat tukiedustajalta. Chatbot tunnistaa ihmisten tunteet, kuten vihan, hämmennyk- sen, pelon ja ilon. Ja kuten edellä mainittiin, jos chatbot havaitsee asiakkaan olevan vihai- nen, järkyttynyt tai turhautunut, se siirtää saumattomasti vuorovaikutuksen ihmiselle otta- maan haltuunsa. (Heyken 2017)

Chat-palvelun tarjoaminen vähentää sähköposti- ja puhelinliikennettä, sekä nopeuttaa asiakaspalvelua. Olipa asiakaspalvelijoita sitten yksi tai useampi, työskentely on jousta- vampaa ja tehokkaampaa chatin avulla. Voit olla asiakkaiden tavoitettavissa silloin kun itse haluat ja vastaamalla asiakkaan kysymykseen heti, yhteydenotot tulee varmasti hoi- dettua kerralla pois päiväjärjestyksestä.

Chat mahdollistaa myös niiden asiakkaiden palvelun, jotka eivät välttämättä muuten ottaisi yhteyttä. Chatin avulla voit saada kontaktin asiakkaaseen omasta aloitteestasi, ilman asi- akkaan yhteydenottotarvetta. Reaaliaikaisella läsnäolollasi voit tarjota asiakkaalle apua aivan samalla tavalla kuin myyjä kivijalkakaupassa. (Sareskivi 2014)

4 Kehitysympäristöt

Markkinoilta löytyy jo valmiita chatbottien rakentamiseen kehitettyjä eri tasoisia alustoja.

Alustat ovat erilaisia sen mukaan, minkä tasoinen chatbotti käyttöön valitaan käsikirjoi- tettu, älykäs vai hybridi-chatbotti. Merkitystä on myös sillä, haluatko integroida chatbotin Facebookiin vai suoraan omille nettisivuillesi. Chatbotin tekninen toteuttaminen on melko yksinkertaista. Enemmän työtä vaatii keskustelun kulun ja rakenteen suunnittelu ja tuotta- minen. Nämä vaativat ajan lisäksi myös viestintä- ja vuorovaikutusosaamista.

Voit määritellä hyvinkin tarkasti, mitä chatbotti tekee ja mitä puhuu. Jos yritykselläsi tai

(18)

voidaan opettaa myös tunnistamaan keskustelukumppanin mielentilan. Näin se osaa rea- goida asiakkaan mielentilan mukaisesti esimerkiksi kepeämpään tai asiallisempaan tyyliin.

(Hupli 2018)

4.1 Alustat

Suuret palveluntarjoajat kuten esim. Microsoft, IBM ja Google tarjoavat älykkäiden chat- bottien kehittäjille kattavat työkalut ja rajapinnat niitten kehittämiseen. Alustat myös mah- dollistavat chatbottien ”hostaamiseen” eri pilvialustoilla ja niiden julkaisemisen useilla eri julkaisualustoilla. Chatsbotsjournal on kerännyt listan alustoista, johon kuuluu mm. IBM Watson, Microsoft Bot Framework, Wit.ai, Api.ai, Semantic Machines sekä google Dia- logflow. (Davydova 2017)

4.2 Dialogflow

Ennen Dialogflow perustamista google osti API.AI jonka nimesi vuonna 2017 nykyiseksi Google Dialogflow:ksi. Palvelu pyörii Google Cloud Platform alustalla, joka toimii verk- koselaimessa. Käyttäen palvelua ja sen valmiita komponentteja käyttäjä voi helposti luoda chatbotin ilman erikoisempaa ohjelmointi taitoa käyttäen valmiiksi ohjelmoitua käyttöliitty- mää. Tällainen botti rajoittuu toimimaan yksinomaan vain Dialogflow sisällä ilman yhteyk- siä ulkoisiin rajapintoihin. Tämmöinen botti myös rajoittuu antamaan valmiiksi kirjoitettuja vastauksia yksinkertaisiin kysymyksiin. Dialogflow tukee yli 20 kieltä, mutta valitettavasti suomen kieli ei ole tuettuna. Tuetuilla kielillä alusta pystyy oppimaan ja käsittämään asiak- kaan syötteitä ja täten parantamaan oikeita vastauksia.

Dialogflow alustassa chatbotin nimi on agent ja kirjauduttua järjestelmään on valmiiksi luotu tervehdys ominaisuus. Kun käyttäjä kirjoittaa syötteeseen englanniksi ”hi”, ”hello”

niin botti tunnistaa tervehdykseen ja vastaa käyttäjälle tervehtien ”Welcome”. Tämä ter- vehdys on luotu valmiilla Intent (aikomus) komennolla ja käyttäjä voi muuttaa sitä halutes- saan tai poistaa tämän valmiin luodun Intent järjestelmästä. Jokainen Intent eli aikomus vastaa yhtä keskusteluvuoroa ja käyttäjä pystyy luomaan uusia aikomuksia, johon luo- daan mahdollinen keskustelu parametrejä.

Tervehdys Intent on yksinkertainen Intent, jossa on valmiiksi kirjoitettu käyttäjän tervehdys eli ”Hi” ja järjestelmä pystyy tunnistamaan minkä aikomuksen käynnistää eli vastata käyt- täjälle tervehdyksen tekstinä. Jokaisessa aikomuksessa on myös mahdollista määrittää parametreja, joka keskustelun aikana käynnistetään (Actions and parameters) avulla. Ky-

(19)

viisaampi botti, joka pystyy käyttämään edellisiä aikomuksia tai esimerkiksi muistamaan asiakkaan nimen.

Palvelu on suunniteltu tukemaan tekstipohjaisten bottien lisäksi myös äänen avulla toimi- via botteja. Kun käyttäjä on jo rakentanut tekstipohjaisen botin, on sen muuntaminen myös äänelle toimivaksi melko yksinkertaista. Tämä ei kuitenkaan päde suomenkielisen botin kohdalla puuttuvan kielituen vuoksi. Äänibottien toimintatavaksi voi valita reaaliaikai- sen tai synkronisen puheentunnistuksen, mikä laajentaa mahdollisten käyttötapausten määrää ja vähentää tarvittavaa työmäärää.

4.3 Suomen kielen tuki

Suomen kielen tukea pilvipohjaisissa alustustoissa ei ole, mutta koska alustat pohjautuvat malliin, että vastaukset on ennalta määritetty, voidaan rakentaa Suomeksi kommunikoiva chatbot. Myös alustoilla olevien valmiiden parametrien käyttö hankaloituu, sillä ne ovat oh- jelmoitu toimimaan Yhdysvaltain standarttien mukaan. Esim. postinumeron syöte on alus- tavasti suunniteltu Yhdysvaltain postinumero muotoon K1A 0B1.

5 Luonnollisen kielen prosessointi chatboteissa

Luonnollisen kielen käsittely (engl. Natural language processing, NLP) on yksi tietojenkä- sittelytieteiden, kielitieteiden ja tekoälyn osa-alueista ja sen tarkoituksena on opettaa tieto- koneohjelmia ymmärtämään ihmisten käyttämää luonnollista kieltä. Luonnollisen kielen käsittely kuuluu koneoppimisen alaan ja täten tietokoneohjelma oppii ja suoriutuu sille an- netusta tehtävästä paremmin toistaen koneoppimisessa ilmeneviä virheitä ja yrittää olla toistamatta niitä seuraavissa kerta yrityksissä. Ohjelman on vaikea käsittää ihmisen muo- dostumaa luonnollista kieltä ja täten se on tekoälyn yksi suurimmista ongelmista.

Tekoälyn ominaisuuksista ja mahdollisuuksista on viime aikoina puhuttu paljon, mutta jo monta vuotta käytössä olleet chatbotit eivät pysty edelleen ymmärtämään ihmisten luon- nollista kieltä, joka on muodostunut luonnollisissa suhteissa. Slangin ja huumorin ymmär- rys ei kehity sillä ohjelma käsittää kaiken lineaarisessa ajatteluttavassa. Tämä on yksi syy miksi chatbot palvelut eivät ole edelleenkään kovassa suosiossa, ja ihmiset pyrkivät mah- dollisuuksien mukaan käyttämään perinteistä asiakaspalvelua chattibotin sijaan.

Kielen tunnistuksessa kone tunnistaa, millä luonnollisella kielellä käsiteltävänä oleva teksti on kirjoitettu – NLP prosessilla tietokone pilkkoo kielen lyhyiksi palasiksi ja yrittää ymmär-

(20)

Alkutilanteessa on käyttäjän antama syöte, jonka jälkeen ohjelma suorittaa erilaisia ana- lyyseja ja tuottaa lopputuloksen. Suorittamalla kielitieteellisiä analyysejä ohjelma pyrkii ymmärtämään käyttäjän tarkoittamaa syötettä. Mitä paremmin NLP-prosessi on ohjel- moitu, sitä lähempänä lopputulos on ihmiskäyttäjän oikeasti tarkoittamaa merkitystä. Jotta lopputulos olisi mahdollisemman onnistunut, koneen on tunnistettava millä kielellä syöte on kirjoitettu. Tämän jälkeen alkaa datan käsittely, jotta luonnollisen kielen tulkitseminen onnistuisi mahdollisemman oikein.

Jotta kone voidaan opettaa ymmärtämään kieltä, täytyy kone opettaa tunnistamaan sym- boleita, ymmärtämään kielioppia sekä opettaa tunnistamaan, missä asiayhteydessä teksti esiintyy. Luonnollisen kielen tunnistamista on perinteisesti pyritty tekemään opettamalla koneelle kielioppisääntöjä. (Kananen, Puolitaival 2019)

Koneelta voidaan kysyä esimerkiksi, onko tämä substantiivi monikko; esiintyykö sana en- simmäistä kertaa tekstissä jne. Jos vastaus on kyllä, kone antaa arvon 1, jos vastaus on ei, kone antaa arvon 0. Näiden vastausten perusteella teksti voidaan muuttaa vektoreiksi [1, 0, 0, 1…]. Näin ollen jokaisen lauseen voidaan ajatella olevan havainto pisteavaruu- dessa ja niiden etäisyyksiä toisiinsa voidaan laskea. (Kananen, Puolitaival 2019)

Kieli voidaan luoda alusta asti koneellisesti tai luomisessa voidaan hyödyntää osittain val- miita tekstipohjia, joihin kone täydentää tarvittavia ja puuttuvia sanoja. Tällöin saadaan kielellisesti tarkempaa tekstiä, ja se voi olla erittäin hyödyllinen tapa hyödyntää NLP:tä usein toistuvissa tilanteissa, kuten lomakkeiden täytössä, hakemuksissa tai vaikkapa asia- kaspalvelutilanteissa. Kone ei kykene vielä järkeistämään asioita tai se ei pysty kausaali- suuksien ”ajatteluun”. Kone oppii tekstistäkin vain sen, mitä sille on opetettu. Se ei ym- märrä tai osaa huomioida ympäröivän maailman vaikutuksia, ellei se ole sellaisiin erityi- sesti opetettu. (Kananen, Puolitaival 2019)

Chatbotit oppivat datan avulla. Mitä enemmän korkealaatuista dataa se saa pureskelta- vaksi, sitä paremmin se oppii. Oli kyseessä sitten käsikirjoitettu tai älykäs chatbot, tulee ihmisten kehittää ja opettaa sitä. Onneksi chatbotin käyttöön annettavan datamäärän ei aluksi tarvitse olla kovinkaan iso. Ja usein tarvittava data löytyy yritykseltä jo valmiiksi. Ke- hitysvaiheessa hyvää opetusdataa ovat esimerkiksi aiemmat keskustelut asiakkaiden kanssa. Ennen chatbotin julkaisua kannattaa hyödyntää asiakkaita ja loppukäyttäjiä, ja ke- rätä näiltä tietoa siitä, miten ja mistä asioista ihmiset haluavat botin kanssa keskustella.

(21)

Kuva 5. Luonnollisen kielen NLP analyysit.

Chatbotit eivät lue tai ymmärrä käyttäjän lauseita vaan poimivat tiettyjä avainsanoja, tä- män takia on tärkeää prosessoida luonnollisen kielen ymmärtämistä oikein. Tämä on yksi syy miksi asiakkaat yrittävät välttää automatisoituja chattibotteja. On tärkeää prosessoida asiakkaan saama syöte oikein eli käyttää syötteen prosessoinnissa luonnollisen kielen analyysimenetelmiä.

Hyvin optimoitu NLP-prosessi määrittää syötteen sanajärjestyksen, ymmärtää kontekstin, ymmärtää sanojen epäselvyydet, ja muut viesteihin liittyvät monimutkaiset käsitteet. Oh- jelma huomioi myös muut näkökohdat, kuten kulttuurin, taustan, sukupuolen, ja parantaa luonnollisen kielen ymmärtämistä tehokkaan koneoppimisalgoritmin avulla.

Koneoppimisalgoritmin avulla ohjelma pilkkoo käyttäjän antaman lauseen erilaisiksi sa- neiksi ja määrittää siinä olevat sanaluokat. Algoritmin aikana lauseelle suoritetaan syntak- tinen analyysi eli lauseenjäsennys sekä semanttinen analyysi (merkityksen päättelemi- nen). Lopussa suoritetaan Pragmaattinen analyysi eli sen päätteleminen, mistä puhuja ha- luaa repliikillään saavuttaa, tämä vaatinee tässä tapauksessa edistyneen tietokoneohjel- man, joka on ohjelmoitu hyvin analysoimaan käyttäjän antaman syötteen.

Esimerkiksi sarkasmi ja huumori voivat vaihdella suuresti maittain. Luonnollinen kielenkä- sittely ja tehokkaat koneoppimisalgoritmit (useita yhteistyössä käytettyjä) paranevat ja tuo- vat järjestystä ihmiskielen kaaoksiseen käsitteisiin, sekä sarkasmiin. NLP tekniikka kehit- tyy ja parantaa ohjelman kykyä hahmottaa ihmisen syötettä ja sen tarkoitusta. (mon- keylearn.com)

NLP avaa monia mahdollisuuksia liiketoiminnallisessa hyödyntämisessä. Kun pohditaan NLP:n hyödyntämismahdollisuuksia, on hyvä muistaa se tosiasia, että NLP ei ole virhee- tön. Sen avulla kyetään luomaan, ymmärtämään ja luokittelemaan tekstiä sekä jopa kes- kustelemaan ihmisen kanssa, mutta hyvin usein sen käytössä tulee myös virheitä. On hyvä tunnistaa käyttötilanteet ja pohtia, millainen toleranssi toiminnassa on järjestelmän virheisiin. Virheiden mahdollisuudesta huolimatta kannattaa pohtia myös, onko teknologi- asta kuitenkin enemmän hyötyä kuin haittaa. Esimerkiksi tiedon etsiminen suuresta tieto-

(22)

ole olennaisia, hakukone auttaa ihmistä löytämään nopeasti tarvitsemansa tiedon. Toi- saalta esimerkiksi lainopillisissa dokumenteissa yksittäisten sanojen tai lauseiden merkitys voi olla hyvin suuri, jolloin sen huomiotta jättämisellä voi olla merkittävä vaikutus. (Kana- nen, Puolitaival 2019)

6 Dialogflow käyttöönotto

Ennen Dialogflow:n käyttöönottoa asiakkaalla pitää olla google-tili ja hänen pitää olla kir- jautuneena järjestelmään, jotta alustalle pääsee luomaan ensimmäisen chatbotin. Dia- logflow on periaatteessa ilmainen ja vapaasti käytettävissä, mutta ilmaisversio on rajoi- tettu tiettymäärään syötteisiin. Näin ollen Ilmaisversio sopii pienemmälle pk-yritykselle, jolla ei ole hirveästi kävijämääriä www-sivustolla. ( https://accounts.google.com/sig- nin/v2/identifier?hl=en&passive=true&con-

tinue=https%3A%2F%2Fwww.google.com%2F&ec=GAZAAQ&flowName=GlifWebSig- nIn&flowEntry=ServiceLogin ) Kirjautumisen jälkeen pääsemme luomaan ensimmäisen Dialogflow agentin ja annamme sille nimeksi Bertta. Oikean aikavyöhykkeen valinnan jäl- keen painetaan CREATE-nappula.

Kuva 6. Ensimmäisen Dialogflow:n luonti

Tämän jälkeen avautuu Dialogflow:n etusivu, jossa näemme kaksi valmiiksi luotua aiko- musta. Default Fallback Intent on oletusvastaus, joka ilmaisee, että agentti eli Bertta ei ymmärrä käyttäjän antamaa syötettä esim. ”Sorry, I didn't get that”.

(23)

Default Welcome Intent aikomus toivottaa käyttäjää tervetulleeksi antamalle syötteeseen

”welcome”.

Kuva 7. Valmiit luodut Dialogflow Intentit.

Valmiit aikomukset antavat hyvän käsityksen järjestelmän toiminnasta ja täten näitä vas- tauksia voi muokata. Palvelu hyödyntää taustalla omia koneoppimisalgoritmeja, joiden avulla agentti voi parantaa syötteiden tunnistusta ja täten parantaa haluttua vastausta.

Tätä ominaisuutta ei kuitenkaan ole tuettuna, jos käyttäjä rakentaa botin jollain toisella kie- lellä kuin englanti.

Kuva 8. Valmiit Fallback intent vastaukset

Avaamalla Default Welcome Intent aikomuksen pystymme näkemään, valmiiksi kirjoite- tut Training phrases eli suomeksi sanottuna fraasit. Kun käyttäjä kirjoittaa syötteeseen

(24)

lauseita tai sanoja niin on tärkeää kirjoittaa mahdollisemman paljon erilaisia Training phrases fraaseja, jotta ne täsmäisivät asiakkaan antamia syötteitä. Toisin sanoen koulut- taa agenttia minkälaisia mahdollisia syötteitä asiakas voisi kirjoittaa järjestelmään.

Kuva 9. Muutettu Default Welcome Intent

Valmiit kirjoitetut Training Phrases voidaan muokata omalle projektille sopivaksi. Tässä tapauksessa muutamme Tervehdys Intentin suomen kielelle ja muokkaamme vastauksen

”Aloittaaksesi tilauksen, kirjoita: Haluan tilata Pizzan”. Näin ollen asiakas käynnistää seu- raavan intentin. Tämä muutos onnistuu muuttamalla Training Phrases sekä Responses osion vastauksia.

6.1 Intent luonti

Seuraavaksi luodaan uusi Intent. Tämä onnistuu painamalla Plussa-nappia Dialogflow va- likosta. Intent nimeksi annamme Pizza_Tilaus ja lisäämme Training Phrases kohtaan käyttäjän antaman syötteen ”Haluan tilata Pizzan” ja intentin Text response agentin eli chatbotin vastaukseksi ”Minkälaisilla täytteillä haluat pizzan?”

(25)

Kuva 10. Uuden Intent luonti.

Training Phrases kohtaan voimme lisätä ”Haluan tilata Pizzan” lauseen lisäksi muita fraa- seja. Ajatuksena on kouluttaa agenttimme mahdollisimman monipuolisiin esimerkkeihin mitä asiakas voisi kirjoittaa syötteeseen. esim. ”Pizza kiitos”, ”Yksi pizza”, ”Saako tilattua pizzan?” jne.

Kuva 11. Pizza intent.

Seuraavaksi luodaan uusi aikomus, johon listataan pieni menu. Kirjoitamme esimerkkinä neljä erilaista pizzaa. Asiakas saa itse valita haluamansa pizzan käyttäen numeroitua vaihtoehtoa.

6.2 Action and Parameters

Jokainen intent sisältää Action and Parameters osion, joka mahdollistaa entity käytön(en- titeetti). Entiteetit spesifioi mitä tietoa käyttäjän syötteestä poimitaan ja minkälaisen toimin- nan suoritetaan. Dialogflow järjestelmässä on valmiiksi laaja valikoima valmiita järjestel- mäentiteettejä. Halutessa käyttäjä voi itse laatia omia entiteettejä. Esimerkiksi Dialogflow alustalla löytyy valmiiksi @sys.zip-code, joka luokittelee käyttäjän antaman syötteen posti- numeroksi. Koska alusta ei tue suomen kieltä, nämä valmiit parametrit eivät välttämättä aina toimi niin kuin halutaan. Kyseinen parametri on ohjelmoitu toimimaan yhdysvaltalais- postinumero muotoon esim. K1A 0B1. Tämän takia, jos halutaan käyttää suomalaista pos- tinumero syötettä, niin on parempi käyttää @sys.number-sequence entiteettiä.

(26)

6.3 Agentit

Dialogflow toimii luomalla agentteja. Agentteja kuvataan parhaiten NLU (Natural Langu- age Understanding) -moduuleina. Ne voidaan sisällyttää sovellukseesi, tuotteeseesi tai palveluun. Ne muuttavat luonnolliset käyttäjäpyynnöt toimiviksi tiedoiksi.

Tämä muutos tapahtuu, kun käyttäjän syöttö vastaa yhtä agenttisi sisällä olevista tarkoi- tuksista. Tarkoitukset ovat käyttäjän pyyntöä käsittelevien agenttien ennalta määritetyt tai kehittäjän määrittelemät komponentit.

Esimerkiksi sanot chatbotille, että tunnet kylmää tai haluat tuulettimen olevan sammutettu.

Agentin on tiedettävä, mikä tarkoitus on näiden lausuntojen takana. Tarkemmin sanottuna

"Mitä käyttäjä haluaa minun tekevän?". Kun tarkoitus on tiedossa, vastaava toiminta / vas- taus voidaan luoda. (Rizvi 2018)

6.4 Chatbotin ohjelmointi

Chatbot sovellus saadaan yhdistettyä Google Firebase tietokantaan käynnistämällä Ful- fillment osiossa Inline Editor eli koodi editori. Käynnistettyä ominaisuus, käyttäjälle avau- tuu ominaisuus käyttää InLine Editoria eli mahdollisuus ohjelmoida chatbottia. Ohjelmointi- kielenä toimii Node.js ja käyttäjälle avautuu mahdollisuus luoda viisaampi chatbotti tai yh- distää chatbot googlen sisäiseen rajapintaan käyttäen webhook toimintaa.

(27)

Firebase sisäiseen rajapintaan yhdistäminen mahdollistaa chatbotin palvelemaan parem- min, käyttäen laajaa tietokantaa ja antamalla oikeita vastauksia keskustelussa. Inline edi- tori, Firebase tietokanta ja Dialogflow alustan Intents mahdollistavat uudenlaisen Chatbot kehityksen. Kyky tallentaa syötteitä tai tarvittaessa poimia niitä laajasta tietokannasta mahdollistaa esimerkiksi. sähköposti lähetyksen keskustelun lopussa.

6.5 Node.js ohjelmointi

2009 vuoden lopulla Ryan Dahlin julkisti Node.js JavaScript messuilla Berliinissä. Julkaisu mullisti maailman, sillä aikaisemmin web-applikaation tekeminen vaatii hyvää kykyä hallita JavaScript ja muita kieliä.

Node.JS ytimenä on JavaScriptin käyttö palvelimessa. Ryan Dahlin näytti, että JavaScript- koodia voidaan ohjelmoida palvelimella ja sen avulla voidaan rakentaa palvelinsovellus.

Tämän kaiken mahdollistaa, että web-kehityksen aikana ei tarvitse käyttää muita ohjel- mointikieliä web-palvelimessa, eikä tarvitse erillistä PHP tai Apache asennusta.

7 Pilvipalvelut

Chattibotin täytyy jollain keinolla identifioida käyttäjä kaikissa keskusteluissa, jotta Chatbot pystyy tarjoamaan oikeanlaista palvelua kyseessä olevalle käyttäjälle. Suurimpana haas- teena on saada Chatbotin taustalle riittävän iso ja laajuudeltaan hyvä ratkaisutietokanta, jonka avulla Chatbot pystyy palvelemaan paremmin käyttäjiä. Tästä myös tietysti seuraa mieluisampi käyttökokemus loppukäyttäjille, jolloin sitä myös varmasti suositeltaisiin ja käytettäisiin enemmän.

Google alusta koostuu useasta palvelusta. Opinnäytetyön Chatbot, joka on rakennettu Dialogflow alustalle on vahvasti optimoitu toimimaan Google Cloud Platform palvelun kanssa. Tämä mahdollistaa chatbotin syötteiden siirtymistä googlen tietokantaan. Tieto- kanta alustana toimii Firebase.

Google Cloud Functionsissa käyttäjän laatima koodi suoritetaan Googlen valmiissa ympä- ristössä, jossa käyttäjän ei tarvitse huolehtia infrastruktuurista eikä ylläpitää, konfiguroida tai päivittää omia palvelimia. Google ylläpitää, että laitteiston että ympäristön, joten käyttä- jän täytyy vain kirjoittaa haluamansa koodin pilvitoimintoon. Resursseja on käytössä niin paljon kuin kulloinkin tarvitaan aina muutamasta päivittäisestä kutsukerrasta miljooniin

(28)

tahansa standardien mukaiseen ympäristöön, joka toimii Google Cloud Functionsin tuke- milla kielillä ja versioilla. Cloud Functions toimii loogisena kerroksena, joka yhdistää eri pil- vipalveluita toisiinsa ja täydentää olemassa olevia palveluita, ja sen kautta on helppo hyö- dyntää myös Googlen muuta laajaa, kehittäjille suunnattua palvelutarjontaa. (Google 2019b.)

7.1 Firebase

Google Cloud Functions -ympäristössä on Firebase niminen tietokanta, jonka kautta voi- daan avata rajapinnan yhdistäminen muihin ulkoisiin tietokantoihin käyttäen palvelun si- säistä InLine editoria. Avoin ulkoinen rajapinta mahdollisuus on mahdollista vain maksulli- sen firebase-version kautta.

7.2 Firebase luonti

Ennen Firebase:n käyttöönottoa asiakkaalla pitää olla google-tili ja hänen pitää olla kirjau- tuneena järjestelmään. Firebase palvelun saa käyttöön osoitteesta https://console.fire- base.google.com. Firebase palvelu on ilmainen ja vapaasti käytettävissä, mutta ilmaisver- sio on rajoitettu vain tiettymäärään dataan. Ilmaisversio sopii pienemmälle pk-yritykselle, jolla ei ole hirveästi kävijämääriä omassa web-sivustossa. Jos keskustelumäärä ylittyy il- maisrajan yli, niin palvelu sulkeutuu tai asiakkaalta veloitetaan rahaa siitä ylittyvästä datan määrästä. Ilmaisversio ei myöskään salli yhteyksiä ulkoisiin rajapintoihin. Tämän takia on tärkeää valita itselle tai yritykselle sopiva versio, ettei palvelun kanssa ilmene ongelmia.

7.3 Chatbot yhdistäminen Firebase-tietokantaan

Jotta saamme siirrettyä syötteen Firebase tietokantaan meidän on luotava Chatbot jonka päämäärä on tallentaa syötteet Firebase tietokantaan. Käyttämällä pelkkiä intent komen- toja tämä ei onnistu, vaan meidän on käytettävä Dialogflow:n alustan InLine editoria, jossa ohjelmoidaan yhteys Firebase tietokantaan ja spesifioidaan mikä tietty syöte halutaan siir- tää sinne. Tämä onnistuu käyttämällä Javascript koodia, joka löytyy opinnäytetyön lo- pussa.

(29)

Kuva 13. Realtime Database syötteen tallentaminen

Kirjoitettua syötteen Dialogflow chatbot keskusteluun se automaattisesti siirtyy Firebase tietokantaan ja tulee näkyville alustan taulukkoon. Tallentamisen jälkeen syötetty teksti siirtyy Firebase tietokantaan. Käyttäen liitteessä olevaa koodia.

Kuva 14. Realtime Database taulukko.

8 Yhteenveto

Aiheena Chatbot ja siihen liittyvät ominaisuudet ovat erittäin mielenkiintoinen aihe, myös materiaalia ja artikkeleita kyseisestä aiheesta on paljon saatavilla. Toisaalta tietoa löytyy enemmän englannin kielellä, koska alustat ovat enemmän suunniteltu tälle tuetulle kie- lelle. Positiivisena näen miten chatbot aihe on mahduttanut erilaisia mielenkiintoisia tee- moja kuten tekoälyn hyödyntämistä liiketoiminnassa ja asiakaspalvelun tukena. Aihe kes- kittyi laajasti myös luonnollisen kielen käsittelyyn ja sen haasteisiin. Valitettavasti suomen kielen tukea pilvipohjaisissa alustustoissa ei ole, mutta siitä huolimatta on mahdollista ra- kentaa toimiva suomeksi puhuva chatbot. Suomen kielen tuen puutteen takia valmiit para-

(30)

metrit eivät välttämättä aina toimi ja tämän takia niitä joutuu muunnella tai ohjelmoida erik- seen. Myös pilvipalveluiden tietokantaan tutustuminen ja käyttöönotto on ollut mieluisa ko- kemus.

9 Liite

Tallentaminen Firebase tietokantaan onnistuu seuraavalla javascript koodilla.

Node.js:

'use strict';

const functions = require('firebase-functions');

const admin = require('firebase-admin');

const {WebhookClient} = require('dialogflow-fulfillment');

const {Card, Suggestion} = require('dialogflow-fulfillment');

admin.initializeApp({

credential: admin.credential.applicationDefault(), databaseURL: 'ws://.firebaseio.com/'

});

process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) =>

{

const agent = new WebhookClient({ request, response });

console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));

console.log('Dialogflow Request body: ' + JSON.stringify(request.body));

function welcome(agent) {

agent.add(`Welcome to my agent!`);

}

function fallback(agent) {

agent.add(`I didn't understand`);

agent.add(`I'm sorry, can you try again?`);

(31)

function handleTallenna_tietokantaan(agent) { const text = agent.parameters.text;

return admin.database().ref('data').set({

text: text });

}

function handleLue_tietokanta(agent){

return admin.database().ref('data').once('value').then((snapshot) => { const value = snapshot.child('text').val();

if(value !== null){

agent.add(`Tietokannan tulos on: ${value}`);

}

}) }

let intentMap = new Map();

intentMap.set('Default Welcome Intent', welcome);

intentMap.set('Default Fallback Intent', fallback);

intentMap.set('Tallenna_tietokantaan', handleTallenna_tietokantaan);

intentMap.set('Lue_tietokanta', handleLue_tietokanta);

agent.handleRequest(intentMap);

});

(32)

Lähteet

Kotipizza Group Oyj, 2017. Kotipizza ja Pivo tuovat chatbot-ostamisen ensimmäisinä Suo- meen. Luettavissa:

https://www.sttinfo.fi/tiedote/kotipizza-ja-pivo-tuovat-chatbot-ostamisen-ensimmaisina-suo- meen?publisherId=57487700&releaseId=62155060 Luettu: 9.11.2020.

Manisha Salecha, 2016. Story of ELIZA, the first chatbot developed in 1966. Luettavissa:

https://analyticsindiamag.com/story-eliza-first-chatbot-developed-1966/ Luettu: 9.11.2020.

Kristian Collin, 2017. Interview with Kristian Collin Berge on AI, bots and education. Luet- tavissa:

https://chatbotslife.com/interview-with-kristian-collin-berge-on-ai-bots-and-education- 18408fe3271d Luettu: 10.11.2020.

Niklas Collin, 2016. Chatbotteja, onko heitä? Luettavissa:

https://www.solita.fi/blogit/chatbotteja-onko-heita/ Luettu: 10.11.2020.

W.Eggers, D.Schatsky, P.Viechnicki, 2017. Using cognitive technologies to redesign pub- lic sector work. Luettavissa:

https://www2.deloitte.com/us/en/insights/focus/cognitive-technologies/artificial-intelli- gence-government.html Luettu: 12.11.2020.

Mikko Hupli, 2018. Chatbot FAQ - kaikki mitä chatboteista on syytä tietää juuri nyt. Luetta- vissa:

https://www.salesforce.com/fi/blog/2018/chatbot-usein-kysytyt-kysymykset.html Luettu:

12.11.2020.

Petri Nuojua, 2018. Viisi yleisintä harhaluuloa chatboteista. Luettavissa:

https://www.salesforce.com/fi/blog/2018/chatbot-harhaluulot.html Luettu: 14.11.2020.

Drift.com. The Ultimate Guide to Chatbots. Luettavissa:

https://www.drift.com/learn/chatbot/ Luettu: 14.11.2020.

Mohd Sanad Zaki Rizvi, 2018. A Guide to Building an Intelligent Chatbot for Slack using Dialogflow API. Luettavissa:

(33)

Megan Garber, 2014. When PARRY Met ELIZA: A Ridiculous Chatbot Conversation From 1972. Luettavissa:

https://www.theatlantic.com/technology/archive/2014/06/when-parry-met-eliza-a-ridicu- lous-chatbot-conversation-from-1972/372428/ Luettu: 16.11.2020.

Olga Davydova, 2017. 25 Chatbot Platforms: A Comparative Table. Luettavissa:

https://chatbotsjournal.com/25-chatbot-platforms-a-comparative-table-aeefc932eaff Lu- ettu: 18.11.2020.

Jake Westall, 2016. Exploring Assistant, A New Voice Interface with Familiar Problems and a Bright Future. Luettavissa:

https://www.xda-developers.com/exploring-assistant-a-new-voice-interface-with-familiar- problems-and-a-bright-future/ Luettu: 18.11.2020.

Christie Schneider, 2017. 10 reasons why AI-powered, automated customer service is the future. Luettavissa:

https://www.ibm.com/blogs/watson/2017/10/10-reasons-ai-powered-automated-customer- service-future/ Luettu: 20.11.2020.

IBM 2017. Kela kutsui Watsonin opiskelijoiden avuksi. Luettavissa:

https://www.alykassuomi.fi/2017/10/kela-kutsui-watsonin-opiskelijoiden-avuksi/ Luettu:

20.11.2020. Reaaliaikaisen chat-asiakaspalvelun merkitys verkkokaupassa

Katja Sareskivi, 2014. Reaaliaikaisen chat-asiakaspalvelun merkitys verkkokaupassa.

Luettavissa: https://www.verkkokauppiaaksi.fi/2014/07/reaaliaikaisen-chat-asiakaspalve- lun-merkitys-verkkokaupassa/ Luettu 21.11.2020

Dialogflow, 2020. Responses. Luettavissa:

https://cloud.google.com/dialogflow/es/docs/intents-responses Luettu 21.11.2020

Dialogflow, 2020. Intents. Luettavissa:

https://cloud.google.com/dialogflow/es/docs/intents-overview Luettu 21.11.2020

Dialogflow, 2020. Actions and parameters. Luettavissa:

https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#params Luettu

(34)

Heikki Ailisto (toim.), Eetu Heikkilä, Heli Helaakoski, Anssi Neuvonen, Timo Seppälä 2018 Tekoälyn kokonaiskuva ja osaamiskartoitus. Luettavissa: https://julkaisut.valtioneu- vosto.fi/bitstream/handle/10024/160925/46-2018-Tekoalyn%20kokonaiskuva.pdf

Luettu 24.11.2020

Heidi Kananen, Harri Puolitaival, 2019 https://bisneskirjasto-almatalent-fi.ezproxy.haaga- helia.fi/teos/BAXBBXATCBIED# Luettu 27.11.2020

Jukka Kääriäinen, Tommi Aihkisalo, Marco Halen, Petri Jurmu, Tapio Matinmikko, Timo Seppälä, Maarit Tihinen, 2018. Ohjelmistorobotiikan ja tekoälyn kehitysvaateet julkisille sektorille – alustavia havaintoja https://www.etla.fi/wp-content/uploads/Ohjelmistorobotii- kan-ja-tekoalyn-kehitysvaateet-julkiselle-sektorille.pdf Luettu 28.11.2020

Janne Laakso, 2016. Googlen älykäs digiassistentti on Google Assistant https://mo- biili.fi/2016/05/18/googlen-alykas-digiassistentti-on-google-assistant/ Luettu 28.11.2020

Viittaukset

LIITTYVÄT TIEDOSTOT

Kuviossa 20 esitetään lähdekoodi ohjelmalle, joka tarkistaa ratkaisun oikeellisuuden.. Ongelman 1 ratkaisun oikeellisuuden

Ajan ja toiminnan strukturoinnissa voidaan myös käyttää apuna sosiaalisia tarinoita, joiden avulla voidaan kerronnallisesti esittää henkilölle mitä tapahtuu, kenen kanssa ja miten

Rajapinnan avulla saadun datan käsittely on vaikein kolmesta jakelutavasta ja dataa voidaan joutua suodattamaan.. Usein rajapinnan käyttöön tarvitaan ohjel- mointitaitoa, mutta

näkökulmasta miten uuden liikkeen avaaminen tapahtuu toimeksiantajayrityksessä. Lisäksi työn empiriaosio sisältää osan, jossa tarkastellaan kuinka liiketoimintaa johdetaan

Tässä tutkielmassa rajapinnan kehittämiseen käytetty aika sisältää molemmat sekä yksinkertaisen tietomallin, että moniulotteisen tietomallin rajapinnat.. Tarkastelemalla

opiskeluaiheen keskusteluihin aktiivisesti siellä, missä he muutenkin keskustelevat, kuten sosiaalisessa mediassa (Manênová 2015, McDonald ym. 2018), mutta se vaatii myös opettajan

Usually this is handled with different namespaces. In JavaScript, however, there are no namespaces. Node handles this by allowing developers to assign functions to be included

aSAV:n riski ei siis tämän mukaan ole suurentunut raskaus-, synnytys- tai lapsivuodeaikana (Tiel Groenestege ym. Jeng JS ym. tekivät Taiwanissa väestöpohjaisen tutkimuksen,