Exemple #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnClasificar_Click(object sender, RoutedEventArgs e)
        {
            double    probabilidadPositivaP  = 0.0;
            double    probabilidadPositivaN  = 0.0;
            double    probabilidadNegativaP  = 0.0;
            double    probabilidadNegativaN  = 0.0;
            int       totalPositivosP        = 0;
            int       totalNegativosP        = 0;
            int       totalPositivosN        = 0;
            int       totalNegativosN        = 0;
            int       totalTuitsPositivos    = 0;
            int       totalTuitsNegativos    = 0;
            int       totalPalabrasPositivas = 0;
            int       totalPalabrasNegativas = 0;
            double    ProbabilidadPositivosP = 0;
            double    ProbabilidadPositivosN = 0;
            double    ProbabilidadNegativosP = 0;
            double    ProbabilidadNegativosN = 0;
            int       tuitsPositivosP        = 0;
            int       tuitsPositivosN        = 0;
            int       tuitsNegativosP        = 0;
            int       tuitsNegativosN        = 0;
            Stopwatch watch = new Stopwatch();

            watch.Start();
            if (this.radAll.IsChecked.Value)
            {
                foreach (Tuit tuit in this.tuits)
                {
                    //Dictionary<string, int> Positivos = this.ObtenerValores(this.clasPositivo.contador, tuit.contenido);
                    //Dictionary<string, int> Negativos = this.ObtenerValores(this.clasNegativo.contador, tuit.contenido);

                    //Positivos
                    if (tuit.positivo == "1")
                    {
                        probabilidadPositivaP += this.ObtenerProbabilidades(this.clasPositivo, tuit.contenido, ref totalPositivosP, ref totalPalabrasPositivas, ref ProbabilidadPositivosP);
                        probabilidadNegativaP += this.ObtenerProbabilidades(this.clasNegativo, tuit.contenido, ref totalNegativosP, ref totalPalabrasPositivas, ref ProbabilidadNegativosP);
                        if (ProbabilidadPositivosP >= ProbabilidadNegativosP)
                        {
                            ++tuitsPositivosP;
                        }
                        else
                        {
                            ++tuitsNegativosP;
                        }
                        totalTuitsPositivos++;
                    }
                    else
                    {//Negativos
                        probabilidadNegativaN += this.ObtenerProbabilidades(this.clasNegativo, tuit.contenido, ref totalNegativosN, ref totalPalabrasNegativas, ref ProbabilidadNegativosN);
                        probabilidadPositivaN += this.ObtenerProbabilidades(this.clasPositivo, tuit.contenido, ref totalPositivosN, ref totalPalabrasNegativas, ref ProbabilidadPositivosN);
                        if (ProbabilidadNegativosN >= ProbabilidadPositivosN)
                        {
                            ++tuitsNegativosN;
                        }
                        else
                        {
                            ++tuitsPositivosN;
                        }
                        totalTuitsNegativos++;
                    }
                }

                watch.Stop();
                ResultadoMultiple Resultados = new ResultadoMultiple()
                {
                    TotalTuits             = this.tuits.Count,
                    ProbabilidadPositivaP  = probabilidadPositivaP,
                    ProbabilidadNegativaP  = probabilidadNegativaP,
                    TotalPositivaP         = totalPositivosP,
                    TotalNegativaP         = totalNegativosP,
                    ProbabilidadNegativaN  = probabilidadNegativaN,
                    ProbabilidadPositivaN  = probabilidadPositivaN,
                    TotalNegativaN         = totalNegativosN,
                    TotalPositivaN         = totalPositivosN,
                    TotalPalabrasPositivas = totalPalabrasPositivas / 2,
                    TotalPalabrasNegativas = totalPalabrasNegativas / 2,
                    TotalTuitsPositivos    = totalTuitsPositivos,
                    TotalTuitsNegativos    = totalTuitsNegativos,
                    TuitsPositivosN        = tuitsPositivosN,
                    TuitsPositivosP        = tuitsPositivosP,
                    TuitsNegativosN        = tuitsNegativosN,
                    TuitsNegativosP        = tuitsNegativosP,
                    Duracion = watch.Elapsed
                };
                ResultadoAll win = new ResultadoAll(Resultados);
                win.Show();
            }
            else
            {
                //Dictionary<string, int> Positivos = this.ObtenerValores(this.clasPositivo.contador,this.txtTuit.Text);
                //Dictionary<string, int> Negativos = this.ObtenerValores(this.clasNegativo.contador, this.txtTuit.Text);

                //Positivos
                probabilidadPositivaP = this.ObtenerProbabilidades(this.clasPositivo, this.txtTuit.Text, ref totalPositivosP, ref totalPalabrasPositivas, ref ProbabilidadPositivosP);
                //this.lblPositivo.Content = probabilidadPositivaP;
                //Negativos
                probabilidadNegativaN = this.ObtenerProbabilidades(this.clasNegativo, this.txtTuit.Text, ref totalNegativosN, ref totalPalabrasNegativas, ref ProbabilidadNegativosN);
                watch.Stop();

                /*this.lblNegativo.Content = probabilidadNegativaN;
                 * this.lblSeleccion.Content = probabilidadPositivaP > probabilidadNegativaN ? "Positivo" : "Negativo";*/
                ResultadoSencillo res = new ResultadoSencillo()
                {
                    TotalPalabrasPositivas = totalPalabrasPositivas,
                    TotalPalabrasNegativas = totalPalabrasNegativas,
                    ProbabilidadPositivaP  = probabilidadPositivaP,
                    ProbabilidadNegativaN  = probabilidadNegativaN,
                    Duracion = watch.Elapsed
                };
                ResultadoSingle win = new ResultadoSingle(res);
                win.Show();
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnClasificar_Click(object sender, RoutedEventArgs e)
        {
            double probabilidadPositivaP = 0.0;
            double probabilidadPositivaN = 0.0;
            double probabilidadNegativaP = 0.0;
            double probabilidadNegativaN = 0.0;
            int totalPositivosP = 0;
            int totalNegativosP = 0;
            int totalPositivosN = 0;
            int totalNegativosN = 0;
            int totalTuitsPositivos = 0;
            int totalTuitsNegativos = 0;
            int totalPalabrasPositivas = 0;
            int totalPalabrasNegativas = 0;
            double ProbabilidadPositivosP = 0;
            double ProbabilidadPositivosN = 0;
            double ProbabilidadNegativosP = 0;
            double ProbabilidadNegativosN = 0;
            int tuitsPositivosP = 0;
            int tuitsPositivosN = 0;
            int tuitsNegativosP = 0;
            int tuitsNegativosN = 0;
            Stopwatch watch = new Stopwatch();
            watch.Start();
            if (this.radAll.IsChecked.Value)
            {

                foreach (Tuit tuit in this.tuits)
                {
                    //Dictionary<string, int> Positivos = this.ObtenerValores(this.clasPositivo.contador, tuit.contenido);
                    //Dictionary<string, int> Negativos = this.ObtenerValores(this.clasNegativo.contador, tuit.contenido);

                    //Positivos
                    if (tuit.positivo == "1")
                    {
                        probabilidadPositivaP += this.ObtenerProbabilidades(this.clasPositivo, tuit.contenido, ref totalPositivosP, ref totalPalabrasPositivas, ref ProbabilidadPositivosP);
                        probabilidadNegativaP += this.ObtenerProbabilidades(this.clasNegativo, tuit.contenido, ref totalNegativosP, ref totalPalabrasPositivas, ref ProbabilidadNegativosP);
                        if (ProbabilidadPositivosP >= ProbabilidadNegativosP) ++tuitsPositivosP;
                        else ++tuitsNegativosP;
                        totalTuitsPositivos++;
                    }
                    else
                    {//Negativos
                        probabilidadNegativaN += this.ObtenerProbabilidades(this.clasNegativo, tuit.contenido, ref totalNegativosN, ref totalPalabrasNegativas, ref ProbabilidadNegativosN);
                        probabilidadPositivaN += this.ObtenerProbabilidades(this.clasPositivo, tuit.contenido, ref totalPositivosN, ref totalPalabrasNegativas, ref ProbabilidadPositivosN);
                        if (ProbabilidadNegativosN >= ProbabilidadPositivosN) ++tuitsNegativosN;
                        else ++tuitsPositivosN;
                        totalTuitsNegativos++;
                    }
                }

                watch.Stop();
                ResultadoMultiple Resultados = new ResultadoMultiple()
                {
                    TotalTuits = this.tuits.Count,
                    ProbabilidadPositivaP = probabilidadPositivaP,
                    ProbabilidadNegativaP = probabilidadNegativaP,
                    TotalPositivaP = totalPositivosP,
                    TotalNegativaP = totalNegativosP,
                    ProbabilidadNegativaN = probabilidadNegativaN,
                    ProbabilidadPositivaN = probabilidadPositivaN,
                    TotalNegativaN = totalNegativosN,
                    TotalPositivaN = totalPositivosN,
                    TotalPalabrasPositivas = totalPalabrasPositivas / 2,
                    TotalPalabrasNegativas = totalPalabrasNegativas / 2,
                    TotalTuitsPositivos = totalTuitsPositivos,
                    TotalTuitsNegativos = totalTuitsNegativos,
                    TuitsPositivosN = tuitsPositivosN,
                    TuitsPositivosP = tuitsPositivosP,
                    TuitsNegativosN = tuitsNegativosN,
                    TuitsNegativosP = tuitsNegativosP,
                    Duracion = watch.Elapsed
                };
                ResultadoAll win = new ResultadoAll(Resultados);
                win.Show();
            }
            else
            {
                //Dictionary<string, int> Positivos = this.ObtenerValores(this.clasPositivo.contador,this.txtTuit.Text);
                //Dictionary<string, int> Negativos = this.ObtenerValores(this.clasNegativo.contador, this.txtTuit.Text);

                //Positivos
                probabilidadPositivaP = this.ObtenerProbabilidades(this.clasPositivo, this.txtTuit.Text, ref totalPositivosP, ref totalPalabrasPositivas, ref ProbabilidadPositivosP);
                //this.lblPositivo.Content = probabilidadPositivaP;
                //Negativos
                probabilidadNegativaN = this.ObtenerProbabilidades(this.clasNegativo, this.txtTuit.Text, ref totalNegativosN, ref totalPalabrasNegativas, ref ProbabilidadNegativosN);
                watch.Stop();
                /*this.lblNegativo.Content = probabilidadNegativaN;
                this.lblSeleccion.Content = probabilidadPositivaP > probabilidadNegativaN ? "Positivo" : "Negativo";*/
                ResultadoSencillo res = new ResultadoSencillo()
                {
                    TotalPalabrasPositivas = totalPalabrasPositivas,
                    TotalPalabrasNegativas = totalPalabrasNegativas,
                    ProbabilidadPositivaP = probabilidadPositivaP,
                    ProbabilidadNegativaN = probabilidadNegativaN,
                    Duracion = watch.Elapsed
                };
                ResultadoSingle win = new ResultadoSingle(res);
                win.Show();
            }
        }