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);
        }
Esempio n. 2
0
 /// <summary>
 /// 预测薪资
 /// </summary>
 /// <param name="jobScore">职位得分</param>
 /// <param name="schoolScore">学校得分</param>
 /// <param name="degreeScore">学历得分</param>
 /// <param name="addrScore">地区得分</param>
 /// <param name="year">工作年限</param>
 /// <returns>预估薪资</returns>
 public double predicate(double jobScore, double schoolScore, double degreeScore, double addrScore, double year)
 {
     Instance inst = new DenseInstance(header.numAttributes());
     inst.setDataset(header);
     // 职位得分
     inst.setValue(0, jobScore);
     // 学校得分
     inst.setValue(1, schoolScore);
     // 学历得分
     inst.setValue(2, degreeScore);
     // 地区得分
     inst.setValue(3, addrScore);
     // 工作年限
     inst.setValue(4, year);
     // 薪资(待预测)
     inst.setValue(5, 0);
     return cl.classifyInstance(inst);
 }
Esempio n. 3
0
        public void Train(string text, IList<int> tags)
        {
            Instance ins = new DenseInstance(tagsNb+1);
            ins.setDataset(dataSet);
            ins.setValue(0, text);
            for (int i = 0; i < tagsNb; i++) {
                if (tags.Contains(i)) {
                    ins.setValue(i + 1, 1);
                } else {
                    ins.setValue(i + 1, 0);
                }

            }
            dataSet.add(ins);
        }
Esempio n. 4
0
 public IEnumerable<double> Tag(string text)
 {
     Instance ins = new DenseInstance(tagsNb+1);
     ins.setDataset(dataSet);
     ins.setValue(0, text);
     MultiLabelOutput mlo = cl.makePrediction(ins);
     List<double> outp = new List<Double>();
     foreach (bool b in mlo.getBipartition()) {
         if (b) {
             outp.Add(1);
         } else {
             outp.Add(0);
         }
     }
     return outp;
 }
 public IEnumerable<double> Tag(string text)
 {
     Instance instance = new DenseInstance (1.0d, new ConcreteBasicTextVector (text, false).ToVector (1));
     double[] val = new double[this.not];
     for (int i = 0; i < this.not; i++) {
         instance.setDataset (datasets [i]);
         val [i] = classifiers [i].classifyInstance (instance);
     }
     return val;
 }
Esempio n. 6
0
 public IEnumerable<double> Tag(string text)
 {
     Instance ins = new DenseInstance(tagsNb + 1);
     ins.setDataset(oDataSet);
     ins.setValue(0, text);
     stv.input(ins);
     ins = stv.output();
     MultiLabelOutput mlo = lps.makePrediction(ins);
     List<double> outp = new List<Double>();
     int i = 0;
     foreach (bool b in mlo.getBipartition()) {
         if (b) {
             outp.Add(mlo.getConfidences()[i++]/2 + 0.5);
         } else {
             outp.Add(0.5 - mlo.getConfidences()[i++]/2);
         }
     }
     return outp;
 }