Luonnollista kieltä (NLP) käyttävä chatbot-sovellus
Silvonen, Sarianna (2019)
Silvonen, Sarianna
2019
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-2019052311505
https://urn.fi/URN:NBN:fi:amk-2019052311505
Tiivistelmä
Chatbotit ovat tietokoneohjelmia, jotka keskustelevat ihmiskäyttäjien kanssa tekstin tai puheen välityksellä ja suorittavat käyttäjien pyytämiä tehtäviä ja toimintoja. Tekstipohjaisia chatbotteja käytetään nykyään yleisesti yritysten asiakaspalvelutehtävissä, kun taas puhekäyttöiset ohjelmat ovat Sirin ja Alexan kaltaisten suosittujen digitaalisten assistenttien taustalla.
Tein opinnäytetyöni keväällä 2019. Kyseessä oli toiminnallinen opinnäytetyö, jonka tavoitteena oli rakentaa tekstipohjainen, luonnollista kieltä käyttävä chatbotti, joka poimii käyttäjän vapaasti kirjoittamasta syötteestä tarvitsemansa hakuparametrit, hakee niiden avulla tietoa ulkoisesta lähteestä ja palauttaa vastauksen käyttäjälle.
Luonnollisen kielen käsittely eli NLP (Natural Language Processing) on tekoälyn osa-alue, jonka avulla tietokoneohjelmat tulkitsevat ja käyttävät ihmiskieltä. NLP-tekniikoita voidaan soveltaa monelle eri tieteenalalle ja liiketoiminnan alueelle, ja ne ovat keskeisiä chatbottien toiminnassa.
Rakensin chatbotin Googlen omistamalle Dialogflow-alustalle, joka hyödyntää tekoälyä ja koneoppimista chatbottien toiminnassa. Botti hakee käyttäjän pyynnöstä juna-aikatauluja rautatie-liikenteen avoimesta rajapinnasta, jota ylläpitää Traffic Management Finland. Dialogflow’n ja rajapinnan yhdistäminen tapahtuu palvelimettomassa Google Cloud Functions -ympäristössä, jonne koodasin Node.js:n avulla funktion hakemaan dataa rajapinnasta ja muotoilemaan sitä. Työssäni käsittelin siis pääasiallisesti näitä kolmea eri komponenttia, jotka olivat kaikki minulle uusia, sekä niiden välisiä yhteyksiä. Lisäksi integroin chatbotin Slackin ja verkkodemoympäristön kautta muidenkin käyttäjien tavoitettavaksi.
Työn lopputuloksena sain aikaan toimivan chatbotin, joka hakee rajapinnan kautta juna-aikatauluja ja palauttaa niitä käyttäjälle. Lisäksi dokumentoin ohjeet, joiden avulla voi yhdistää Dialogflow’n ja Google Cloud Functionsin chatbotin kehitysympäristöksi. Työn tuloksena opin paljon uutta asiaa käyttämistäni ohjelmista, tekniikoista ja työkaluista sekä hahmotin, mitä kaikkea täytyy ottaa huomioon hyvän chatbotin rakentamisessa.
Tein opinnäytetyöni keväällä 2019. Kyseessä oli toiminnallinen opinnäytetyö, jonka tavoitteena oli rakentaa tekstipohjainen, luonnollista kieltä käyttävä chatbotti, joka poimii käyttäjän vapaasti kirjoittamasta syötteestä tarvitsemansa hakuparametrit, hakee niiden avulla tietoa ulkoisesta lähteestä ja palauttaa vastauksen käyttäjälle.
Luonnollisen kielen käsittely eli NLP (Natural Language Processing) on tekoälyn osa-alue, jonka avulla tietokoneohjelmat tulkitsevat ja käyttävät ihmiskieltä. NLP-tekniikoita voidaan soveltaa monelle eri tieteenalalle ja liiketoiminnan alueelle, ja ne ovat keskeisiä chatbottien toiminnassa.
Rakensin chatbotin Googlen omistamalle Dialogflow-alustalle, joka hyödyntää tekoälyä ja koneoppimista chatbottien toiminnassa. Botti hakee käyttäjän pyynnöstä juna-aikatauluja rautatie-liikenteen avoimesta rajapinnasta, jota ylläpitää Traffic Management Finland. Dialogflow’n ja rajapinnan yhdistäminen tapahtuu palvelimettomassa Google Cloud Functions -ympäristössä, jonne koodasin Node.js:n avulla funktion hakemaan dataa rajapinnasta ja muotoilemaan sitä. Työssäni käsittelin siis pääasiallisesti näitä kolmea eri komponenttia, jotka olivat kaikki minulle uusia, sekä niiden välisiä yhteyksiä. Lisäksi integroin chatbotin Slackin ja verkkodemoympäristön kautta muidenkin käyttäjien tavoitettavaksi.
Työn lopputuloksena sain aikaan toimivan chatbotin, joka hakee rajapinnan kautta juna-aikatauluja ja palauttaa niitä käyttäjälle. Lisäksi dokumentoin ohjeet, joiden avulla voi yhdistää Dialogflow’n ja Google Cloud Functionsin chatbotin kehitysympäristöksi. Työn tuloksena opin paljon uutta asiaa käyttämistäni ohjelmista, tekniikoista ja työkaluista sekä hahmotin, mitä kaikkea täytyy ottaa huomioon hyvän chatbotin rakentamisessa.