Agrupar objetos é uma tarefa realizada desde o início da existência das bibliotecas. Antes da criação dos primeiros computadores as pessoas já realizavam o agrupamento manual de objetos com o objetivo de facilitar a localização de informação.
A classificação ou categorização de documentos engloba duas etapas. A primeira diz respeito ao processo de agrupamento. Esse processo consiste na identificação das características comuns e não comuns entre documentos. Os documentos com características comuns serão agrupados em uma mesma classe e os que não possuem essas características deverão permanecer em classes diferentes. A segunda diz respeito ao processo de identificação da classe que um documento deve pertencer.
Dentre os tipos de agrupamento, merecem destaque os que tratam do agrupamento de informações textuais (documentos) não estruturadas. O agrupamento de documentos possui basicamente dois tipos. O primeiro, tem o objetivo de agrupar termos (palavras) para formar grupos que definam um mesmo assunto. Esses grupos irão compor um dicionário de palavras, também conhecido por thesaurus. O segundo busca organizar um conjunto desorganizado de documentos em grupos contendo os documentos similares.
O objetivo do agrupamento de informações textuais é separar uma série de documentos dispostos de forma desorganizada em um conjunto de grupos que contenham documentos de assuntos similares. Esse objetivo está baseado no princípio da Hipótese de Agrupamento (Cluster Hypothesis), levantado por Rijsbergen. Este princípio diz que objetos semelhantes e relevantes a um mesmo assunto tendem a permanecer em um mesmo grupo (cluster), pois possuem atributos em comum. A figura 9 apresenta uma visão geral do
processo de agrupamento de documentos contendo informações textuais (RIJSBERGEN, 1979).
Figura 9. Visão geral das técnicas de agrupamento de documentos.
Quanto à forma um agrupamento pode ser feito por partição ou por hierarquia. Na primeira, os objetos são distribuídos em classes distintas, não havendo relação direta entre as classes. Essa forma é conhecida como partição total (flat partition), os documentos são separados exaustivamente e colocados em grupos totalmente diferentes. Na segunda, também conhecida como partição hierárquica (hierarchic partition), o processo de identificação de grupos é realimentado recursivamente, utilizando tanto objetos quanto grupos já identificados previamente como entrada para o processamento. Essa partição gera uma hierarquia de grupos de objetos em forma de árvore invertida.
Devido ao crescimento da internet observa-se o crescimento das pesquisas envolvendo o agrupamento de documentos com informações textuais não estruturadas. Dentre essas pesquisas, merecem destaque as que utilizam a forma de partição total através das técnicas pertencentes à classe graphic-theoretic. Essas técnicas possuem três etapas: identificação e seleção de características, cálculo de similaridade e identificação de aglomerados (Clusters).
A etapa de identificação e seleção de características faz a identificação das características dos documentos, ou seja, é feita a identificação de palavras nos documentos para identificar as que possuem maior grau de discriminação (que caracterizam melhor o
documento). O resultado dessa etapa é a geração de uma lista de palavras (características) relevantes que identificam cada documento.
A etapa de cálculo de similaridades identifica os graus de similaridades entre os documentos, utilizando a lista das características identificadas na etapa anterior. O resultado dessa etapa gera uma matriz que contém os valores de similaridade entre os objetos. A similaridade entre os documentos é proporcional ao número de características entre eles.
A etapa de agrupamento de identificação de aglomerados identifica a correlação entre os elementos da matriz, de acordo com as restrições impostas pelo algoritmo em uso. O resultado dessa etapa gera os grupos e seus respectivos documentos.
A figura 10 apresenta uma visão geral das três etapas do processo de agrupamento de documentos.
Dentre os algoritmos pertencentes à classe graphic-theoretic, podemos citar os seguintes algoritmos: Cliques, Stars, Connected Components, Strings e (KOWALSKI, 1997).
O algoritmo Cliques exige que todos os objetos do cluster sejam similares entre si, respeitando um limite mínimo de similaridade entre os objetos. Esse algoritmo apresenta uma alta coesão entre os objetos.
O algoritmo Stars faz a seleção de um elemento e identifica todos os elementos similares a ele, de acordo com um fator mínimo de similaridade. Através de um item central é feita a conexão de todos os outros componentes do grupo, de forma similar a figura de uma estrela.
O algoritmo Connected Components, também conhecido como single link, trabalha de forma similar ao Cliques; entretanto, os objetos similares de um cluster não precisam necessariamente ser similares com todos os outros objetos do mesmo cluster.
O algoritmo Strings constrói uma cadeia de objetos similares, essa cadeia é semelhante a uma cadeia de caracteres (string). Cada objeto “A” se conecta a um objeto B que se conecta a um objeto C, e assim sucessivamente até que não existam mais conexões. O método consiste em criar uma classe com o primeiro objeto, localizar o próximo objeto similar e adicioná-lo na mesma classe. Em seguida é feita a seleção de um novo objeto (último a entrar no cluster) com o objetivo de localizar o objeto mais similar a ele. Esse processo será repetido até que não existam mais objetos similares.
Dentre os algoritmos de agrupamento pesquisados, foi constatado que o Cliques atende as necessidades do problema de classificação de padrões de conversação, pois ele exige que todos os documentos (arquivos) de uma mesma categoria possuam o mesmo limite mínimo de similaridade. Esse requisito é necessário para o problema de classificação dos padrões de conversação. Esse algoritmo será utilizado na etapa 8 da proposta de construção das bases de conhecimento. Essa etapa será apresentada no próximo capítulo.
METODOLOGIA DE CONSTRUÇÃO DAS BASES DE
CONHECIMENTO
O processo de construção de chatterbots envolve duas tarefas. A primeira está relacionada ao desenvolvimento de mecanismos de processamento de linguagem natural. A segunda está ligada a criação de bases de conhecimento. A tecnologia ALICE engloba as duas tarefas através da integração dos dados (unidades de conhecimento na linguagem AIML) com funções de controle do processamento.
O grande desafio dos pesquisadores de chatterbots é identificar a forma como as pessoas elaboram perguntas sobre dúvidas de um determinado domínio do conhecimento. Algumas técnicas baseadas na psicologia Rogeriana conseguem estabelecer um diálogo, entretanto, elas não são capazes de responder perguntas específicas que podem ser elaboradas de diversas formas (WEIZENBAUM, 1966).
A criação de unidades de conhecimento que permitam a realização de diálogos é uma tarefa manual, realizada por botmasters através da utilização dos recursos da linguagem AIML e com o aproveitamento dos logs das interações realizadas com o chatterbot. Com o passar do tempo e com o aumento no volume de interações é possível criar roteiros de diálogos e respostas para perguntas diversas que normalmente são feitas pelas pessoas que conversam com os chatterbots. Um bom exemplo é o Chatterbot ALICE (WALLACE, 2005).
Dentre os pontos importantes no processo de construção de bases de conhecimento de um chatterbot baseado na tecnologia ALICE merecem destaque: O tratamento de intenção, a criação de unidades de conhecimento que permitam a realização de diálogos, principalmente em situações nas quais o chatterbot não está habilitado para responder e a criação de unidades de conhecimento que contenham perguntas e respostas sobre um determinado domínio do conhecimento.
O tratamento de intenção utiliza informações de intencionalidade com o objetivo de corrigir uma série de problemas que ocorrem com freqüência em diálogos realizados pelos chatterbots existentes. Um exemplo disso ocorre quando o sistema não leva em conta a estrutura global de uma conversação (abertura, desenvolvimento e fechamento). Por exemplo, quando ocorre uma saudação na finalização de um diálogo (NEVES, 2005).
A criação de unidades de conhecimento com perguntas e respostas sobre um determinado domínio do conhecimento é um ponto muito importante, pois fará com que o chatterbot seja capaz de esclarecer dúvidas de usuários nos mais diversos domínios do
conhecimento. Além disso, um dos principais problemas encontrados na maioria dos Chatterbots é a falta de uma base de conhecimento consistente que permita ao Chatterbot responder perguntas específicas sobre um determinado domínio do conhecimento. O foco desse trabalho é propor uma alternativa para tratar esse ponto do processo de construção de bases de conhecimento à luz dos fundamentos da lingüística de corpus.