Перейти к содержанию

Метрики удобочитаемости

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}

Выводит на экран таблицу с вычисленными метриками удобочитаемости текста.

Для иллюстрации работы метода воспользуемся кодом из предыдущего примера:

Пример

Код:

...

# Отображение таблицы вычисленных метрик
rs.print_stats()

Результат:

                Метрика                 | Значение 
--------------------------------------------------
Тест Флеша-Кинкайда                     |   2.93   
Индекс удобочитаемости Флеша            |  87.17   
Индекс Колман-Лиау                      |   0.29   
Индекс SMOG                             |   0.05   
Автоматический индекс удобочитаемости   |   0.29   
Индекс удобочитаемости LIX              |  35.00