Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 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

Exemplo n.º 5
0
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 20 09:05:00 2015

@author: lucas
"""

import codecs
from controle.fachada import Fachada
from dominio.entidades import Documento

DIRETORIO_ARQUIVO = "/home/lucas/Desktop"
# NOME_ARQUIVO = "a_arte_de_fazer_acontecer_resenha18920039_-_5_estrelas.txt"
# NOME_ARQUIVO = "teste_negacao.txt"
NOME_ARQUIVO = "dez_leis.txt"
documento = Documento('', "sem_categoria", None, "")

with codecs.open(DIRETORIO_ARQUIVO + "/" + NOME_ARQUIVO, "r", "utf-8") as f:
    documento.texto = f.read()

print documento.texto

nova_fachada = Fachada()
documento = nova_fachada.processar_documento(documento)
Exemplo n.º 6
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)
Exemplo n.º 7
0
# -*- coding: utf-8 -*-

from controle.fachada import Fachada
from util.arquivo_util import ArquivoUtil

documento_path = "/home/lucas/Documents/mineracao_opiniao"

nova_fachada = Fachada()

# Lê documento
documentos = ArquivoUtil().ler_documentos(documento_path, "INDEFINIDA")

print "-- processando todos os documentos."
print " -- Texto original"
print documentos[0].texto
nova_fachada.processar_documento(documentos[0])
Exemplo n.º 8
0
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: ")

    raiz_corpus = "/home/lucas/Documents/mineracao_opiniao/corpus_resenhas_livros_processado_sem_stem_e_negacao"

    classificador_path = "/home/lucas/Documents/mineracao_opiniao/classificadores_treinados/" \
                         "classificadores_resenhas_livros/" \
                         "classificador_naive_bayes_resenhas_livros_3860_sem_stem_negacao_2015-09-23.16.17.32.802909.pickle"

    nova_fachada = Fachada()
    corpus = CorpusUtil(raiz_corpus)

    # texto = "Excelente livro, recomendo! Muito bom, vale a pena."
    '''texto = """Quando terminei de ler o livro fiquei admirada com o autor! Ele é simplesmente magnifico.
     Não vou negar que depois de começar a ler a segunda parte da obra fiquei entediada, mas não fui
     capaz de abandona-la, ainda bem, mas quando cheguei no final do livro entendi o motivo da segunda
     parte. O livro é muito bem bolado e vale a pena ler!"""'''

    documentos_path = raiz_corpus + "/pos"

    nomes = os.listdir(documentos_path)
    shuffle(nomes)

    documentos = []
    for nome_documento in nomes:
Exemplo n.º 9
0
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 24 22:34:21 2015

@author: lucas
"""

from controle.fachada import Fachada
from util.classificador_util import ClassificadorUtil

CORPUS_RAIZ = "/home/lucas/Documents/mineracao_opiniao/corpus_resenhas_livros_processadas_c"

DIRETORIO_DESTINO = "/home/lucas/Documents/mineracao_opiniao/classificadores_treinados"

nova_fachada = Fachada()
classificador = nova_fachada.treinar_classificador(CORPUS_RAIZ)

resultado = ClassificadorUtil().salvar_classificador_treinado(
    classificador, "3860_resenhas_negacao", DIRETORIO_DESTINO)

if resultado:
    print "-- Classificador salvo com sucesso."
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: ")

    raiz_corpus = "/home/lucas/Documents/mineracao_opiniao/corpus_resenhas_livros_processado_sem_stem_e_negacao"

    classificador_path = "/home/lucas/Documents/mineracao_opiniao/classificadores_treinados/" \
                         "classificadores_resenhas_livros/" \
                         "classificador_naive_bayes_resenhas_livros_3860_sem_stem_negacao_2015-09-23.16.17.32.802909.pickle"
    
    nova_fachada = Fachada()
    corpus = CorpusUtil(raiz_corpus)

    # texto = "Excelente livro, recomendo! Muito bom, vale a pena."
    '''texto = """Quando terminei de ler o livro fiquei admirada com o autor! Ele é simplesmente magnifico.
     Não vou negar que depois de começar a ler a segunda parte da obra fiquei entediada, mas não fui
     capaz de abandona-la, ainda bem, mas quando cheguei no final do livro entendi o motivo da segunda
     parte. O livro é muito bem bolado e vale a pena ler!"""'''

    documentos_path = raiz_corpus + "/pos"

    nomes = os.listdir(documentos_path)
    shuffle(nomes)

    documentos = []
    for nome_documento in nomes:
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Created on Mon Aug 24 22:34:21 2015

@author: lucas
"""

from controle.fachada import Fachada
from util.classificador_util import ClassificadorUtil

CORPUS_RAIZ = "/home/lucas/Documents/mineracao_opiniao/corpus_resenhas_livros_processadas_c"

DIRETORIO_DESTINO = "/home/lucas/Documents/mineracao_opiniao/classificadores_treinados"

nova_fachada = Fachada()
classificador = nova_fachada.treinar_classificador(CORPUS_RAIZ)

resultado = ClassificadorUtil().salvar_classificador_treinado(classificador,
                                                              "3860_resenhas_negacao",
                                                              DIRETORIO_DESTINO)

if resultado:
    print "-- Classificador salvo com sucesso."
Exemplo n.º 12
0
# -*- coding: utf-8 -*-

from controle.fachada import Fachada
from util.arquivo_util import ArquivoUtil

RESENHAS_RAIZ = "/home/lucas/Documents/mineracao_opiniao/resenhas_percy_jackson"
RESENHAS_POS = RESENHAS_RAIZ + "/pos"
RESENHAS_NEG = RESENHAS_RAIZ + "/neg"

diretorio_destino_raiz = "/home/lucas/Documents/mineracao_opiniao/resenhas_percy_jackson_processadas"
diretorio_destino_pos = diretorio_destino_raiz + "/pos"
diretorio_destino_neg = diretorio_destino_raiz + "/neg"

nova_fachada = Fachada()

print "-- lendo todos os documentos."
documentos = ArquivoUtil().ler_documentos(RESENHAS_RAIZ, "INDEFINIDA")

print "-- processando todos os documentos."
nova_fachada.processar_documentos_corpus(documentos, diretorio_destino_raiz)

# print "-- lendo documentos positivos"
# documentos_pos = ArquivoUtil().ler_documentos(RESENHAS_POS, 'pos')

# print "-- processando documentos positivos"
# nova_fachada.processar_documentos_corpus(documentos_pos, diretorio_destino_pos)

# print "-- lendo documentos negativos"
# documentos_neg = ArquivoUtil().ler_documentos(RESENHAS_NEG, 'neg')

# print "-- processando documentos negativos"