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

Метрики лексического разнообразия

ruts.diversity_stats.DiversityStats

Описание

Модуль для вычисления основных метрик лексического разнообразия текста. В качестве источника данных может использоваться как непосредственно текст, так и объект класса Doc библиотеки spaCy.

В модуле реализована возможность использования предварительно созданного объекта класса WordsExtractor для проведения необходимой токенизации слов перед вычислением статистик.

Примечание

Вычисление метрик происходит посредством вызова соответствующего атрибута или метода get_stats объекта класса DiversityStats.

Параметры

Параметр Тип По умолчанию Описание
source str/Doc - Источник данных (строка или объект Doc)
words_extractor WordsExtractor None Инструмент для извлечения слов

Атрибуты

Атрибут Тип Описание
ttr float Метрика Type-Token Ratio (TTR)
rttr float Метрика Root Type-Token Ratio (RTTR)
cttr float Метрика Corrected Type-Token Ratio (CTTR)
httr float Метрика Herdan Type-Token Ratio (HTTR)
sttr float Метрика Summer Type-Token Ratio (STTR)
mttr float Метрика Mass Type-Token Ratio (MTTR)
dttr float Метрика Dugast Type-Token Ratio (DTTR)
mattr float Метрика Moving Average Type-Token Ratio (MATTR)
msttr float Метрика Mean Segmental Type-Token Ratio (MSTTR)
mtld float Метрика Measure of Textual Lexical Diversity (MTLD)
mamtld float Метрика Moving Average Measure of Textual Lexical Diversity (MTLD)
hdd float Метрика Hypergeometric Distribution D (HD-D)
simpson_index float Индекс Симпсона
hapax_index float Гапакс-индекс

Примечание

Каждую метрику можно вычислить отдельно, выполнив соответствующую функцию. Подробную информацию о метриках лексического разнообразия и функциях, используемых для их вычисления, можно узнать в соответствующем разделе.

Методы

get_stats

Возвращает справочник с вычисленными метриками лексического разнообразия текста.

Рассмотрим пример вычисления метрик лексического разнообразия текста:

Пример

Код:

# Загрузка библиотек
from ruts import DiversityStats

# Подготовка данных
text = "Ног нет, а хожу, рта нет, а скажу: когда спать, когда вставать, когда работу начинать"

# Вычисление метрик
ds = DiversityStats(text)
ds.get_stats()

Результат:

{'cttr': 2.008316044185609,
'dttr': 10.268784661968104,
'hapax_index': 431.2334616537499,
'hdd': -1,
'httr': 0.8854692840710253,
'mamtld': 11.875,
'mattr': 0.7333333333333333,
'msttr': 0.7333333333333333,
'mtld': 15.0,
'mttr': 0.0973825075623254,
'rttr': 2.840187787218772,
'simpson_index': 21.0,
'sttr': 0.2500605793160845,
'ttr': 0.7333333333333333}

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

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

Пример

Код:

...

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

Результат:

                        Метрика                             | Значение 
----------------------------------------------------------------------
Type-Token Ratio (TTR)                                      |   0.73   
Root Type-Token Ratio (RTTR)                                |   2.84   
Corrected Type-Token Ratio (CTTR)                           |   2.01   
Herdan Type-Token Ratio (HTTR)                              |   0.89   
Summer Type-Token Ratio (STTR)                              |   0.25   
Mass Type-Token Ratio (MTTR)                                |   0.10   
Dugast Type-Token Ratio (DTTR)                              |  10.27   
Moving Average Type-Token Ratio (MATTR)                     |   0.73   
Mean Segmental Type-Token Ratio (MSTTR)                     |   0.73   
Measure of Textual Lexical Diversity (MTLD)                 |  15.00   
Moving Average Measure of Textual Lexical Diversity (MTLD)  |  11.88   
Hypergeometric Distribution D (HD-D)                        |  -1.00   
Индекс Симпсона                                             |  21.00   
Гапакс-индекс                                               |  431.23