예제 #1
0
 def executar(dirBase, listN, listL, comConsultaRetirada, comQuebraLinha, comComentariosELiterais, comTermos1Ocorrencia):
     resultadosExperimentos = []
     
     for n in listN:
         preparador = Preparador(config.dirBasePreparada, config.extensaoPadrao, n, comQuebraLinha, comComentariosELiterais)
         # Configura o preparador da consulta (o baseline e comComentariosELiterais = False)
         preparadorConsulta = Preparador(config.dirBasePreparada, config.extensaoPadrao, n, comQuebraLinha, False)
         
         # Antes de iniciar a preparacao dos arquivos, esvazia o diretorio onde os n-grams ficarao
         Util.esvaziarDiretorio(config.dirBasePreparada)
         # Recupera e salva as caracteristicas relevantes dos arquivos para posterior indexacao
         arquivosParaPreparar = glob.glob(os.path.join(dirBase, "*" + config.extensaoAceita))
         preparador.prepararArquivos(arquivosParaPreparar)
         
         for L in listL:
             indexador = Indexador(preparador, L, comTermos1Ocorrencia)
             # Configura o indexador da consulta (o baseline e comTermos1Ocorrencia = True)
             indexadorConsulta = Indexador(preparadorConsulta, L, True)
             buscador = Buscador(preparadorConsulta, indexadorConsulta)
             experimento = Experimento(indexador, buscador, comConsultaRetirada)
             
             if (comComentariosELiterais):
                 print "COM comentarios e literais"
             else: print "SEM comentarios e literais"
             
             if (comTermos1Ocorrencia):
                 print "COM termos com 1 ocorrencia"
             else: print "SEM termos com 1 ocorrencia"
             
             print "Para n = ", n
             print "Para L = ", L
             print "=> RESULTADO <="
             
             # Indexa os arquivos do diretorio de acordo com as regras do algoritmo spi
             arquivosParaIndexar = glob.glob(os.path.join(config.dirBasePreparada, "*" + config.extensaoPadrao))
             # dictPerfilAutores = {"autor", "vocabularioAutorIndexado"}
             dictPerfilAutores = indexador.indexarArquivos(arquivosParaIndexar)
             
             # Antes de salvar os indides para validacao, esvazia o diretorio onde eles ficarao
             Util.esvaziarDiretorio(config.dirIndicesValidacao)
             indexador.salvarValidacaoIndices(config.dirIndicesValidacao, dictPerfilAutores, config.extensaoPadrao)
             
             # Compara 1 arquivo-consulta com todos da base, depois outro com todos e assim por diante...
             # Reindexando o perfil do autor desse arquivo antes da comparacao
             # A fim de encontrar o autor do arquivo
             arquivosConsulta = glob.glob(os.path.join(dirBase, "*" + config.extensaoAceita))
             # resultadoExperimento = numExperimentos + numAcertos + acuracia
             resultadoExperimento = experimento.testar(arquivosConsulta, dictPerfilAutores, config.dirBasePreparada, config.extensaoPadrao)
             resultadosExperimentos.append(ExecucaoExperimento.guardarResultado(n, L, comComentariosELiterais, comTermos1Ocorrencia, resultadoExperimento))
         
         print "[FIM DO n]"
         print "******************************************************************************\n"
     print "[FIM DO TESTE]"
     print "******************************************************************************\n"
     return "".join(resultadosExperimentos)
예제 #2
0
from spi import Preparador, Indexador
from Util import Util


dirBase = config.dirBase[0]
n = config.n[0]
L = config.L[0]
comQuebraLinha = True
comComentariosELiterais = True
comTermos1Ocorrencia = True

preparador = Preparador(config.dirBasePreparada, config.extensaoPadrao, n, comQuebraLinha, comComentariosELiterais)
indexador = Indexador(preparador, L, comTermos1Ocorrencia)

# Antes de iniciar a preparacao dos arquivos, esvazia o diretorio onde os n-grams ficarao
Util.esvaziarDiretorio(config.dirBasePreparada)
# Recupera e salva as caracteristicas relevantes dos arquivos para posterior indexacao
arquivosParaPreparar = glob.glob(os.path.join(dirBase, "*" + config.extensaoAceita))
preparador.prepararArquivos(arquivosParaPreparar)

# Indexa os arquivos do diretorio de acordo com as regras do algoritmo spi
arquivosParaIndexar = glob.glob(os.path.join(config.dirBasePreparada, "*" + config.extensaoPadrao))
# dictPerfilAutores = {"autor", "vocabularioAutorIndexado"}
dictPerfilAutores = indexador.indexarArquivos(arquivosParaIndexar)
# Imprime os arquivos indexados
indexador.imprimirPerfilAutores(dictPerfilAutores)

# Antes de salvar os indides para validacao, esvazia o diretorio onde eles ficarao
Util.esvaziarDiretorio(config.dirIndicesValidacao)
indexador.salvarValidacaoIndices(config.dirIndicesValidacao, dictPerfilAutores, config.extensaoPadrao)