Esempio n. 1
0
        private Arquivo AvaliarWekaClassificacao(Arquivo _arquivoAvaliado)
        {
            // Importa o Classificador que foi salvo pelo treinamento
            FilteredClassifier classifier = (FilteredClassifier)ImportaClassificadorSalvo();

            // Importa os Dados de Treinamento salvo pelo treinamento
            Instances dadosTreinamento = ImportaDadosTreinamentoSalvo();

            dadosTreinamento.setClassIndex(dadosTreinamento.numAttributes() - 1); // Classe fica em último

            int numAttributes = dadosTreinamento.numAttributes();

            // Cria a instância de teste
            Instance instance = new DenseInstance(numAttributes);

            instance.setDataset(dadosTreinamento);

            // Inicializa todos os atributos como valor zero.
            for (int i = 0; i < numAttributes; i++)
            {
                instance.setValue(i, 0);
            }

            // Insere o texto a ser avaliado no primeiro atributo
            for (int i = 0; i < numAttributes - 1; i++)
            {
                instance.setValue(i, _arquivoAvaliado.TextoFormatado);
            }

            // Indica que a Classe está faltando, para que a mesma possa ser classificada
            instance.setClassMissing();

            // Classifica a instância de teste
            var resultado = "";

            try
            {
                // Realiza a classificação da instância, retornando o resultado previsto
                var predicao = classifier.classifyInstance(instance);
                instance.setClassValue(predicao);
                // Realiza a tradução do resultado numérico na Classificação esperada
                resultado = dadosTreinamento.classAttribute().value((int)predicao);

                var distribuicao = classifier.distributionForInstance(instance);
            } catch (Exception)
            {
                throw (new ClassificationException("O texto não pode ser classificado quanto à sua qualidade."));
            }

            // Atribui o resultado ao arquivo avaliado
            _arquivoAvaliado.Classificacao = resultado;

            return(_arquivoAvaliado);
        }