-
Notifications
You must be signed in to change notification settings - Fork 11
Statistics(#20)
Liana2707 edited this page Jun 7, 2022
·
1 revision
Statistics(#20)
Статистика делится на две группы: статистика по количеству слов и статистика по секциям.
- Секции: Составляется новая(краткая) PDFStructure. Она не учитывает подсекции. Для каждой секции создаётся статистика, включающая размер работы, размер секций в страницах, размер секций в процентах.
- Слова:
- стоп-слова считываются из текстового файла.
- создаются счётчик слов и HashMap<String, Int>, хранящий слово, и то, как часто оно встречается.
- Далее пробегаются все слова в тексте: 1: в случае если слово является второй половиной слова(то есть слово получено после переноса строки), то мы его пропускаем 2: если слово не пусто, то проверяем последний символ. Если это '-', то считаем, что происходит перенос слова с одной строки на другую, склеиваем два слова. 3: удаляются все цифры и спец.символы. 4: если слово не содержится в словаре стоп-слов, и его длина больше 1, то переводим первый символ в верхний регистр. 5: далее проверяем, есть ли слово в нашем HashMap<String, Int>. Слова условно считаются равными, если совпадают 3/4 длины слов. Если слова равны, то увеличивается счётчик конкретного слова, если нет, то слово добавляется в HashMap. В обоих случаях увеличивается общий счётчик.
- Слова фильтруются по частоте использования.
- Возвращаются общий счётчик и отфильтрованные слова.