Utilize este identificador para referenciar este registo:
https://hdl.handle.net/1822/65020
Título: | Modelação e prototipagem de ChatBots |
Outro(s) título(s): | Modeling and prototyping ChatBots |
Autor(es): | Pereira, Carlos António Senra |
Orientador(es): | Pinto, Luís F. Almeida, J. J. |
Palavras-chave: | ChatBot Modelação Padrões linguísticos ERL Regras Gerador Domain specific language Open-source Modeling Linguistic patterns Rules Generator |
Data: | 2018 |
Resumo(s): | Genericamente, ChatBots são programas que interagem com utilizadores humanos
através de linguagens naturais. Os ChatBots podem ser criados com objetivos
muito diversos, como por exemplo manter uma conversa “inteligente” com um humano,
ou prestar serviços em algum domínio concreto, como seja atender chamadas
num call-center, reencaminhado-as para um operador. Dada a heterogeneidade dos
ChatBots, é importante identificar os seus princípios gerais de organização e de
funcionamento. Neste trabalho foi desenvolvida uma proposta original de modelação
de ChatBots, que procura identificar estes princípios gerais.
Na modelação que desenvolvemos, os ChatBots são organizados em três componentes
principais: a interface com o utilizador, o núcleo e o estado do ChatBot. O
núcleo é a peça central do funcionamento do Chatbot, pois ele é responsável por
processar as interações recebidas do utilizador, gerando reações em resposta. O
núcleo contém um conjunto de regras que associam funções de reação a padrões
linguísticos que, juntamente com o estado do ChatBot, determinam a escolha da
reação a uma dada interação do utilizador. Para a modelação de padrões linguísticos,
desenvolvemos aquilo que designamos por expressões regulares linguísticas
(ERL). As ERL baseiam-se em expressões regulares, envolvendo etiquetas gramaticais,
e incluem um mecanismo para extração das palavras-chave de um padrão
linguístico, e deram origem a uma Domain Specific Language.
A modelação que desenvolvemos permite a criação de um motor geral para a construção
de ChatBots. Para uma prova de conceito, foi criado o Diabrete: um motor
geral, open-source, escrito em Python, versão 3, com a base de dados em MySQL,
que permite a criação de ChatBots que seguem a modelação desenvolvida neste
trabalho. Na implementação do Diabrete recorremos a algumas ferramentas opensource,
para levar a cabo as tarefas da análise sintática das frases dos utilizadores
(biblioteca FreeLing) e para a construção de um classificador baseado em técnicas
de machine learning para a escolha da reação a apresentar a uma dada interação
do utilizador (biblioteca NLTK). ChatBots are programs that interact with human users through natural languages. ChatBots can be created for very different purposes, such as maintaining an ”inteligent”conversation with a human, or providing services in a specific domain, such as answering calls in a call-center, and forward them to an operator. Given the heterogeneity of ChatBots, it becomes important to identify their general principles of organization and operation. In this work, we identify some of these general principles, and develop a new proposal for the modeling of ChatBots. In the developed model, ChatBots are organized into three main components: the user interface, the core of the ChatBot, and the state of the ChatBot. The core is the centerpiece of Chatbot’s operation, as it is responsible for processing the interactions received from the user, generating reactions in response. The core contains a set of rules that associates reaction functions with linguistic patterns that, together with the state of the ChatBot, determine the choice of reaction to a given user interaction. For modeling linguistic patterns, we develop what we call regular linguistic expressions (ERL). ERLs are based on regular expressions involving grammatical tags, include a mechanism for extracting the keywords from a linguistic standard, and have given rise to a Domain Specific Language. The model that we developed allows the design of a general generator for the construction of ChatBots. For a proof of concept, the Diabrete was created. Diabrete is a general, open-source generator, written in Python, version 3, with the database in MySQL, which allows the construction of ChatBots that follow the modeling developed in this work. In the implementation of Diabrete, we used some opensource tools to perform the tasks of the user-generated sentences (library FreeLing) and to construct a classifier based on machine learning techniques for the choice of reaction to be presented to a given user interaction (library NLTK). |
Tipo: | Dissertação de mestrado |
Descrição: | Relatório de estágio de mestrado em Matemática e Computação |
URI: | https://hdl.handle.net/1822/65020 |
Acesso: | Acesso aberto |
Aparece nas coleções: | BUM - Dissertações de Mestrado DMA - Dissertações de mestrado |
Ficheiros deste registo:
Ficheiro | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Carlos Antonio Senra Pereira.pdf | Dissertação de Mestrado | 861,05 kB | Adobe PDF | Ver/Abrir |