В репозитории размещены русскоязычные тексты, приготовленные для стилеметрических экспериментов и учебных занятий. Все тексты находятся в общественном достоянии, сгруппированы по периодам, жанрам и объемам, имена файлов подготовлены для обработки с помощью пакета stylo для языка R. Текстовые коллекции в составе датасета подходят для проверки гипотез, тестирования инструментов автоматической классификации и организации учебных занятий по компьютерному анализу текста.
Если вы используете этот датасет в научной работе, пожалуйста, сошлитесь на него в своей публикации:
Орехов Б. Русский стилеметрический датасет : [набор данных] / Б. Орехов. — Версия 1.0. — Zenodo, 2026. — DOI: 10.5281/zenodo.20701309. (ГОСТ)
Для специалиста по истории языка и литературы очевидно, что при работе с автоматической классификацией текстов нельзя смешивать произведения и авторов разных периодов. При составлении датасета таким разграничениям уделено особенное внимание.
Прозаические художественные тексты XVIII века
Прозаические художественные тексты первой половины XIX века
- Небольшой набор из текстов 5 авторов для тестирования и демонстрации технологий
- Большой набор из текстов 10 авторов
Прозаические художественные тексты рубежа XIX-XX веков
Прозаические художественные тексты, противопоставленные по полу автора
Тексты 30-летних и 50-летних, опубликованные в 1832 и 1833 годах
Тексты поколения С. Т. Аксакова и Л. Н. Толстого, опубликованные в 1856-1859 годах
Публицистика второй половины XIX века
Объединенный набор для разных наук
- Стихотворные тексты, сгенерированные char-based LSTM-моделями
- Прозаические тексты, сгенерированные моделями на основе архитектуры Transformer
| Параметр | Значение |
|---|---|
| Общее число документов | 322 |
| Совокупный объем слов | 16,031,259 |
| Средняя длина документа | 49787 слов |
| Общее число авторов | 94 |
| Число подкорпусов | 25 |
| Диапазон лет | 1763—1932 |
| Временной охват | 169 лет |
| Распределение по векам | XVIII в. (12), XIX в. (161), XX в. (23) |
| Наиболее частые годы | 1856 (10), 1833 (8), 1869 (8) |
Код для подсчета статистики: dataset_stats.py
Все тексты представлены в виде отдельных файлов в формате plain text в кодировке UTF-8 и имеют расширение .txt. Имена файлов соответствуют шаблону пакета stylo, позволяющему выделять на визуализации одним цветом тексты, принадлежащие к одному классу. Например, все тексты одного автора содержат имя автора до подчеркивания: turgenev_otcy.txt, turgenev_nakanune.txt.
Тексты одного набора содержатся в папке с именем corpus, как это рекомендовано пользователям пакета stylo. К каждому набору приложен файл README.md, раскрывающий закодированные в имени файла имя автора (или другой идентификатор класса) и название текста и в отдельных случаях источник текста.
Самым простым способом работы с представленными здесь данными является их использование с программным пакетом stylo для языка R. Имена файлов и название папок, в которых они хранятся, соответствуют требованиям этого пакета и могут использоваться как есть без изменений. В конце материала приведен алгоритм установки и первых шагов работы со stylo.
library(stylo)
# Укажите путь к папке (например, с текстами авторов XIX в.)
setwd("RSD/author/fiction/period/19-2/nonbrevia/")
# Запуск стилеметрического анализа
stylo()Работой со stylo возможности этого датасета не ограничиваются. Представленные тут тексты могут использоваться для оценки (а в отдельных случаях и обучения) методов текстовой классификации и кластеризации.
from pathlib import Path
import matplotlib.pyplot as plt
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.manifold import TSNE
from scipy.cluster.hierarchy import dendrogram, linkage
# Загрузка
path = "RSD/author/fiction/period/19-2/nonbrevia/corpus/"
texts, names = zip(*[(f.read_text(encoding='utf-8'), f.stem) for f in Path(path).glob("*.txt")])
# Векторизация
X = TfidfVectorizer(max_features=500).fit_transform(texts).toarray()
# Визуализация
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 6))
tsne = TSNE(n_components=2, random_state=42).fit_transform(X)
ax1.scatter(tsne[:, 0], tsne[:, 1], s=100)
for i, n in enumerate(names): ax1.annotate(n, tsne[i], fontsize=8)
ax1.set_title("t-SNE")
dendrogram(linkage(X, method='ward'), labels=names, ax=ax2, leaf_rotation=90)
ax2.set_title("Дендрограмма")
plt.tight_layout()
plt.savefig('clusters.png', dpi=150)
plt.show()Датасет содержит тесты для проверки консистентности данных и отсутствия дубликатов.
- Что такое стилеметрия?
- Возникновение стилеметрии
- К лингвистической интерпретации метода Delta Берроуза
- Об авторстве «Тихого Дона»
- О переводе «Илиады» А. И. Любжина
- О прозе и переводах В. В. Набокова
- В. В. Набоков и межвоенная проза
- Как на самом деле определять автора с помощью компьютера?
- Как вычислить существование Виктора Пелевина при помощи местоимений и предлогов
- Атрибуция текста: теория и практика
- Корпус Русская классика
- Корпус нарративной прозы XIX в.
- Код и данные для статьи на Хабре про атрибуцию
- Поэтический корпус русского языка
- Русский драматический корпус
Термин был заимствован русским языком несколько раз. В советской традиции, которой продолжает следовать петербургская школа математической лингвистики, закрепился вариант с е. Московские специалисты под влиянием современного англоязычного термина stylometry предпочитают писать стилометрия. Мы выбираем первый вариант, придерживаясь курса на связность времен и поколений.
Тексты произведений находятся в общественном достоянии (public domain) в соответствии с законодательством РФ.
Метаданные, структура датасета и вспомогательные скрипты распространяются под лицензией GPL-3.0 license — вы можете использовать, адаптировать и распространять их при условии указания авторства и сохранения тех же условий.
- Откройте Issue на GitHub
- Пришлите Pull Request с исправлением
- Или напишите автору: [email protected]
При добавлении новых текстов убедитесь, что:
- Текст находится в общественном достоянии
- Соблюден формат именования
author_title.txt - Файл добавлен в соответствующую папку
corpus - Обновлен
README.mdиcorpus.tsv
Вопрос: Могу ли я использовать датасет для коммерческих проектов?
Ответ: Да, тексты находятся в public domain. Метаданные — под CC BY-SA 3.0.
Вопрос: Как добавить свой собственный текст в датасет для эксперимента?
Ответ: Положите файл в нужную папку corpus, соблюдая именование автор_название.txt.
Вопрос: Поддерживаются ли другие языки, кроме русского?
Ответ: Нет, это специализированный русскоязычный датасет.