Определение частоты и расположения слов в документе - 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
Листинг программы
            var rowsInLine = 60;
            var dict = new Dictionary<string, List<int>>();
            string[] line;
            int countOfRows = 0;
            using(var sr = new StreamReader(@"c:\c#\text.txt"))
                while(!sr.EndOfStream)
                {
                    line = sr.ReadLine().ToLower().Split(" ,.?!\'()\"".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
                    countOfRows++;
                    foreach(var word in line)
                    {
                        if(!dict.ContainsKey(word)) dict.Add(word, new List<int>() { countOfRows/rowsInLine + 1 });
                        else dict[word].Add(countOfRows/rowsInLine + 1);
                    }
                }
            var result = dict.OrderBy(x=>x.Key).GroupBy(x => x.Key[0]);
            foreach(var group in result)
            {
                Console.WriteLine(group.Key.ToString().ToUpper());
                foreach(var item in group)
                {
                    Console.WriteLine(item.Key.PadRight(20,'.') + " " + item.Value.Count + ":" + string.Join(" ",item.Value.Distinct()));
                }
            }
            Console.ReadKey(true);

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


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

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

15   голосов , оценка 4.4 из 5
Похожие ответы