Natural language processing In chatbot development how does a chatbot process language?

Chatbotit ovat yleistyvä ratkaisu ihmisen ja tietokoneen väliseen vuorovaikutukseen. Tarve rakentaa ylläpidettäviä ja skaalautuvia keskustelevia ratkaisuja on kasvava, mutta ymmärrys perustavanlaatuisista teknologioista tarpeeseen on vähäistä. Tätä näkökulmaa tukee vähäinen kirjallisuus, yksinkertai...

Täydet tiedot

Bibliografiset tiedot
Päätekijä: Heikkilä, Arttu
Muut tekijät: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Aineistotyyppi: Pro gradu
Kieli:eng
Julkaistu: 2020
Aiheet:
Linkit: https://jyx.jyu.fi/handle/123456789/73084
_version_ 1826225754865664000
author Heikkilä, Arttu
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Heikkilä, Arttu Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Heikkilä, Arttu Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Heikkilä, Arttu
datasource_str_mv jyx
description Chatbotit ovat yleistyvä ratkaisu ihmisen ja tietokoneen väliseen vuorovaikutukseen. Tarve rakentaa ylläpidettäviä ja skaalautuvia keskustelevia ratkaisuja on kasvava, mutta ymmärrys perustavanlaatuisista teknologioista tarpeeseen on vähäistä. Tätä näkökulmaa tukee vähäinen kirjallisuus, yksinkertaistettujen alustaratkaisujen yleisyys, sekä ala-arvioisten chatbottien yleisyys. Tämä luo tarpeen ymmärtää ja kouluttaa, kuinka botit ovat pohjimmiltaan rakennettu. Tämä vie tarvittavan teorian lähemmäksi käytäntöä, joka tukee botin kehittäjää rakentamaan ylläpidettävää ja skaalautuvaa arkkitehtuuria. Tämä tutkielma tarkastelee niitä perustavanlaatuisia teknologioita ja konsepteja, jotka saavat tietokoneen ymmärtämään ihmistä. Tapaustutkimusta hyödynnetään ymmärtämään yksityiskohtaisesti, kuinka jokseenkin piilotetut tekstiprosessointitekniikat saavat chatbotin ymmärtämään puhetta. Tapaustutkimusta pohjustaa kirjallisuuskatsaus tekstiprosessoinnista ja niiden yhtymisestä moderneihin chatbotteihin. Yleisestä näkemyksestä tekoälyyn poiketen, chatbotit eivät ole monimutkaisia järjestelmiä. Moderni chatbot käyttää monia eri tekstiprosessointi ja koneälytekniikoita skaalautuvuuden ja suorituskyvyn saavuttamiseksi. Nämä ovat kuitenkin suhteellisen yksinkertaisia, ja tekninen ammattilainen pystyy helposti tekemään korjauksia ja muokkauksia näihin. Chatbot prosessoi käyttäjäsyötteen luonnollisen kielen prosessoinnin tekniikoilla, ja luokittelija luokittelee tuloksen ennalta määriteltyyn ’tarkoitukseen’. Toinen luokittelija antaa jatkotoimenpiteet, oli se sitten vastaus tai jokin muu. Tämänkaltaisin arkkitehtuurin ymmärtäminen tukee bottikehitystyötä, kun ongelmia tai tarpeita uusille ominaisuuksille ilmenee. Chatbots are an extremely prominent way to interact with a software system. The need to build maintainable that scalable systems is more present than ever, while the understanding of needed technologies is generally lacking. This is demonstrated by disconnected literature, the popularity of oversimplified building tools, and generally sub-par conversational agents. This provides a need to understand, and educate, how chatbots are built. This narrows down the gap between theory and practice to an applicable format, where a software developer could have a better stance at building maintainable conversational systems. This thesis studies the underlying techniques and technologies that go in-to chatbot development. A case study is presented with source code to explore, to understand the somewhat hidden structures that go into understanding the user input. A literature review precedes a detailed view of the technologies in a real-life example. Contrary to popular perception, this type of artificial intelligence is not complicated. A modern chatbot uses multiple different components to achieve bot scalability and performance. However, a lot of these technologies are fairly easy to understand and debug to a professional in the technical field. A chatbot processes the input text through NLP-techniques and assigns it to a predefined intent through a classifier. Another classifier is then used to determine proper actions, be it a response or custom software. Understanding this type of pipe-line can prevent technical overhead when fixing issues built on a black box.
first_indexed 2024-09-11T08:52:39Z
format Pro gradu
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "Kypp\u00f6, Jorma", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Heikkil\u00e4, Arttu", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2020-12-10T06:47:17Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2020-12-10T06:47:17Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2020", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/73084", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Chatbotit ovat yleistyv\u00e4 ratkaisu ihmisen ja tietokoneen v\u00e4liseen vuorovaikutukseen. Tarve rakentaa yll\u00e4pidett\u00e4vi\u00e4 ja skaalautuvia keskustelevia ratkaisuja on kasvava, mutta ymm\u00e4rrys perustavanlaatuisista teknologioista tarpeeseen on v\u00e4h\u00e4ist\u00e4. T\u00e4t\u00e4 n\u00e4k\u00f6kulmaa tukee v\u00e4h\u00e4inen kirjallisuus, yksinkertaistettujen alustaratkaisujen yleisyys, sek\u00e4 ala-arvioisten chatbottien yleisyys. T\u00e4m\u00e4 luo tarpeen ymm\u00e4rt\u00e4\u00e4 ja kouluttaa, kuinka botit ovat pohjimmiltaan rakennettu. T\u00e4m\u00e4 vie tarvittavan teorian l\u00e4hemm\u00e4ksi k\u00e4yt\u00e4nt\u00f6\u00e4, joka tukee botin kehitt\u00e4j\u00e4\u00e4 rakentamaan yll\u00e4pidett\u00e4v\u00e4\u00e4 ja skaalautuvaa arkkitehtuuria.\nT\u00e4m\u00e4 tutkielma tarkastelee niit\u00e4 perustavanlaatuisia teknologioita ja konsepteja, jotka saavat tietokoneen ymm\u00e4rt\u00e4m\u00e4\u00e4n ihmist\u00e4. Tapaustutkimusta hy\u00f6dynnet\u00e4\u00e4n ymm\u00e4rt\u00e4m\u00e4\u00e4n yksityiskohtaisesti, kuinka jokseenkin piilotetut tekstiprosessointitekniikat saavat chatbotin ymm\u00e4rt\u00e4m\u00e4\u00e4n puhetta. Tapaustutkimusta pohjustaa kirjallisuuskatsaus tekstiprosessoinnista ja niiden yhtymisest\u00e4 moderneihin chatbotteihin.\nYleisest\u00e4 n\u00e4kemyksest\u00e4 teko\u00e4lyyn poiketen, chatbotit eiv\u00e4t ole monimutkaisia j\u00e4rjestelmi\u00e4. Moderni chatbot k\u00e4ytt\u00e4\u00e4 monia eri tekstiprosessointi ja kone\u00e4lytekniikoita skaalautuvuuden ja suorituskyvyn saavuttamiseksi. N\u00e4m\u00e4 ovat kuitenkin suhteellisen yksinkertaisia, ja tekninen ammattilainen pystyy helposti tekem\u00e4\u00e4n korjauksia ja muokkauksia n\u00e4ihin. Chatbot prosessoi k\u00e4ytt\u00e4j\u00e4sy\u00f6tteen luonnollisen kielen prosessoinnin tekniikoilla, ja luokittelija luokittelee tuloksen ennalta m\u00e4\u00e4riteltyyn \u2019tarkoitukseen\u2019. Toinen luokittelija antaa jatkotoimenpiteet, oli se sitten vastaus tai jokin muu. T\u00e4m\u00e4nkaltaisin arkkitehtuurin ymm\u00e4rt\u00e4minen tukee bottikehitysty\u00f6t\u00e4, kun ongelmia tai tarpeita uusille ominaisuuksille ilmenee.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Chatbots are an extremely prominent way to interact with a software system. The need to build maintainable that scalable systems is more present than ever, while the understanding of needed technologies is generally lacking. This is demonstrated by disconnected literature, the popularity of oversimplified building tools, and generally sub-par conversational agents. This provides a need to understand, and educate, how chatbots are built. This narrows down the gap between theory and practice to an applicable format, where a software developer could have a better stance at building maintainable conversational systems.\nThis thesis studies the underlying techniques and technologies that go in-to chatbot development. A case study is presented with source code to explore, to understand the somewhat hidden structures that go into understanding the user input. A literature review precedes a detailed view of the technologies in a real-life example.\nContrary to popular perception, this type of artificial intelligence is not complicated. A modern chatbot uses multiple different components to achieve bot scalability and performance. However, a lot of these technologies are fairly easy to understand and debug to a professional in the technical field. A chatbot processes the input text through NLP-techniques and assigns it to a predefined intent through a classifier. Another classifier is then used to determine proper actions, be it a response or custom software. Understanding this type of pipe-line can prevent technical overhead when fixing issues built on a black box.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Paivi Vuorio (paelvuor@jyu.fi) on 2020-12-10T06:47:16Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2020-12-10T06:47:17Z (GMT). No. of bitstreams: 0\n Previous issue date: 2020", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "72", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.format.mimetype", "value": "application/pdf", "language": null, "element": "format", "qualifier": "mimetype", "schema": "dc"}, {"key": "dc.language.iso", "value": "eng", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "conversational agent", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "natural language processing", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "natural language understanding", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Rasa", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Natural language processing In chatbot development : how does a chatbot process language?", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "master thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-202012107024", "language": "", "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Pro gradu -tutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Master\u2019s thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietoj\u00e4rjestelm\u00e4tiede", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Information Systems Science", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_bdcc", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "masterThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "601", "language": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "chattibotit", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "luonnollinen kieli", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ohjelmistokehitys", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "l\u00e4hdekoodit", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "kieli ja kielet", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "koneoppiminen", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "chatbots", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "natural language", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "software development", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "source codes", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "languages", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "machine learning", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.format.content", "value": "fulltext", "language": null, "element": "format", "qualifier": "content", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}, {"key": "dc.type.okm", "value": "G2", "language": null, "element": "type", "qualifier": "okm", "schema": "dc"}]
id jyx.123456789_73084
language eng
last_indexed 2025-02-18T10:56:50Z
main_date 2020-01-01T00:00:00Z
main_date_str 2020
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/a8b1b54f-969d-4e8e-9817-f498d85f490a\/download","text":"URN:NBN:fi:jyu-202012107024.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2020
record_format qdc
source_str_mv jyx
spellingShingle Heikkilä, Arttu Natural language processing In chatbot development : how does a chatbot process language? conversational agent natural language processing natural language understanding Rasa Tietojärjestelmätiede Information Systems Science 601 chattibotit luonnollinen kieli ohjelmistokehitys lähdekoodit kieli ja kielet koneoppiminen chatbots natural language software development source codes languages machine learning
title Natural language processing In chatbot development : how does a chatbot process language?
title_full Natural language processing In chatbot development : how does a chatbot process language?
title_fullStr Natural language processing In chatbot development : how does a chatbot process language? Natural language processing In chatbot development : how does a chatbot process language?
title_full_unstemmed Natural language processing In chatbot development : how does a chatbot process language? Natural language processing In chatbot development : how does a chatbot process language?
title_short Natural language processing In chatbot development
title_sort natural language processing in chatbot development how does a chatbot process language
title_sub how does a chatbot process language?
title_txtP Natural language processing In chatbot development : how does a chatbot process language?
topic conversational agent natural language processing natural language understanding Rasa Tietojärjestelmätiede Information Systems Science 601 chattibotit luonnollinen kieli ohjelmistokehitys lähdekoodit kieli ja kielet koneoppiminen chatbots natural language software development source codes languages machine learning
topic_facet 601 Information Systems Science Rasa Tietojärjestelmätiede chatbots chattibotit conversational agent kieli ja kielet koneoppiminen languages luonnollinen kieli lähdekoodit machine learning natural language natural language processing natural language understanding ohjelmistokehitys software development source codes
url https://jyx.jyu.fi/handle/123456789/73084 http://www.urn.fi/URN:NBN:fi:jyu-202012107024
work_keys_str_mv AT heikkiläarttu naturallanguageprocessinginchatbotdevelopmenthowdoesachatbotprocesslanguage