Константина Паустовского называют одним из писателей, проза которого "звучит" или "светится". Частное эмоциональное впечатление от чтения таких текстов – радостное и возвышенное. Иные поклонники говорят, что читать такое не только интересно, но и приятно. От чего же складывается такая эмоция читателя? Я решил провести исследование творчества этого писателя на Python, чтобы приоткрыть секрет такого таланта.
Одной из моих гипотез было выявить семантические предпочтения автора и вычислить, с помощью каких именно слов он создает так называемую "сенсорную" атмосферу в текстах – то есть делает описания, апеллирующие к чувствам: зрению, слуху, осязанию. Такие описания помогают читателям именно почувствовать (а не просто представить) себя частью происходящего и точнее визуализировать сцены.
Чтобы исследовать приемы Паустовского по созданию "сенсорной" атмосферы, я решил, выявить и количественно оценить частоту употребления так называемых "перцептивных" глаголов или глаголов восприятия. Глаголы восприятия это лексические единицы, выражающие акты чувственного восприятия (зрительного, слухового, тактильного и пр.), а также эмоциональные или когнитивные реакции на внешние раздражители.
Примеры глаголов восприятия из русского языка:
зрительные: видеть, увидеть, вглядываться
слуховые: слышать, звенеть, греметь
эмоционально-тактильные: чувствовать, ощущать, чуять
Для эксперимента я решил взять корпус текстов Паустовского из 4 тома его полного собрания сочинений, где собраны его рассказы о природе.
Я написал код, чтобы автоматически извлечь из корпуса все формы глаголов восприятия, нормализовать их до лемм и провести частотный анализ. Это код позволит оценить долю перцептивной лексики в общем глагольном фоне и выявить доминирующие модальности восприятия (зрение, слух, осязание).
Использую razdel для токенизации и обработки пунктуации сокращений. Для лемматизации применю pymorphy3. Эта же библиотека поможет провести фильтрацию по частям речи. И подсчет частоты сделаю при помощи collections.Counter.
Создал множество лемм, соответствующих перцептивным глаголам. Это ручной контролируемый этап. Ручной лексикон использую потому, что перцептивная семантика в художественном тексте часто реализуется в переносных, метафорических значениях. Поэтому ручной словарь более надёжный, чем автоматическое извлечение семантических классов через WordNet или embedding-кластеризацию.
def find_perception_verbs(text, perception_verbs_set):
tokens = [
token.text.lower()
for token in tokenize(text)
if re.fullmatch(r'[а-яё]+', token.text.lower())
]
found_verbs = []
for token in tokens:
parsed = morph.parse(token)
if not parsed:
continue
lemma = parsed[0].normal_form
pos = parsed[0].tag.POS
if lemma in perception_verbs_set and pos in ('VERB', 'INFN'):
found_verbs.append(token)
return found_verbs
Использую функцию find_perception_verbs, которая токенизирует текст, фильтрует только кириллические слова, лемматизирует каждый токен и проверяет, является ли лемма перцептивным глаголом и действительно ли это глагол.
Использую re.fullmatch(r'[а-яё]+', ...), чтобы гарантировать исключение цифр, латиницы и пунктуации, так как в корпусе могут встречаться номера страниц, глав, примечания и типографские аномалии.
Что у меня получилось.
Всего слов в тексте: 201851
Глаголы действия: 781 (2.1%)
Глаголы восприятия: 1925 (5.1%)
Другие глаголы: 35267 (92.9%)
Всего глаголов: 37973
ТОП-10 ГЛАГОЛОВ ВОСПРИЯТИЯ:
знать — 357 раз
видеть — 230 раз
понимать — 214 раз
увидеть — 192 раз
замечать — 140 раз
думать — 126 раз
любить — 114 раз
узнавать — 100 раз
слышать — 90 раз
услышать — 78 раз
Вот какой интересный вывод из этого эксперимента. Для создания сенсорной атмосферы Паустовский действительно активно использует перцептивную лексику — более 5% всех глаголов в его прозе – глаголы восприятия. При этом доминируют визуальные глаголы (видеть, увидеть, замечать), что согласуется с его "художническим" подходом к описанию природы.
Количественная проверка гипотезы подтвердила, что Паустовский чаще описывает цвет, чем звук. Поэтому когда писателя называют "художником" в прозе, это справедливо.
Анализ глаголов восприятия на Python это пример такого исследования, где технические инструменты служат мостом между вычислительным подходом и гуманитарной интерпретацией.