示例#1
0
def analiasar_sentimento():
    nova_fachada = Fachada()
    resenha = request.form['txtResenha']

    documento = nova_fachada.analisar_sentimento_documento(resenha)

    if documento.categoria == 'pos':
        sentimento = 'positivo'
    elif documento.categoria == 'neg':
        sentimento = 'negativo'

    # sentimento = documento.categoria

    # Dispoẽ os elementos no template html 'resultado_analise' (gráfico, tweets)
    return render_template('home.html', sentimento=sentimento, resenha=resenha)
示例#2
0
#!/usr/bin/python
# -*- coding: utf-8 -*-

from controle.fachada import Fachada
from dominio.entidades import Documento
from util.classificador_util import ClassificadorUtil
from util.corpus_util import CorpusUtil
import codecs
import os
from random import shuffle
from util.arquivo_util import ArquivoUtil

if __name__ == '__main__':
    texto = raw_input("Resenha: ")
    nova_fachada = Fachada()

    # texto = "Incrível apaixonante emocionante."
    # texto = u"""Imprestável Puro lixo!"""
    # texto = u"livro cansativo, massante."
    # texto = "livro apaixonante, lindo!"
    # texto = u"péssimo horrível desisti enfadonho"
    # texto = u"livro muito chato"

    documento = nova_fachada.analisar_sentimento_documento(texto)

    print "-- sentimento: %s." % documento.categoria

示例#3
0
def analisar_sentimento_conjunto():
    paths = {
        PERCY_JACKSON:
        "/home/lucas/Documents/mineracao_opiniao/resenhas_percy_jackson",
        JOGOS_VORAZES:
        "/home/lucas/Documents/mineracao_opiniao/resenhas_jogos_vorazes",
        CONVERGENTE:
        "/home/lucas/Documents/mineracao_opiniao/resenhas_convergente",
        CIDADES_DE_PAPEL:
        "/home/lucas/Documents/mineracao_opiniao/resenhas_cidades_de_papel"
    }

    diretorio_destino_grafico = "/home/lucas/Documents/mineracao_opiniao/graficos"

    titulo_livro = request.form['titulo_livro']
    documentos_path = paths[titulo_livro]
    documentos = ArquivoUtil().ler_documentos(documentos_path, None)
    documentos_classificados = []

    # Pequena correção no título do livro
    documento = Documento(titulo_livro, None, None, None)
    titulo_livro = DivideCamelCaseCommand().execute(documento).texto

    data_analise = time.strftime("%d/%m/%Y")
    horario_analise = time.strftime("%H:%M:%S")

    nova_fachada = Fachada()

    qtde_pos = 0
    qtde_neg = 0
    for documento in documentos:
        documento_classificado = nova_fachada.analisar_sentimento_documento(
            documento.texto)
        documento_classificado.texto = documento.texto  # Substitui o texto processado pelo original
        documentos_classificados.append(documento_classificado)
        if documento_classificado.categoria == "pos":
            qtde_pos += 1
        elif documento_classificado.categoria == "neg":
            qtde_neg += 1

    # Calcula porcentagem de resenhas positivas e negativas
    porcentagens = CalculoUtil().calcular_porcentagem_opinioes(
        qtde_pos, qtde_neg)
    porcentagem_pos = porcentagens[CalculoUtil().PORCENTAGEM_POSITIVA]
    porcentagem_neg = porcentagens[CalculoUtil().PORCENTAGEM_NEGATIVA]

    grafico = GraficoUtil()

    nome_grafico = grafico.construir_grafico_pizza(porcentagem_pos,
                                                   porcentagem_neg,
                                                   titulo_livro,
                                                   diretorio_destino_grafico)
    '''nome_grafico = grafico.salvar_grafico(grafico_pizza, titulo_livro,
                                          diretorio_destino_grafico)'''

    return render_template('resultado_analise.html',
                           documentos=documentos_classificados,
                           titulo_livro=titulo_livro,
                           data_analise=data_analise,
                           horario_analise=horario_analise,
                           grafico_pizza=nome_grafico)