示例#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
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)
示例#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)
示例#4
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

示例#5
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)
示例#6
0
            # lista com o conteúdo de todos estes documentos.
            with codecs.open(documentos_path + '/' + nome_documento, 'r',
                             'utf-8') as f:
                texto = f.read()
                documentos.append(
                    Documento(texto, None, corpus, nome_documento))

    classificador = ClassificadorUtil().abrir_classificador_treinado(
        classificador_path)

    qtde_pos = 0
    qtde_neg = 0
    for documento in documentos:
        # print documento.texto
        documento = nova_fachada.processar_documento(documento)
        sentimento = nova_fachada.analisar_sentimento_documento(
            documento, classificador)
        if sentimento == 'pos':
            qtde_pos += 1
            print documento.nome
            break
        elif sentimento == 'neg':
            qtde_neg += 1

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

    print "-- quantidade positiva: %d" % qtde_pos
    print "-- quantidade negativa: %d" % qtde_neg

    # print palavras_frequentes_corpus
    # print "-- sentimento: %s." % sentimento
        if nome_documento.endswith('.txt'):
            # Lê todos os novos documentos coletados e monta uma
            # lista com o conteúdo de todos estes documentos.
            with codecs.open(documentos_path + '/' + nome_documento, 'r', 'utf-8') as f:
                texto = f.read()
                documentos.append(Documento(texto, None, corpus, nome_documento))

    classificador = ClassificadorUtil().abrir_classificador_treinado(classificador_path)


    qtde_pos = 0
    qtde_neg = 0
    for documento in documentos:
        # print documento.texto
        documento = nova_fachada.processar_documento(documento)
        sentimento = nova_fachada.analisar_sentimento_documento(documento, classificador)
        if sentimento == 'pos':
            qtde_pos += 1
            print documento.nome
            break
        elif sentimento == 'neg':
            qtde_neg += 1

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

    print "-- quantidade positiva: %d" % qtde_pos
    print "-- quantidade negativa: %d" % qtde_neg

    # print palavras_frequentes_corpus
    # print "-- sentimento: %s." % sentimento