public void BayesSecuencial(ref ProgressBar barForm, ref Label labelForm) { //labelForm.Text = "Ejecutando bayes Sec:"; Console.WriteLine("Ejecutando bayes Sec:"); Int64 cantidadTotalBase = pgsql.ObtenerCantidadBase(); // obtiene la cantidad de palabras totales que hay en la base de datos //Variables para ayuda visual del usuario int total = URLs.Count; int cambio = -1; int bar = 0; var sw = Stopwatch.StartNew(); for (int i = 0; i < URLs.Count; i++) { double probMayor = -1; string nombreProbMayor = " "; for (int x = 0; x < URLs[i].getCategorias().Count; x++) { double totalCategoria = URLs[i].getCategorias()[x].getCantCoincidencias(); // total de coincidencias de una categoria double cantCategoria = Convert.ToDouble(pgsql.ObtenerCantidadCategoria(URLs[i].getCategorias()[x].getNombre())); //total de palabras en una categoria double cantFinal = (cantCategoria / cantidadTotalBase) * (totalCategoria / cantCategoria); if (probMayor < cantFinal) { probMayor = cantFinal; nombreProbMayor = URLs[i].getCategorias()[x].getNombre(); } URLs[i].getCategorias()[x].setProbabilidad(Math.Round(cantFinal, 4)); bar = ((i + 1) * 100 / total); } if (bar != cambio) { cambio = bar; //barForm.Increment(1); } } if (bar >= 100) { //barForm.Value = 0; Console.WriteLine("Bayesiano secuencial completado!!\nTiempo: " + Math.Round(sw.Elapsed.TotalSeconds / 60, 2) + " minutos"); } }
private void funcBayesConc(int index, Int64 cantidadTotalBase, DatabaseFunc conn) { double probMayor = -1; string nombreProbMayor = " "; for (int x = 0; x < URLs[index].getCategorias().Count; x++) { double totalCategoria = URLs[index].getCategorias()[x].getCantCoincidencias(); // total de coincidencias de una categoria double cantCategoria = Convert.ToDouble(conn.ObtenerCantidadCategoria(URLs[index].getCategorias()[x].getNombre())); //total de palabras en una categoria double cantFinal = (cantCategoria / cantidadTotalBase) * (totalCategoria / cantCategoria); if (probMayor < cantFinal) { probMayor = cantFinal; nombreProbMayor = URLs[index].getCategorias()[x].getNombre(); } URLs[index].getCategorias()[x].setProbabilidad(Math.Round(cantFinal, 4)); } //Console.WriteLine("URL: {0} \n|| prob: {1} \n|| nom: {2}", URLs[index].getTexto(), Math.Round(probMayor, 4), nombreProbMayor); }