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 buttonShowTerms_Click(object sender, EventArgs e) { if (dataGridView1.SelectedCells.Count != 1) { goto end2; } string curWord = dataGridView1.CurrentCell.Value.ToString(); int rowNumber = dataGridView1.CurrentRow.Index; BDLocation = textBoxBDLocation.Text; tableName = textBoxTableName.Text; string radius = textBoxRadius.Text; if (radius == "") { goto end1; } Parameters param = new Parameters(); param.word = curWord; param.termSurPartOfSpeech = getTermPartOfSpeech(); param.radius = radius; try { LoadTerminSurroundings ts = new LoadTerminSurroundings(BDLocation, tableName, param); TerminSurroundingsForm form2 = new TerminSurroundingsForm(ts.dataSet); 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; } } catch (OleDbConnectionException ex) { MessageBox.Show(ex.message); } catch (OleDbSendCommandException ex) { MessageBox.Show(ex.message); } catch (Exception ex) { Console.WriteLine(ex.Message); } goto goodEnd; end1 : MessageBox.Show("Введите максималное количество слов \nдо выбранного слова"); end2 : MessageBox.Show("Выберите одно слово"); goodEnd :; }
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); //} }
private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Escape) { FilterForm form3 = new FilterForm(); form3.Show(); } if (e.KeyChar == (char)Keys.Enter) { if (Text == "Статистики") { DataTable pairs = new DataTable(); pairs.Columns.Add(new DataColumn("НормФорма1")); pairs.Columns.Add(new DataColumn("минимФрагмент1")); pairs.Columns["минимФрагмент1"].DataType = typeof(int); pairs.Columns.Add(new DataColumn("минНачНомерПредл1")); pairs.Columns["минНачНомерПредл1"].DataType = typeof(double); pairs.Columns.Add(new DataColumn("минКонНомерПредл1")); pairs.Columns["минКонНомерПредл1"].DataType = typeof(double); pairs.Columns.Add(new DataColumn("НормФорма2")); pairs.Columns.Add(new DataColumn("минимФрагмент2")); pairs.Columns["минимФрагмент2"].DataType = typeof(int); pairs.Columns.Add(new DataColumn("минНачНомерПредл2")); pairs.Columns["минНачНомерПредл2"].DataType = typeof(double); pairs.Columns.Add(new DataColumn("минКонНомерПредл2")); pairs.Columns["минКонНомерПредл2"].DataType = typeof(double); //pairs.Columns.Add(new DataColumn("максФрагмент")); //pairs.Columns["максФрагмент"].DataType = typeof(int); //pairs.Columns.Add(new DataColumn("максНачНомерПредл")); //pairs.Columns["максНачНомерПредл"].DataType = typeof(double); //pairs.Columns.Add(new DataColumn("максКонНомерПредл")); //pairs.Columns["максКонНомерПредл"].DataType = typeof(double); for (int i = 0; i < dataGridView1.RowCount - 1; i++) { double mainWordSentBegin = Convert.ToDouble(dataGridView1.Rows[i].Cells["минНачНомерПредл"].Value); double mainWordSentEnd = Convert.ToDouble(dataGridView1.Rows[i].Cells["минКонНомерПредл"].Value); int mainWordd1 = Convert.ToInt32(dataGridView1.Rows[i].Cells["минимФрагмент"].Value); for (int j = i + 1; j < dataGridView1.RowCount - 1; j++) { double compairingWordSentBegin = Convert.ToDouble(dataGridView1.Rows[j].Cells["минНачНомерПредл"].Value); double compairingWordSentEnd = Convert.ToDouble(dataGridView1.Rows[j].Cells["минКонНомерПредл"].Value); int mainWordd2 = Convert.ToInt32(dataGridView1.Rows[j].Cells["минимФрагмент"].Value); double a = mainWordd1 > mainWordd2 ? (double)(mainWordd2 + 1) / (mainWordd1 + 1) : (double)(mainWordd1 + 1) / (mainWordd2 + 1); bool isOneWordInside = ((mainWordSentEnd >= compairingWordSentEnd && mainWordSentBegin <= compairingWordSentBegin) || (mainWordSentEnd <= compairingWordSentEnd && mainWordSentBegin >= compairingWordSentBegin)) && a > 0.5; if (isOneWordInside) { DataRow row = pairs.NewRow(); row["НормФорма1"] = dataGridView1.Rows[i].Cells["НормФорма"].Value; row["минимФрагмент1"] = dataGridView1.Rows[i].Cells["минимФрагмент"].Value; row["минНачНомерПредл1"] = mainWordSentBegin; row["минКонНомерПредл1"] = mainWordSentEnd; row["НормФорма2"] = dataGridView1.Rows[j].Cells["НормФорма"].Value; row["минимФрагмент2"] = dataGridView1.Rows[j].Cells["минимФрагмент"].Value; row["минНачНомерПредл2"] = compairingWordSentBegin; row["минКонНомерПредл2"] = compairingWordSentEnd; pairs.Rows.Add(row); } } } pairs.DefaultView.Sort = "минимФрагмент1, минимФрагмент2"; pairs = pairs.DefaultView.ToTable(); DataSet dst = new DataSet(); dst.Tables.Add(pairs); TerminSurroundingsForm form = new TerminSurroundingsForm(dst); form.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; form.Text = "Вложенные пары"; form.Show(); } } }