(Jurafsky and Martin, 2008). In this paper the term
“chatbot” is used in that same more general sense. In
reality, the kind of systems explored in this paper are
typically task-oriented dialog agents, even though we
may refer them using the word “chatbot” instead of
“task-oriented dialog agent”.
It is also important to notice that even though
dialog systems communicate with users in natural
language, other form of GUI elements are often used
such as predefined quick replies that the user can click
in order to make the interaction faster and easier.
2.2 Natural Language Processing
Natural language processing (NLP) is a subfield of
computer science concerned with using
computational techniques to learn, understand, and
produce human language content (Hirschberg and
Manning, 2015). Some applications of NLP include:
information extraction, transforming unstructured
data found in texts into structured data (Jurafsky and
Martin, 2008); conversational agents, that aid
human-machine communication (Hirschberg and
Manning, 2015); or machine translation, the use of
computers to automate the process of translating
from one language to another, aiding human-human
communication (Hirschberg and Manning, 2015)
(Jurafsky and Martin, 2008).
The factors that have allowed the development of
NLP in the last years twenty years, according to
(Hirschberg and Manning, 2015) , are: (i) increase in
computing power, (ii) the availability of large
amounts of linguistic data, (iii) the development of
successful machine learning methods, and (iv) a
richer understanding of the structure of human
language and its deployment in social context.
2.2.1 Natural Language Understanding in
Dialog Systems
There are various possible structures to represent the
meaning of linguistic expressions. Modern task-based
dialog systems are based on a domain ontology, a
knowledge structure representing the kinds of
intentions the system can extract from user sentences
(Jurafsky and Martin, 2018). The ontology defines a
frame-based representation, with one or more frames,
each a collection of slots, and defines the values that
each slot can take.
Dialog agents typically have a natural language
understanding module. NLU is responsible for the
semantic parsing of user utterance, i.e., it gives
semantic meaning to user utterances. This module is
responsible for selecting the appropriate frames and
filling the slots of the beforementioned domain
ontology structure. This module objective is therefore
to extract three things from the user’s utterance
(Jurafsky and Martin, 2018):
Domain Classification: if the systems is not
single-domain, there is the need to determine what
domain is the user referring to.
Intent Determination: what general task or goal
is the user trying to accomplish. For example, the
task could be to Find a Movie, or Show a Flight, or
Remove a Calendar Appointment.
Slot Filling: extract the particular slots and fillers
that the user intends the system to understand from
their utterance with respect to their intent.
Consider the sentence “Book me a table for two for
Friday night at Sushi Place”. The NLU module
would recognize the domain as “restaurant”; the
intent as “book table” and would fill the time slots
with “night” and “Friday”; the restaurant name slot as
“Sushi Place”; and finally, the slot for the number of
seats as “two”.
The domain and intent determination are usually
treated as a semantic utterance classification (SUC)
problem and the slot filling as a sequence labelling
problem (Zhang and Wang, 2016).
Possible methods used by for domain/intent
recognition and slot filling include: (i) hand-written
rules; (ii) semantic grammars, that are context-free
semantic grammar in which the left-hand side of each
rule corresponds to the slot names; and (iii)
supervised machine learning, using a training set that
associates each sentence with the semantics, we can
train a classifier to map from sentences to intents and
domains, and for slot filling a sequence model can be
used (Jurafsky and Martin, 2018).
Training machine learning models requires
having access to rare expertise, large datasets, and
complex tools, which presents a barrier to smaller
companies (Raman and Tok, 2018). The availability
of NLU services in the cloud has powered the
widespread use of chatbots.
2.3 Uses of Chatbots
There are several tasks that can be performed by
chatbots. This set of tasks make possible a panoply of
use cases that can be supported by bot interaction.
The main tasks performed by a chatbot are: send
alerts; take action; retrieve information and answer
questions.
It is possible to identify some categories of uses
cases that are already being implemented by some
companies taking advantage of the previously
ICEIS 2019 - 21st International Conference on Enterprise Information Systems
432