NestBot : Keskusteleva tekoälykaveri
Maijanen, Arttu (2014)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201405198568
https://urn.fi/URN:NBN:fi:amk-201405198568
Tiivistelmä
Opinnäytetyön päämääränä oli luoda FreeNest-projektialustaa varten suunniteltu tekoälyhahmo, jonka kanssa järjestelmän käyttäjät voivat käydä tekstimuotoisia keskusteluita. Tekoälyn luomista varten tutustuttiin tekoälytutkimuksen piirissä syntyneisiin teorioihin ja menetelmiin. Erityisen huomion kohteena olivat ns. chatterbotit, jotka vastaanottavat käyttäjältä tekstisyötettä, tulkitsevat sen sisältöä ja antavat käyttäjälle jonkin aiheeseen liittyvän vastauksen.
Uutta tekoälyä ryhdyttiin toteuttamaan JavaScript-pohjaisena web-sovelluksena. Pääasialliset kehityshaasteet liittyivät tekoälyn lauseenkäsittelyalgoritmeihin ja sanastorakenteeseen. Lopullinen tekoäly kykeni tunnistamaan käyttäjän antamasta syötteestä avainsanoja, joiden perusteella se pystyi antamaan aiheeseen liittyvän vastauksen. Tekoäly pystyi myös toistamaan omissa vastauksissaan otteita käyttäjän antamasta syötteestä.
Tekoälyhahmoa edustamaan luotiin myös animaatiohahmo, joka toteutettiin JavaScriptillä HTML5:n canvas-elementille. Grafiikkaohjelmoinnin helpottamiseksi ja sovelluksen suorituskyvyn parantamiseksi opinnäytetyössä perehdyttiin myös vapaasti saatavilla oleviin JavaScript-grafiikkakirjastoihin. Opinnäytetyössä vertailtiin toisiinsa Processing.js-, Kinetic.js- sekä EaselJS-grafiikkakirjastoja, joista lopulliseen sovellukseen valittiin käytettäväksi EaselJS.
Lopullisessa sovelluksessa yhdistettiin lauseenkäsittely ja grafiikka virtuaalihahmoksi, joka vastausten antamisen lisäksi reagoi käyttäjän tekstisyötteeseen ilmeillä ja eleillä. Sovellukseen sisällytettiin myös mahdollisuus kokonaan uuden hahmografiikan luomiseen ja käyttämiseen.
Uutta tekoälyä ryhdyttiin toteuttamaan JavaScript-pohjaisena web-sovelluksena. Pääasialliset kehityshaasteet liittyivät tekoälyn lauseenkäsittelyalgoritmeihin ja sanastorakenteeseen. Lopullinen tekoäly kykeni tunnistamaan käyttäjän antamasta syötteestä avainsanoja, joiden perusteella se pystyi antamaan aiheeseen liittyvän vastauksen. Tekoäly pystyi myös toistamaan omissa vastauksissaan otteita käyttäjän antamasta syötteestä.
Tekoälyhahmoa edustamaan luotiin myös animaatiohahmo, joka toteutettiin JavaScriptillä HTML5:n canvas-elementille. Grafiikkaohjelmoinnin helpottamiseksi ja sovelluksen suorituskyvyn parantamiseksi opinnäytetyössä perehdyttiin myös vapaasti saatavilla oleviin JavaScript-grafiikkakirjastoihin. Opinnäytetyössä vertailtiin toisiinsa Processing.js-, Kinetic.js- sekä EaselJS-grafiikkakirjastoja, joista lopulliseen sovellukseen valittiin käytettäväksi EaselJS.
Lopullisessa sovelluksessa yhdistettiin lauseenkäsittely ja grafiikka virtuaalihahmoksi, joka vastausten antamisen lisäksi reagoi käyttäjän tekstisyötteeseen ilmeillä ja eleillä. Sovellukseen sisällytettiin myös mahdollisuus kokonaan uuden hahmografiikan luomiseen ja käyttämiseen.