private void findPeak() { int percent = Convert.ToInt32(partTextBox.Text); double part = (double)percent / 100; Dictionary <string, int> peaks = new Dictionary <string, int>(); DataTable peaksDestr = new DataTable(); peaksDestr.Columns.Add(new DataColumn("НормФорма")); peaksDestr.Columns["НормФорма"].DataType = typeof(string); peaksDestr.Columns.Add(new DataColumn("ПредложенияПика")); peaksDestr.Columns["ПредложенияПика"].DataType = typeof(string); for (int i = 0; i < destributionTable.RowCount * part; i++) { Parameters param = new Parameters(); param.word = destributionTable.Rows[i].Cells[0].Value.ToString(); GetSentForSelectedWord sentFreq = new GetSentForSelectedWord(MainForm.BDLocation, MainForm.tableName, param); int partition = MainForm.sentCount / 10; int[] frqMas = sentFreq.GetFreqDestribution(sentFreq, MainForm.sentCount, partition); int maxIndex = peaks[param.word] = Array.IndexOf(frqMas, frqMas.Max()); DataRow row = peaksDestr.NewRow(); row["НормФорма"] = param.word; row["ПредложенияПика"] = (maxIndex * 10).ToString() + "-" + ((maxIndex + 1) * 10).ToString(); peaksDestr.Rows.Add(row); } DataSet ds = new DataSet(); ds.Tables.Add(peaksDestr); TerminSurroundingsForm form = new TerminSurroundingsForm(ds); form.Show(); }
private void findPeaksButton_Click(object sender, EventArgs e) { //GraphPane pane = new GraphPane(new RectangleF(1, 1, 300, 300), "", "Предложения", "Частота встречаемости"); //PointPairList list = new PointPairList(); //double xmin = -1; //double xmax = 1; //// Заполняем список точек //for (double x = xmin; x <= xmax; x++) //{ // // добавим в список точку // list.Add(x, x); //} //// Создадим кривую с названием "Sinc", //// которая будет рисоваться голубым цветом (Color.Blue), //// Опорные точки выделяться не будут (SymbolType.None) //LineItem myCurve = pane.AddCurve("Sinc", list, Color.Blue, SymbolType.None); //// Вызываем метод AxisChange (), чтобы обновить данные об осях. //// В противном случае на рисунке будет показана только часть графика, //// которая умещается в интервалы по осям, установленные по умолчанию //Z.AxisChange(); //// Обновляем график //zedGraph.Invalidate(); int percent = Convert.ToInt32(partTextBox.Text); double part = (double)percent / 100; // Dictionary<string, int[]> wordsFreqs = new Dictionary<string, int[]>(); GraphForm form = new GraphForm(); for (int j = 0; j < destributionTable.RowCount * part; j++) { Parameters param = new Parameters(); param.word = destributionTable.Rows[j].Cells[0].Value.ToString(); GetSentForSelectedWord sentFreq = new GetSentForSelectedWord(MainForm.BDLocation, MainForm.tableName, param); int[] frqMas = sentFreq.GetFreqDestribution(sentFreq, MainForm.sentCount, 10); // wordsFreqs.Add(param.word, frqMas); form.drawGraph(param.word, frqMas); break; } form.Show(); //foreach (KeyValuePair<string, int[]> pair in wordsFreqs) //{ // form.drawGraph(pair.Key, pair.Value); // break; //} }
private void showSentButton_Click(object sender, EventArgs e) { if (dataGridView1.SelectedCells.Count != 1) { goto end2; } string curWord = dataGridView1.CurrentCell.Value.ToString(); Parameters param = new Parameters(); param.word = curWord; int[] frqMas = new int[11]; try { GetSentForSelectedWord sentDistr = new GetSentForSelectedWord(BDLocation, tableName, param); frqMas = sentDistr.GetFreqDestribution(sentDistr, sentCount, 11); string output = ""; for (int i = 0; i < 11; i++) { output += frqMas[i] + " "; } TerminSurroundingsForm form2 = new TerminSurroundingsForm(sentDistr.dataSet); DataRowCollection rows = sentDistr.dataSet.Tables[0].Rows; form2.Text = rows.Count + " предложений из " + sentCount; form2.ClientSize = new Size(form2.dataGridView1.Size.Width, form2.ClientSize.Height); form2.Show(); if (dataGridView1.Columns.Count != 0) { form2.dataGridView1.Columns[0].Width = 550; form2.dataGridView1.Columns[1].Width = 200; } MessageBox.Show("Распределение частоты:\n" + output); } catch (OleDbConnectionException ex) { MessageBox.Show(ex.message); } catch (OleDbSendCommandException ex) { MessageBox.Show(ex.message); } catch (Exception ex) { Console.WriteLine(ex.Message); } goto goodEnd; end2 : MessageBox.Show("Выберите одно слово"); goodEnd :; }
private void AllFreqButton_Click(object sender, EventArgs e) { DataTable allFreq = new DataTable(); allFreq.Columns.Add(new DataColumn("НормФорма")); allFreq.Columns["НормФорма"].DataType = typeof(string); int sentStep = sentCount / 10; for (int i = 0; i < 10; i++) { string sentInterval; if (i == 10) { sentInterval = Convert.ToString(i * sentStep) + "-" + Convert.ToString(sentCount); } else { sentInterval = Convert.ToString(i * sentStep) + "-" + Convert.ToString((i + 1) * sentStep - 1); } allFreq.Columns.Add(new DataColumn(sentInterval)); allFreq.Columns[sentInterval].DataType = typeof(string); } List <int[]> wordsDistrList = new List <int[]>(); //try //{ DataRowCollection wordRows = ds.Tables[0].Rows; for (int j = 0; j < wordRows.Count; j++) { Parameters param = new Parameters(); param.word = wordRows[j][0].ToString(); GetSentForSelectedWord sentFreq = new GetSentForSelectedWord(BDLocation, tableName, param); int[] frqMas = sentFreq.GetFreqDestribution(sentFreq, sentCount, 10); wordsDistrList.Add(frqMas); DataRow row = allFreq.NewRow(); row["НормФорма"] = param.word; for (int i = 0; i < 10; i++) { string sentInterval; if (i == 10) { sentInterval = Convert.ToString(i * sentStep) + "-" + Convert.ToString(sentCount); } else { sentInterval = Convert.ToString(i * sentStep) + "-" + Convert.ToString((i + 1) * sentStep - 1); } row[sentInterval] = frqMas[i]; } allFreq.Rows.Add(row); } DataSet dst = new DataSet(); dst.Tables.Add(allFreq); TerminSurroundingsForm form2 = new TerminSurroundingsForm(dst); form2.Text = "Распределения частот"; form2.Show(); //} //catch (OleDbConnectionException ex) //{ // MessageBox.Show(ex.message); //} //catch (OleDbSendCommandException ex) //{ // MessageBox.Show(ex.message); //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message); //} }