Определение частоты и расположения слов в документе - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте!Помогите пожалуйста с заданием, если можно с объяснениями) Требуется: осуществить обработку текстового файла, содержащего некоторый многостраничный текст. Будем считать, что одна страница текста состоит из 60 строк. Результат обработки – текстовый файл, содержащий предметный указатель встречающихся в тексте слов. В предметном указателе перечисляются слова в алфавитном порядке. Для каждого слова указывается количество его вхождений в текст и номера страниц, на которых встречается это слово. При формировании предметного указателя, слова, начинающиеся с разных букв алфавита разделяются на группы: А a 120: 1 2 3 4 5 6 7 8 9 10 11 12 and 89: 1 2 3 6 8 9 12 apple 3: 7 9 B bag 2: 11 12 big 7: 5 7 10 C cake 1: 3 circle 3: 8 9 . . . и т.д.

Решение задачи: «Определение частоты и расположения слов в документе»

textual
Листинг программы
  1.             var rowsInLine = 60;
  2.             var dict = new Dictionary<string, List<int>>();
  3.             string[] line;
  4.             int countOfRows = 0;
  5.             using(var sr = new StreamReader(@"c:\c#\text.txt"))
  6.                 while(!sr.EndOfStream)
  7.                 {
  8.                     line = sr.ReadLine().ToLower().Split(" ,.?!\'()\"".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
  9.                     countOfRows++;
  10.                     foreach(var word in line)
  11.                     {
  12.                         if(!dict.ContainsKey(word)) dict.Add(word, new List<int>() { countOfRows/rowsInLine + 1 });
  13.                         else dict[word].Add(countOfRows/rowsInLine + 1);
  14.                     }
  15.                 }
  16.             var result = dict.OrderBy(x=>x.Key).GroupBy(x => x.Key[0]);
  17.             foreach(var group in result)
  18.             {
  19.                 Console.WriteLine(group.Key.ToString().ToUpper());
  20.                 foreach(var item in group)
  21.                 {
  22.                     Console.WriteLine(item.Key.PadRight(20,'.') + " " + item.Value.Count + ":" + string.Join(" ",item.Value.Distinct()));
  23.                 }
  24.             }
  25.             Console.ReadKey(true);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы