4) { while ($ads2 == $ads1) { $ads2 = rand(1, $slides); } } $ads3 = rand(1, $slides); if ($slides > 4) { while (($ads3 == $ads2) || ($ads3 == $ads1)) { $ads3 = rand(1, $slides); } } ?>
REDES NEURAIS / INTELIGÊNCIA ARTIFICIAL  
TRABALHO 2 APRENDIZADO DE MÁQUINA  
O objetivo do Trabalho 2 é desenvolver um sistema de análise de sentimento para o  
reconhecimento de opiniões positivas e negativas em avaliações de filmes.  
Exemplo de avaliação positiva:  
I gave this film my rare 10 stars. When I first began watching it and realized it would  
not be a film with a strong plot line I almost turned it off. I am very glad I didn't. This  
is a character driven film, a true story, which revolves mainly around the life of Rachel  
"
Nanny" Crosby, a strong, beautiful (inside and out)Black woman and how she touched  
the lives of so many in the community of Lackawanna. Highly interesting not only its  
strong characterizations of Nanny and the people who lived at her boardinghouse, but  
also it gives us a look at what life and community were like for African Americans in  
the 1950's, prior to integration, and the good and bad sides of segregation and how it  
ultimately affected and changed the Black community. In addition to excellent  
performances by all members of the cast, there is some fine singing and dancing from  
that era.”  
Exemplo de avaliação negativa:  
I have not seen many low budget films I must admit, but this is the worst movie ever  
probably, the main character the old man talked like, he had a lobotomy and lost the  
power to speak more than one word every 5 seconds, a 5 year old could act better. The  
story had the most awful plot, and well the army guy had put what he thought was army  
like and then just went over the top, I only watched it to laugh at how bad it was, and  
hoped it was leading onto the real movie. I can’t believe it was under the 2 night rental  
thing at blockbusters, instead of a please take this for free and get it out of our sight. I  
think there was one semi decent actor other than the woman, I think the only thing OK  
with the budget was the make-up, but they show every important scene of the film in the  
beginning music bit. Awful simply awful.”  
O seu sistema deve ser capaz de reconhecer automaticamente avaliações positivas e  
negativas de acordo com o texto fornecido pelo avaliador.  
Para essa tarefa, você tem a disposição um conjunto de 50 mil exemplos de avaliações  
de filmes extraídos do IMDB (25 mil avaliações positivas e 25 mil avaliações  
negativas). Para o desenvolvimento do sistema, você deve utilizar um método de  
aprendizado de máquina supervisionado, visto que temos um conjunto rotulado de  
exemplos para treinamento (avaliações de filmes). Para isso, você deve seguir os  
seguintes passos:  
1
) Definir quais serão os atributos que serão usados para descrever os exemplos de  
treinamento.  
2
3
) Criar um programa para extrair os atributos das avaliações de filmes para gerar  
um conjunto de treinamento e um conjunto de validação. Normalmente gera-se  
um único conjunto de dados e depois se divide ele em dois conjuntos  
(
treinamento e validação). Cada avaliação de filme será um exemplo de  
treinamento.  
) Utilizar 4 algoritmos de aprendizado supervisionado, treinando-os com o  
conjunto de treinamento e depois realizando classificação do conjunto de testes  
para verificar qual algoritmo apresenta a melhor taxa de reconhecimento. Devem  
ser utilizados os seguintes algoritmos:  
Árvores de Decisão  
K-Nearest Neighbor (KNN)  
Support Vector Machine (SVM)  
Rede Neural (usando backpropagation)  
Se a taxa de reconhecimento estiver muito baixa para todos os algoritmos, deve-  
se retornar para a etapa 1 e selecionar melhor os atributos para descrever os  
exemplos de treinamento.  
4
) Com base nos resultados dos testes, você deve implementar um programa que  
utilize o algoritmo que obteve melhores resultados na linguagem de sua  
preferencia. É permitida a utilização de bibliotecas que implementem o  
algoritmo escolhido. Exemplos:  
Weka Lib Java (http://www.cs.waikato.ac.nz/ml/weka/)  
FANN C/C++ (http://leenissen.dk/fann/wp/)  
LibSVM C/C++/Java (https://www.csie.ntu.edu.tw/~cjlin/libsvm/)  
Informações Adicionais:  
Durante a etapa de teste dos 4 algoritmos não é necessário implementar todos os  
classificadores para realizar os experimentos. É permitida a utilização de  
ferramentas de aprendizado de máquina, como por exemplo, o Weka  
(
http://www.cs.waikato.ac.nz/ml/weka/).  
O download do conjunto de dados de avaliações de filmes pode ser feito  
acessando o seguinte link:  
http://edirlei.3dgb.com.br/aulas/ia_2014_2/movie_review_dataset.zip  
Ao realizar experimentos no Weka, sempre faça cross-validation com pelo  
menos 10 folds.  
A implementação do melhor algoritmo pode ser feita em qualquer linguagem  
C/C++, C#, Java...).  
(
Você deve decidir quais atributos serão utilizados pelos classificadores. A  
classificação pode piorar ou melhorar dependendo do conjunto de atributos  
utilizado.  
É obrigatório a realização de pelo menos 4 testes com conjuntos de atributos  
diferentes ou variações nos parâmetros dos algoritmos. Os resultados destes  
testes devem ser devidamente apresentados no dia da apresentação. Verifique o  
item “Forma de Avaliação para saber quais informações sobre os testes devem  
ser documentadas e incluídas na apresentação.  
Dicas:  
O modelo bag-of-words pode ser uma boa opção para extrair características para  
descrever os exemplos de treinamento:  
http://en.wikipedia.org/wiki/Bag-of-words_model  
Para se obter melhores resultados, é possível combinar o modelo bag-of-words  
com o TF-IDF:  
http://en.wikipedia.org/wiki/Tf%E2%80%93idf  
Se as abordagens estatísticas não estiverem dando bons resultados, é possível  
adotar um modelo semântico. Um possível caminho é a utilização do Stanford  
Parser:  
http://nlp.stanford.edu/software/lex-parser.shtml  
http://nlp.stanford.edu:8080/parser/index.jsp (versão online para testes)  
Forma de Avaliação:  
Será avaliado se todas as etapas do processo foram cumpridas corretamente. A  
avaliação também será baseada na apresentação dos resultados durante a aula.  
Essa apresentação deverá conter:  
Descrição da modelagem dos exemplos de treinamento:  
o Atributos selecionados para descrever os exemplos;  
o Justificativa para a escolha dos atributos;  
o Estrutura dos exemplos;  
Descrição dos experimentos realizados:  
o Variações na modelagem dos exemplos;  
o Variações no conjunto treinamento e testes;  
o Variação nos parâmetros dos algoritmos;  
Comparação dos algoritmos analisados:  
o Taxa de reconhecimento;  
o Tempo gasto no processo de treinamento;  
o Tempo gasto no processo de classificação de um exemplo desconhecido;  
Implementação:  
o Descrição de como o algoritmo escolhido foi implementado;  
o Resultados alcançados pelo algoritmo que foi implementado (tempo  
gasto no processo de treinamento, tempo gasto no processo de  
classificação de um exemplo desconhecido, taxa de reconhecimento).  
Bônus:  
O trabalho que conseguir a maior taxa de reconhecimento receberá 2.0 pontos  
extras na nota.  
Data de Entrega:  
9/06/2017  
2
Forma de Entrega:  
Os trabalhos devem ser apresentados na aula do dia 29/06 (quinta-feira). Todos devem  
enviar o trabalho até o dia 29/06 para o email edirlei.slima@gmail.com.