Ejemplo n.º 1
0
 def setUp(self):
     print "Iniciando teste"
     self.sf = SentiFinder(Sentilex('../SentiLex-PT02'))
Ejemplo n.º 2
0
class SentiFinderTestCase(unittest.TestCase):

    """Testa o SentimentFinder. """

    def setUp(self):
        print "Iniciando teste"
        self.sf = SentiFinder(Sentilex('../SentiLex-PT02'))

    def test_is_instance(self):
        self.assertIsInstance(self.sf, SentiFinder)

    def test_sentence_tokenization(self):
        texto = "Importante. Para mim infelizmente não funcionou, "
        texto += "mas conheço pessoas que deu muito certo a inscrição"
        texto += " e está trabalhando."
        self.assertIsInstance(self.sf.sent_tokenize(texto), list)
        self.assertEquals(len(self.sf.sent_tokenize(texto)), 2)

    def test_word_tokenization(self):
        texto = "O rato, roeu a roupa. Do rei de roma."
        esperado = ['o', 'rato', 'roeu', 'a', 'roupa', 'do', 'rei',
                    'de', 'roma']
        self.assertEquals(self.sf.word_tokenize(texto), esperado)

    def test_text_tokenization(self):
        texto = "Importante. Para mim infelizmente não funcionou, "
        texto += "mas conheço pessoas que deu muito certo a inscrição"
        texto += " e está trabalhando."
        esperado = [['importante'],
                    ['para', 'mim', 'infelizmente', 'não', 'funcionou', 'mas',
                     'conheço', 'pessoas', 'que', 'deu', 'muito', 'certo', 'a',
                     'inscrição', 'e', 'está', 'trabalhando']]
        self.assertEquals(self.sf.text_tokenizer(texto), esperado)

    def test_stopword_removal(self):
        texto = "Vamos ao castelo. Pois a noite é nossa."
        esperado = [['vamos', 'castelo'],
                    ['pois', 'noite', 'é', 'nossa']]
        tokenizado = self.sf.text_tokenizer(texto)
        self.assertEquals(self.sf.remove_stopwords(tokenizado), esperado)

    def test_sentiment_score(self):
        texto = "O site é bom. E o visual é bonito."
        texto += " Mas a usabilidade é péssima."
        esperado = 1
        processado = self.sf.remove_stopwords(self.sf.text_tokenizer(texto))
        self.assertEquals(self.sf.get_score(processado), esperado)

    def test_sentimento_negativo(self):
        texto = "Não gostei. O site não me ajudou."
        processado = self.sf.remove_stopwords(self.sf.text_tokenizer(texto))
        self.assertLess(self.sf.get_score(processado), 0)

    def test_sentimento_positivo(self):
        texto = "Gostei bastante. O site me ajudou a encontrar um emprego"
        processado = self.sf.remove_stopwords(self.sf.text_tokenizer(texto))
        self.assertGreater(self.sf.get_score(processado), 0)

    def test_sentimento_neutro(self):
        texto = "Gostei do serviço. Mas o site é um lixo."
        processado = self.sf.remove_stopwords(self.sf.text_tokenizer(texto))
        self.assertEquals(self.sf.get_score(processado), 0)

    def testGetScoreFromUnprocessedText(self):
        texto = "Não gostei. O site não me ajudou."
        self.assertLess(self.sf.scoreFromText(texto), 0)

    def testClassifyText(self):
        texto = "Não gostei. O site não me ajudou."
        esperado = {'polaridade': 'negativo',
                    'score': -1}
        self.assertEquals(self.sf.classifyText(texto), esperado)

    def testSentimentoNegativo2(self):
        texto = "Muito caro!!!"
        esperado = {'polaridade': 'negativo',
                    'score': -1}
        self.assertEquals(self.sf.classifyText(texto), esperado)

    def testSentimentoNegativo3(self):
        texto = "Não é bom."
        esperado = {'polaridade': 'negativo',
                    'score': -1}
        self.assertEquals(self.sf.classifyText(texto), esperado)

    def testCorrectText(self):
        texto = "Umrato"
        processado = self.sf.remove_stopwords(self.sf.text_tokenizer(texto))
        esperado = [["um", "rato"]]
        self.assertEquals(self.sf.correctText(processado), esperado)
Ejemplo n.º 3
0
"""

import mysql.connector
from sentifinder import SentiFinder
from sentilex import Sentilex
import sys

db_config = {
    'user': '******',
    'host': '127.0.0.1',
    'database': 'modelo2'
}

#####################################################################
sf = SentiFinder(Sentilex('../SentiLex-PT02'))
#####################################################################

conn = mysql.connector.connect(**db_config)
conn2 = mysql.connector.connect(**db_config)
cursor = conn.cursor()
cursor2 = conn2.cursor()

qry = """
SELECT id_comentario, comentario_usuario FROM comentarios;
"""
insert = ("""
INSERT INTO classificacao(id_comentario, classe, score)
VALUES(%s, %s, %s)
""")