def analisar_sentimento_documento(self, texto): # Instancia um documento com o texto recebido por parametro documento = Documento(texto, None, self._CORPUS, "nome") # Processa o documento, antes de analisar o sentimento deste documento = self.processar_documento(documento) # Abre classificador classificador = ClassificadorUtil().abrir_classificador_treinado(self._CLASSIFICADOR_PATH) # Abre o arquivo com as palavras frequentes do corpus palavras_frequentes = self._CORPUS.abrir_arquivo_palavras_frequentes(self._PATH_PALAVRAS_FREQUENTES_CORPUS) # palavras_frequentes = None # Analisa o sentimento do texto do documento e o retorna sentimento = classificador.classify(Documento.get_features(documento, palavras_frequentes)) documento.categoria = sentimento return documento
def analisar_sentimento_documento(self, texto): # Instancia um documento com o texto recebido por parametro documento = Documento(texto, None, self._CORPUS, "nome") # Processa o documento, antes de analisar o sentimento deste documento = self.processar_documento(documento) # Abre classificador classificador = ClassificadorUtil().abrir_classificador_treinado( self._CLASSIFICADOR_PATH) # Abre o arquivo com as palavras frequentes do corpus palavras_frequentes = self._CORPUS.abrir_arquivo_palavras_frequentes( self._PATH_PALAVRAS_FREQUENTES_CORPUS) # palavras_frequentes = None # Analisa o sentimento do texto do documento e o retorna sentimento = classificador.classify( Documento.get_features(documento, palavras_frequentes)) documento.categoria = sentimento return documento
nomes = os.listdir(documentos_path) shuffle(nomes) documentos = [] for nome_documento in nomes: 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
#!/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."
# -*- coding: utf-8 -*- from util.classificador_util import ClassificadorUtil if __name__ == '__main__': classificador_path = "/home/lucas/Documents/mineracao_opiniao/classificadores_treinados/" \ "naive_bayes_3860_resenhas_2015-09-25.00.52.23.944959.pickle" classificador = ClassificadorUtil().abrir_classificador_treinado( classificador_path) print classificador.show_most_informative_features(15)
# -*- coding: utf-8 -*- from util.classificador_util import ClassificadorUtil if __name__ == '__main__': classificador_path = "/home/lucas/Documents/mineracao_opiniao/classificadores_treinados/" \ "naive_bayes_3860_resenhas_2015-09-25.00.52.23.944959.pickle" classificador = ClassificadorUtil().abrir_classificador_treinado(classificador_path) print classificador.show_most_informative_features(15)