Метрики удобочитаемости¶
ruts.readability_stats.ReadabilityStats
Описание¶
Модуль для вычисления основных метрик удобочитаемости текста. В качестве источника данных может использоваться как непосредственно текст, так и объект класса Doc
библиотеки spaCy.
Определение
Удобочитаемость («читабельность») — свойство текстового материала, характеризующее лёгкость восприятия его человеком в процессе чтения.
Следует различать удобочитаемость текста с точки зрения:
- полиграфического исполнения текста;
- лингвистических особенностей текстового материала (сложность синтаксических конструкций, трудная для восприятия лексика и т.п.).
Удобочитаемость в данном модуле рассчитывается на основе различных лингвистических метрик. Коэффициенты метрик для русского языка были взяты из работы исследователей проекта Plain Russian Language, которые получили их на основе специально подобранных текстов с предварительными возрастными пометками.
Основные презумпции метрик удобочитаемости:
- короткие предложения читать легче, чем длинные;
- длинные слова затрудняют чтение;
- читатель замедляется, встречая низкочастотные и/или незнакомые ему слова.
В модуле реализована возможность использования предварительно созданных объектов классов SentsExtractor
и WordsExtractor
для проведения необходимой токенизации предложений и слов перед вычислением статистик.
Примечание
Вычисление метрик происходит посредством вызова соответствующего атрибута или метода get_stats
объекта класса ReadabilityStats
.
Параметры¶
Параметр | Тип | По умолчанию | Описание |
---|---|---|---|
source |
str/Doc | - |
Источник данных (строка или объект Doc) |
sents_extractor |
SentsExtractor | None |
Инструмент для извлечения предложений |
words_extractor |
WordsExtractor | None |
Инструмент для извлечения слов |
Атрибуты¶
Атрибут | Тип | Описание |
---|---|---|
flesch_kincaid_grade |
float | Тест Флеша-Кинкайда |
flesch_reading_easy |
float | Индекс удобочитаемости Флеша |
coleman_liau_index |
float | Индекс Колман-Лиау |
smog_index |
float | Индекс SMOG |
automated_readability_index |
float | Автоматический индекс удобочитаемости |
lix |
float | Индекс удобочитаемости LIX |
bs |
BasicStats | Базовые текстовые статистики |
Примечание
Каждую метрику можно вычислить отдельно, выполнив соответствующую функцию. Подробную информацию о метриках удобочитаемости и функциях, используемых для их вычисления, можно узнать в соответствующем разделе.
Методы¶
get_stats¶
Возвращает справочник с вычисленными метриками удобочитаемости текста.
Рассмотрим пример вычисления метрик удобочитаемости текста:
Пример
Код:
# Загрузка библиотек
from ruts import ReadabilityStats
# Подготовка данных
text = "Ног нет, а хожу, рта нет, а скажу: когда спать, когда вставать, когда работу начинать"
# Вычисление метрик
rs = ReadabilityStats(text)
rs.get_stats()
Результат:
{'automated_readability_index': 0.2941666666666656,
'coleman_liau_index': 0.2941666666666656,
'flesch_kincaid_grade': 2.926666666666666,
'flesch_reading_easy': 87.16833333333334,
'lix': 35.0,
'smog_index': 0.05}
print_stats¶
Выводит на экран таблицу с вычисленными метриками удобочитаемости текста.
Для иллюстрации работы метода воспользуемся кодом из предыдущего примера:
Пример
Код:
...
# Отображение таблицы вычисленных метрик
rs.print_stats()
Результат:
Метрика | Значение
--------------------------------------------------
Тест Флеша-Кинкайда | 2.93
Индекс удобочитаемости Флеша | 87.17
Индекс Колман-Лиау | 0.29
Индекс SMOG | 0.05
Автоматический индекс удобочитаемости | 0.29
Индекс удобочитаемости LIX | 35.00