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

Советские христоматии (литература)

SovChLit(data_dir=DEFAULT_DATASET_DIR)

Набор данных советских хрестоматий по литературе. Для его формирования используются оцифрованные издания проекта «Школьные учебники СССР»:

  • Родная речь. Книга для чтения в I классе начальной школы. Е.Е. Соловьева, Л.А. Карпинская, Н.Н. Щепетова

Исключения:

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

sc = SovChLit()
sc.download()
sc.info
{'Наименование': 'sov_chrest_lit',
 'url': 'https://dataverse.harvard.edu/file.xhtml?fileId=3670902&version=DRAFT',
 'description': 'Корпус советских хрестоматий по литературе',
 'author': 'Шкарин С.С.'}

Параметры

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

Атрибуты

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

Методы

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

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

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

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

get_texts(grade=None, book=None, year=None, category=None, text_type=None, subject=None, author=None, min_len=None, max_len=None, limit=None) извлекает тексты (без заголовков) из набора данных.

Параметр Тип По умолчанию Описание
grade int None Уровень сложности текстов (только 1)
book str None Наименование книги (подстрока без учета регистра и буквы ё)
year int None Год издания книги
category str None Категория текстов (подстрока без учета регистра и буквы ё)
text_type str None Тип текстов: Рассказ, Стихотворение, Сказка, Пословица, Загадка, Песня, Басня, Совет или Шутка
subject str None Наименование текстов (подстрока без учета регистра и буквы ё)
author str None Автор текстов (подстрока без учета регистра и буквы ё)
min_len int None Минимальная длина текста (в символах)
max_len int None Максимальная длина текста (в символах)
limit int None Количество текстов

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

for text in sc.get_texts(max_len=100, category="Весна", limit=1):
    print(text)
Рыхлый снег темнеет в марте, тают льдинки на окне.
Зайчик бегает по парте и по карте на стене.

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

record = next(sc.get_records(max_len=100, category="Весна", limit=1))
del record["file"]
record
{'grade': 1,
 'book': 'Родная речь. Книга для чтения в I классе начальной школы',
 'year': 1963,
 'category': 'Весна',
 'type': 'Стихотворение',
 'subject': 'Март',
 'author': 'С. Маршак',
 'text': 'Рыхлый снег темнеет в марте, тают льдинки на окне.\n'
         'Зайчик бегает по парте и по карте на стене.'}