bool ClassificadorAdaboostM1::executarClassificacao( Corpus &corpusProva, int atributo ) {
    vector<vector<double> > exemplos(corpusProva.pegarQtdTotalExemplos(), vector<double>(valores.size(), 0.0));
    int k, indice;
    for (unsigned int t = 0; t < classificadores.size(); t++) {
        (classificadores[t])->executarClassificacao(corpusProva, atributo);
        k = 0;
        for (int i = 0; i < corpusProva.pegarQtdSentencas(); i++) {
            for (int j = 0; j < corpusProva.pegarQtdExemplos(i); j++) {
                indice = -1;
                for (unsigned int a = 0; a < valores.size() - 1; a++)
                    if (valores[a] == corpusProva(i, j, atributo)) {
                        indice = a;
                        a = valores.size();
                    }
                if (indice == -1)
                    indice = valores.size() - 1;
                exemplos[k][indice] -= log(betas[t]);
                k++;
            }
        }
    }
    double maxBeta; int maxAtr;
    k = 0;
    for (int i = 0; i < corpusProva.pegarQtdSentencas(); i++) {
        for (int j = 0; j < corpusProva.pegarQtdExemplos(i); j++) {
            maxBeta = exemplos[k][valores.size()-1];
            maxAtr = valores.size() - 1;
            for (unsigned int a = 0; a < valores.size() - 1; a++) {
                if (maxBeta <= exemplos[k][a]) {
                    maxBeta = exemplos[k][a];
                    maxAtr = a;
                }
            }
            corpusProva(i, j, atributo, valores[maxAtr]);
            k++;
        }
    }
    return true;
}
bool ProcessadorAttDisc::processarCorpus(Corpus &objCorpus)
{

    int totlinhas, qtdConjExemplos,c;
    int  idCol, linha;
    int *indices;
    indices = new int[numatributos];

    for(int i=0; i<numatributos; i++)
    {
            indices[i] = objCorpus.pegarPosAtributo(atributo[i]);
    }

    criarAtributos(objCorpus);

    idCol = objCorpus.pegarPosAtributo("New"+atributo[0]);

    qtdConjExemplos = objCorpus.pegarQtdConjExemplos();
    for (c=0; c<qtdConjExemplos; c++){
        totlinhas = objCorpus.pegarQtdExemplos(c);

        for (linha=0; linha < totlinhas; linha++){

                for( int i=0; i<numatributos; i++)
                {
                        int  vatual= objCorpus.pegarValor(c,linha,indices[i]);
                        string valor_atual = objCorpus.pegarSimbolo(vatual);
                       int logatual=0;
                        if(valor_atual == "VERDADEIRO" )
                        logatual = 1;
                        std::stringstream out2;
                        out2 << setprecision(0) << setiosflags(ios::fixed);
                        out2 << logatual;
                        objCorpus.ajustarValor(c, linha, idCol+i, objCorpus.pegarIndice(out2.str()));


                }


            }
        }


    return true;

}