Para a geração do sistema de diálogos (i.e. chatbots) são necessários dados, no entanto não basta que estes dados sejam coletados e/ou gerados. Estes devem, além disso, ser pré-processados para em seguida serem anotados. O pré-processamento contempla todas as ações realizadas para a configuração das conversas em um formato de arquivo estruturado e organizado. Isso inclui processamentos manuais e automáticos, desenvolvimento de scripts, conversão do formato de arquivos e padronização da estrutura de conversas. Todas estas ações são próprias de cada tipo de dado recebido como entrada, e são fundamentais para a posterior etapa de anotação das conversas.

Geração de Datasets

A possibilidade de utilizar outros datasets como o Ubuntu Dialogue Corpus (https://github.com/rkadlec/ubuntu-ranking-dataset-creator) foi levantada e descartada devido ao idioma ser em inglês e a grande quantidade de dados com gírias gerar traduções caras e pouco precisas, apesar da presença de gírias ser interessante para o estágio de treinamento dos modelos.

Para mitigar esse problema, foi proposta uma metodologia para obtenção e criação de datasets que atendam aos requisitos do projeto.

A plataforma XenForo de criação de fóruns foi escolhida por ser utilizada em diversos sites grandes, nacionais e internacionais.

Os fóruns dessa plataforma organizam suas postagens da seguinte maneira:

Categoria, subcategoria, thread e post.

A categoria é o tema mais abrangente de uma determinada parte do conteúdo, contendo apenas título. A subcategoria é a área específica dentro da categoria, contém título e descrição. As threads são os tópicos onde os usuários colocaram suas mensagens. Cada thread pertencente a uma subcategoria é composta de pelo menos por um título e uma postagem. Cada postagem é denominada de 'post' e pertence sempre a uma thread.

Requisitos

Essa metodologia levou em consideração a simplificação dos requisitos para facilitar sua utilização e implementação. O único requisito é o acesso a mensagens de usuários, que foram escritas por humanos, onde cada mensagem pode referenciar pelo menos uma outra mensagem.

Obtenção

O processo de obtenção deve registrar as informações relacionadas as categorias, subcategorias, thread, post e as relações entre esses elementos. A estrutura organizacional pode conter dados valiosos para diferentes domínios.

Durante o processo de obtenção cada subcategoria deve resultar em um arquivo contendo as informações básicas todas as threads dentro dela, excluindo postagens. Cada thread também tem como resultado um arquivo contendo todos os posts dela.

Possibilidade de continuar processos e garantir a atualização de datasets…

Anonimização

Todos os dados obtidos devem ser anonimizados antes de serem processados, removendo todos os dados que podem ser utilizados para identificar um usuário, como nome ou endereço do perfil.

Essa anonimização deve ser feita nos dados referentes as categorias, subcategorias, threads e postagem e deve estar completa antes dos processos de limpeza e identificação de conversas ser iniciado. Isso garante que os resultados finais obtidos já estejam prontos para utilização.

Processamento

O processamento dos dados brutos obtidos tem como objetivo realizar a remoção de tags e elementos html para o processo de identificação e montagem de conversas paralelas dentro das threads.