# Sistemas de Informação Distribuídos/SID na Web/SisRec

SisRec é um sistema de recomenção baseado em colaboração desenvolvido pelo grupo de pesquisa em sistemas de informação (GPSI) da Universidade Católica de Pelotas (UCPel). Seu objetivo é efetuar recomendações para seus usuários baseado nos perfis dos mesmos.
Estas recomendações podem ser feitas duas formas, on-line e off-line. A principal é a on-line, onde as recomendações são efetuadas a partir da análise de mensagens trocadas em um chat web privado, onde conceitos de uma ontologia serão identificados automaticamente nos textos das mensagens usando técnicas de Text Mining. Essas recomendações são personalizadas para cada membro da discussão, apontando conteúdos, artigos, sites Web, mensagens de discussões anteriores ou usuários mais experientes no tema em discussão.
A segunda forma de recomendação do SisRec, seria utilizando as técnicas off-line, presentes através de um módulo chamado Recommender Engine. Tal módulo possui várias técnicas de recomendação de documentos. Entre elas: Documentos mais acessados no sistema; Lista de documentos mais acessados pelos usuários que mais acessaram/leram; Lista de documentos acessados pelos usuários que mais incluíram documentos na Biblioteca Digital; Lista dos documentos lidos pelos usuários mais ativos em um determinado conceito; E lista dos documentos lidos nos últimos 30 dias pelos usuários mais ativos em um determinado conceito.
O idéia do sistema é favorecer a aprendizagem coletiva (nível social ou interpessoal) e, ao mesmo tempo, as aprendizagens personalizadas (nível individual ou intrapessoal).

# Módulo de Text Mining

O método de Descoberta de Conhecimento em textos utilizado no SisRec pode ser considerado como um processo de classificação, em que o documento é associado a conceitos existentes em uma ontologia através da comparação entre as palavras existentes no documento e as palavras existentes na ontologia.
A ontologia utilizada neste sistema será comentada na próxima seção.
O processo de comparação entre as palavras existentes no documento e as palavras existentes em uma ontologia é feito através de dois vetores, um para cada conjunto de palavras. O processo de obtenção do vetor de palavras extraídas do documento se dá através dos seguintes passos:
* Extração das palavras do documento: o sistema extrai todas as palavras existentes no documento sem distinção entre elas e as coloca em um vetor.
* Retirada das \textit{stopwords}: palavras que não possuem relevância na identificação dos conceitos que o documento está relacionado são retiradas do vetor, um exemplo disso são preposições.
* Cálculo da freqüência relativa: o sistema calcula a freqüência relativa (número de vezes que a palavra aparece no documento dividido pelo número total de termos) de cada palavra e associa o valor encontrado a cada palavra.
Com posse desse vetor, é feito então o produto entre os pesos das palavras presentes na ontologia e os pesos das palavras encontradas no documento. Este produto é feito para termos iguais entre os vetores. A soma desses produtos indica os conceitos aos quais o documento é mais similar.
Foi realizado um experimento com o método sobre documentos textuais o método obteve bons resultados em relação ao nível de acertos. Para o experimento, foram selecionados quinze artigos científicos contidos em NEC and State, sendo categorizados os resumos de cada artigo e frases pertencentes aos resumos.
Para o experimento, foram consideradas certas apenas as respostas em que o conceito identificado era equivalente à entrada do diretório definida em NEC and State. A tabela abaixo apresenta os resultados.
| Tipo de Entrada | Porcentagem de Acertos |
| Resumos | 91,66% |
| Frases do Resumo | 60,97% |

# Ontologia de Domínio criada para o sistema

Segundo SOWA, uma ontologia de domínio (domain ontology) é uma descrição de "coisas" que existem ou podem existir em um domínio.
Esta ontologia de domínio é implementada como uma estrutura hierárquica, contendo um conjunto de conceitos. Cada conceito tem associado uma lista de termos e seus respectivos pesos. Os pesos associados aos termos determinam a probabilidade deste termo identificar o conceito em um documento. Cabe ressaltar que um mesmo termo pode aparecer em mais de um conceito com pesos diferentes, e um conceito pode ser identificado por diferentes termos. O método utilizado aqui segue segue o proposto por Loh et al.. Na Figura abaixo tem uma tela do sistema, onde se pode perceber a estrutura da ontologia utilizada no trabalho.

# Biblioteca Digital

Como o sisrec é um sistema de recomendação, faz-se necessário possuir uma biblioteca digital, assim todos os documentos inseridos no sistema ficam disponíveis tanto para a recomendação, quanto para a consulta direta.
O sistema permite que o usuário leia qualquer documento armazenado, assim aproveitando para analisar o comportamento do usuário e gerar recomendações off-line. Essas recomendações podem ser feitas utilizando várias técnicas de recomendação de documentos. Entre elas: Documentos mais acessados no sistema; Lista de documentos mais acessados pelos usuários que mais acessaram/leram; Lista de documentos acessados pelos usuários que mais incluíram documentos na Biblioteca Digital; Lista dos documentos lidos pelos usuários mais ativos em um determinado conceito; E lista dos documentos lidos nos últimos 30 dias pelos usuários mais ativos em um determinado conceito.

# Descoberta do perfil do usuário

O sistema possui duas formar para identificar o perfil dos seus usuários. A primeira delas é efetuada no momento do cadastro no sistema. É solicitado ao que seja submetido no, momento do seu cadastro, o seu currículo Lattes do CNPq no formato xml.
Este método usado para identificação de áreas de interesses a partir de currículos em formato XML utilizado neste sistema consiste em associar o currículo de um indivíduo a algumas áreas de conhecimento previamente definidas. Assim pode-se considerar que é feito um processo de classificação, isto é, é feita a associação de um currículo a conceitos (áreas) previamente definidas em uma ontologia do domínio.
E a segunda forma de identificar o perfil do usuário, é através da análise dos documentos do usuário. Documento estes podem ser: Artigos Científicos, Trabalho de Conclusão, Dissertação de Mestrado, Capítulos de livros, etc.
Existem três formas de analisar os documentos. Uma delas é analisar os títulos dos documentos, outra forma é analisar as palavras-chaves, ou ainda analisar o documento como um todo (todo texto). Porém de acordo com um experimento feito no SisRec a análise de todo o texto do documento gera uma maior precisão.
O processo de identificação de perfil através de documentos, utiliza o módulo de Text Mining apresentado anterior mente nesse capítulo.
O sistema possui uma ferramenta de upload, onde o usuário pode submeter seus documentos. Estes documentos serão inseridos da biblioteca digital do sistema. Então a ferramenta submete o documento no módulo de Text Mining, e esse efetua seus cálculos de TFIDF com a ontologia e gera como saída uma tabela contendo os conceitos com seus determinados pesos representando o documento, como exemplo na tabela abaixo.
| Áreas | Peso |
| InformationSystems | 0.004476 |
| Expert Systems | 0.001745 |
| Fuzzy Logic | 0.001482 |
| Database | 0.001451 |
Como o resultado do processo de Text Mining gera uma tabela com conceitos para cada documento, foi necessário estudar uma maneira para que pudesse ter no final de todo o processo apenas uma tabela com os conceitos do usuário. Esse estudo teve como objetivo decidir como chegar a esse peso final. Somando os pesos, ou fazendo uma média entre eles.
Então foi decidido usar a soma, pois se o usuário publicou cinco artigos sobre um determinado conceito e apenas um sobre outro, a média faria com que os pesos se equivalessem, e isso estaria a certo ponto errado para o uso desse tipo de análise, pois o conceito em que o usuário mais trabalhou não ficaria em evidencia, podendo diminuir o nível de acerto do seu perfil. Por exemplo: Documento 1 - Conceito: Inteligência Artificial peso 0.0001, Documento 2 - Conceito: Inteligência Artificial peso 0.0001, Documento 3 - Conceito: Inteligência Artificial peso 0.0001. Utilizando a média o peso do conceito ficaria 0.0001, porém utilizando a soma o peso do conceito Inteligência Artificial ficaria 0.0003. Dando maior intensidade nesse conceito para tal usuário.

# Links externos

* SisRec: http://gpsi.ucpel.tche.br/sisrec/
* UCPel: http://www.ucpel.tche.br/
* CNPq: http://www.cnpq.br/
* Plataforma Lattes: http://lattes.cnpq.br/
* ((en)) ACM - Association for Computing Machinery: http://www.acm.org/

# Bibliografia

* ↑ Nunes, M. F. (2006) Modelagem de Perfis Dinâmicos de Usuários para Suporte a Sistemas de Recomendação. Trabalho de Conclusão — Universidade Católica de Pelotas.
* 1 2 NEC and Penn State. (2005). Computer and Information Science Papers CiteSeer Publications ResearchIndex
* ↑ SOWA, J. F. (2002) “Building, sharing, and merging ontologies”, AAAI Press / MIT press, pages 3-41.
* ↑ Loh, S., Wives, L. K., and de Oliveira, J. P. (2000). Concept-based knowledge discovery in texts extracted from the Web. SIGKDD Explor. Newsl. 2, 1 (Jun. 2000), 29-39. DOI= http://doi.acm.org/10.1145/360402.360414