Нужна помощь, пожалуйста. Нужно вычислить idf для конкретного текста в richtexbox (tf есть). Для этого нужно еще альтернативные тексты, для которых нужно опять рассчитать tf и выбрать более подходящие альтернативные тексты, где встречаются такие же слова как в первом тексте и для первого текста вычислить idf (то есть число документов в коллекции / число документов в коллекции, в которых встречается слово) и вывести в datagrid. Собственно проблема в том, что не могу понять как это грамотно все реализовать. TF реализую так:
private void button5_Click(object sender, EventArgs e)
{
var word = richTextBox2.Text;
double length = word.Length;
var value = word.Split(' ');//розділяє рядок на пробіли і зберігає у змінну
Dictionary<string, int> pairs = new Dictionary<string, int>();//колекція ключів та значень
for (int i = 0; i < value.Length; i++)//розбитий рядок
{
//перевірити, чи слово вже існує у словнику та оновити к-сть
if (pairs.ContainsKey(value[i]))
{
int v = pairs[value[i]];
pairs[value[i]]++;
}
//якщо слово повторюється і не додано до словника, додати його
else
{
pairs.Add(value[i], 1);
}
}
//виводимо
foreach (KeyValuePair<string, int> keyValue in pairs)
{
dataGridView2.Rows.Add(keyValue.Key, keyValue.Value, Math.Round(keyValue.Value / length, 5));
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей