
(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