O céu é o limite para a automação inteligente

Aprendizagem de máquina é uma disciplina da Inteligência Artificial que lida com a identificação de padrões que podem ser tratados estatisticamente. Por outro lado, o Processamento de Linguagem Natural, que está muito em voga após o sucesso do Watson no Jeopardy!, é outra disciplina de Inteligência Artificial que, auxiliado pela Linguística, aplica a identificação de padrões na linguagem escrita de vários tipos de textos. Em TI (Tecnologia da Informação), poderíamos usar esses recursos para aplicá-los, por exemplo, numa especificação de software, de procedimentos para manutenção e suporte de servidores de datacenter ou numa proposta comercial. Enfim, em vários tipos de documentos que possuam padrões e algumas regras de formação. A associação desses elementos possibilita a proposta de uma automação mais inteligente em TI.

Algoritmos de aprendizado de máquina podem, por exemplo, inferir os resultados de equações de sistemas complexos que são difíceis de se formular matematicamente. Como boa parte do que fazemos em TI é escrever, definir e descrever, por que não utilizar essas técnicas para introduzir automação inteligente no nosso conjunto de ferramentas de desenvolvimento? Tarefas como estimativas e planejamento poderiam em parte ser automatizadas. Ganharíamos em padronização e rapidez. Isso parece impossível?

A ideia por trás da patente “Effort Estimation Using Text Analysis” é justamente utilizar esses recursos para estimar o esforço de implementação para especificações de software que usem a técnica de casos de uso para captura de requisitos. É uma abordagem estatística e tem como premissa que a automação, a rapidez e a capacidade de exploração rápida de cenários, são vantagens mais importantes que qualquer precisão milimétrica da estimativa obtida por outros métodos.

Para implementar um software assim usamos uma rede neural artificial (RNA), que é um modelo de processamento computacional que se inspira no sistema nervoso dos seres vivos. Ele utiliza vários neurônios artificiais associados em rede para imitar o modelo biológico. A importante característica da RNA é a capacidade de adquirir informação ou em outras palavras aprender.

A rede é “ensinada” a observar padrões no texto a partir de exemplos conhecidos e associá-los ao custo de implementação. Esse custo pode ser expresso em homens-hora ou por outra pontuação genérica. Em seguida a rede pode inferir o valor dos demais casos.

O problema maior está em caracterizar adequadamente os padrões de complexidade que aparecem no texto. Apesar dessa ideia ser generalizável para outras técnicas de especificação de requisitos, em se tratando de casos de uso, a tarefa é mais fácil porque essa técnica possui uma pequena gramática para sua escrita.

Então pontuamos cada elemento de gramática por meio de palavras muito frequentes, e utilizamos os conceitos de similaridade e afinidade de Karov [“Similarity-based Word Sense Disambiguation”, Association for Computational Linguistics, 1998, vol. 24, No. 1, 20 pgs.] e Hashimoto [Dynamics of Internal and Global Structure through Linguistic Interactions, MABS ’98, LNAI 1534, pp. 124-139, 1998.].

Associado com essa pontuação utilizamos pesos, fornecidos por um dicionário de domínios, que foi construído durante o processo de aprendizagem a partir de um vocabulário inicial. A finalidade desse dicionário é armazenar o conhecimento estruturado, já adquirido anteriormente, sobre o domínio e o tipo de sistema que comumente o representa. A rede neural por sua vez irá lidar com o conhecimento não estruturado, conhecimento a ser adquirido durante o treinamento e armazenado na memória da rede.

Podemos dizer que, assim como uma pessoa que lê o texto e avalia o esforço de acordo com sua própria experiência, formando uma impressão de complexidade que o texto lhe causa, também a RNA irá avaliar a pontuação por meio da memória, do volume, da dificuldade de leitura, dos termos complexos ou usuais e dos termos associados a um domínio de aplicação complexo. Esses são exemplos das variáveis que caracterizam os atributos memorizáveis da rede neural na patente mencionada.

Produtos para especificação de requisitos de software ou de planejamento de projetos poderiam se beneficiar de uma automação como essa, pois sempre são acompanhados de algum tipo de estimativa de esforço.

Fonte: ibm.com Autor: Moacyr Mello

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *