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

Полное собрание сочинений И.В. Сталина

StalinWorks(data_dir=DEFAULT_DATASET_DIR)

Набор данных полного собрания сочинений И.В. Сталина. Для его формирования используются 16 основных томов оцифрованного полного собрания сочинений:

  • Том 1. Произведения 1901-1907
  • Том 2. Произведения 1907-1913
  • Том 3. Произведения 1917 (март-октябрь)
  • Том 4. Произведения 1917-1920
  • Том 5. Произведения 1921-1923
  • Том 6. Произведения 1924
  • Том 7. Произведения 1925
  • Том 8. Произведения 1926
  • Том 9. Произведения 1926-1927
  • Том 10. Произведения 1927
  • Том 11. Произведения 1928-1929
  • Том 12. Произведения 1929-1930
  • Том 13. Произведения 1930-1934
  • Том 14. Произведения 1934-1940
  • Том 15. Произведения 1941-1945
  • Том 16. Произведения 1946-1952

Исключения:

  • SourceTypeError - data_dir, который не строка и не Path.
from ruts.datasets import StalinWorks

sw = StalinWorks()
sw.download()
sw.info
{'Наименование': 'stalin_works',
 'url': 'https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/JMPSDM',
 'description': 'Полное собрание сочинений И.В. Сталина',
 'author': 'Шкарин С.С.'}

Параметры

Параметр Тип По умолчанию Описание
data_dir str / Path DEFAULT_DATASET_DIR Путь к директории с набором данных; по умолчанию texts в DEFAULT_DATA_DIR

Атрибуты

Атрибут Тип Описание
labels tuple[str] Кортеж номеров томов
info dict[str, str] Наименование набора данных и справочная информация о нем

Методы

download(force=False) загружает архив stalin_works_v1.tar.xz из сети с проверкой контрольной суммы и извлекает файлы в директорию stalin_works_v1.

Параметр Тип По умолчанию Описание
force bool False Загрузить набор данных, даже если он уже загружен

Архив, который не удалось загрузить или который дважды не прошел проверку контрольной суммы, дает DownloadError, архив, который не удалось извлечь, - DataFileError.

check_data() проверяет, что набор данных загружен полностью, и возвращает True; незагруженный или неполный набор дает DatasetNotFoundError с командами загрузки.

get_texts(volume=None, year=None, text_type=None, is_translation=None, source=None, subject=None, topic=None, min_len=None, max_len=None, limit=None) извлекает тексты (без заголовков) из набора данных.

Параметр Тип По умолчанию Описание
volume int None Номер тома
year int None Год написания
text_type str None Тип текстов: Протокол, Прошение, Стихотворение, Телеграмма, Доклад, Приказ, Статья, Выступление, Беседа, Записка, Отчет, Письмо, Брошюра, Прокламация, Постановление, Резолюция или Комментарий; у Протокол, Прошение и Стихотворение текстов в наборе нет
is_translation bool None Признак перевода
source str None Первоначальный источник текстов (подстрока без учета регистра и буквы ё)
subject str None Наименование текстов (подстрока без учета регистра и буквы ё)
topic str None Наименование подраздела текстов (подстрока без учета регистра и буквы ё)
min_len int None Минимальная длина текста (в символах)
max_len int None Максимальная длина текста (в символах)
limit int None Количество текстов

Номер тома вне 1-16, неизвестный тип текстов, source, subject или topic, который не строка, граница длины, которая не целое число не меньше единицы, минимум больше максимума и limit, который не целое неотрицательное число, дают ParameterError; незагруженный набор данных - DatasetNotFoundError, файл, из которого не удалось извлечь запись, - DataFileError.

for text in sw.get_texts(year=1937, text_type="Письмо", limit=1):
    print(text)
Маме – моей привет!
Как живет, как чувствует себя мама – моя? Передают, что ты здорова и бодра. Правда это? Если это правда, то я бесконечно рад этому. Наш род, видимо, крепкий род.
Я здоров.
Мои дети тоже чувствуют себя хорошо.
Желаю здоровья, живи долгие годы, мама – моя.
Твой Coco.
10. III.37 г.

get_records с теми же параметрами извлекает записи (с заголовками) из набора данных. Поля записи: volume - номер тома, year - год написания, type - тип текста, is_translation - признак перевода, source - первоначальный источник, subject - наименование, topic - подраздел, text - текст, file - путь к файлу.

record = next(sw.get_records(year=1937, text_type="Письмо", limit=1))
del record["file"]
record
{'volume': 14,
 'year': 1937,
 'type': 'Письмо',
 'is_translation': False,
 'source': 'Книга "Иосиф Сталин в объятиях семьи"',
 'subject': 'Письмо матери 10 марта 1937 года',
 'topic': '',
 'text': 'Маме – моей привет!\n'
         'Как живет, как чувствует себя мама – моя? Передают, что ты здорова и бодра. '
         'Правда это? Если это правда, то я бесконечно рад этому. Наш род, видимо, '
         'крепкий род.\n'
         'Я здоров.\n'
         'Мои дети тоже чувствуют себя хорошо.\n'
         'Желаю здоровья, живи долгие годы, мама – моя.\n'
         'Твой Coco.\n'
         '10.\xa0III.37\xa0г.'}