Example #1
0
    def __init__(self):
        # Commands disponiveis.
        # Regras de negócio para processar os documentos.
        # Existe uma ordem correta de processamento das regras,
        # portanto a ordem das regras nessa lista é importante.
        #
        # No momento, notações como 'emoticon_feliz' e 'simbolo_monetario'
        # também são alterados pelo stemmer.

        # Processar 'DivideCamelCaseCommand' antes de 'ProcessaNegacaoCommand',
        # evita erros como 'NAO_JKRowling'.
        self.regras_negocio = [
            CorrigeAbreviacaoContracaoCommand(),
            RemoveRTCommand(),
            CorrigeRisadaCommand(),
            RemoveNumerosCommand(),
            PadronizaSimboloMonetarioCommand(),
            PadronizaLinksCommand(),
            RemoveEmailCommand(),
            ProcessaEmoticonsCommand(),
            DivideCamelCaseCommand(),
            ConverteLowerCaseCommand(),
            # StemmerCommand(),
            # ProcessaNegacaoCommand(),
            RemovePontuacaoCommand(),
            RemoveStopwordsCommand(),
            RemoveEspacosExtraCommand()
        ]
        '''self.regras_negocio = [StemmerCommand()]'''

        self._CLASSIFICADOR_PATH = "/home/lucas/Documents/mineracao_opiniao/classificadores_treinados/" \
                                   "naive_bayes_3860_resenhas_2015-09-25.00.52.23.944959.pickle"
        '''self._CLASSIFICADOR_PATH = "/home/lucas/Documents/mineracao_opiniao/classificadores_treinados/" \
                                   "naive_bayes_3860_resenhas_negacao_2015-10-10.16.54.27.113297.pickle"'''

        self._CORPUS_RAIZ = "/home/lucas/Documents/mineracao_opiniao/corpus_resenhas_livros_processadas"

        self._PATH_PALAVRAS_FREQUENTES_CORPUS = "/home/lucas/Documents/mineracao_opiniao/palavras_frequentes_corpus/" \
                                                "palavras_frequentes_2015-09-25.15.05.22.013713.pickle"

        # self._MODO_ANALISE_PROBABILISTICO = "modo_probabilistico"
        # self._MODO_ANALISE_DICIONARIO = "modo_dicionario"

        self._CORPUS = CorpusUtil(self._CORPUS_RAIZ)
Example #2
0
    def treinar_classificador(raiz_corpus):
        """Documentar
        """
        minuto_incio = datetime.now().minute

        corpus = CorpusUtil(raiz_corpus)

        train_set = corpus.get_train_set()
        '''print " ++ len(train_set): %d" % len(train_set)
        print " ++ type(train_set): %s" % type(train_set)

        test_set = corpus.get_test_set()

        print " ++ len(test_set): %d" % len(test_set)
        print " ++ type(test_set): %s" % type(test_set)

        # test_set
        qtde_pos = 0
        qtde_neg = 0
        for features in test_set:

            if features[1] == 'pos':
                qtde_pos += 1
            elif features[1] == 'neg':
                qtde_neg += 1

            # print " ++ features[1]: ", features[1]

        print "Quantidade de documentos positivos em 'test_set': %d" % qtde_pos
        print "Quantidade de documentos negativos em 'test_set': %d" % qtde_neg'''

        classificador = NaiveBayesClassifier.train(train_set)
        print " -- Classificador treinado com sucesso."

        minuto_fim = datetime.now().minute

        tempo_decorrido = minuto_fim - minuto_incio

        print "-- Tempo decorrido: %s minutos." % str(tempo_decorrido)

        return classificador
Example #3
0
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:
        if nome_documento.endswith('.txt'):
Example #4
0
__author__ = 'lucas'

from util.corpus_util import CorpusUtil
import pickle

if __name__ == "__main__":

    corpus_raiz = "/home/lucas/Documents/mineracao_opiniao/corpus_resenhas_livros_processadas"
    corpus = CorpusUtil(corpus_raiz)
    palavras_frequentes = corpus.gravar_palavras_frequentes()