Словарь ударений Козиева¶
StressDict(data_dir=DEFAULT_DATASET_DIR)
Словарь ударений Ильи Козиева (all_accents): 1 680 535 словоформ с позицией основного ударения. Данные Википедии и Викисловаря дополнены формами по таблицам словоизменения грамматического словаря автора в предположении, что ударение при словоизменении не сдвигается: у форм с подвижным ударением (воды́ - во́ды) записан один вариант, омографы (за́мок - замо́к) даны одной строкой, ё заменена на е.
Лицензия - CC0. Словарь загружается из репозитория автора по закрепленному коммиту (архив 10.6 МБ, файл 77 МБ) и читается один раз на процесс: загрузка занимает доли секунды, словарь - около 100 МБ памяти.
Словарь используют VerseStats и функции расстановки ударений word_stress и accentuate: они поправляют известные ошибки словаря и восстанавливают ударение по ё, а VerseStats еще и подгоняет его под метр.
Исключения:
SourceTypeError-data_dir, который не строка и неPath.
from ruts.datasets import StressDict
sd = StressDict()
sd.download()
sd.info["license"]
'CC0-1.0'
Параметры¶
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
data_dir |
str / Path |
DEFAULT_DATASET_DIR |
Путь к директории со словарем; по умолчанию dicts в DEFAULT_DATA_DIR |
Атрибуты¶
| Атрибут | Тип | Описание |
|---|---|---|
info |
dict[str, str] |
Наименование словаря и справочная информация о нем |
Методы¶
download(force=False) загружает словарь из сети и извлекает файл; если архив есть, а файла словаря нет, архив извлекается заново. Архив сверяется с контрольной суммой SHA-256, поврежденный или подмененный файл удаляется.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
force |
bool |
False |
Загрузить словарь, даже если он уже загружен |
Файл, который не удалось загрузить или который не прошел проверку контрольной суммы, дает DownloadError, архив, который не удалось извлечь, - DataFileError.
check_data() проверяет, что файл словаря на месте, и возвращает True; незагруженный словарь дает DatasetNotFoundError с командами загрузки, как и поиск по нему.
lookup(word) возвращает номер ударного слога словоформы в любом регистре, с ё или без, считая с нуля (слоги - по гласным), None для словоформы вне словаря или без ударения.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
word |
str |
- | Словоформа |
Словоформа, которая не строка, дает SourceTypeError.
sd.lookup("корова"), sd.lookup("ёжик"), sd.lookup("котоведение")
"корова" in sd, len(sd)
(1, 0, None)
(True, 1680535)
get_records(limit=None) возвращает генератор записей словаря в порядке файла (алфавитном): словоформа и номер ударного слога; get_texts с тем же параметром - генератор словоформ.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
limit |
int |
None |
Количество записей |
limit, который не целое неотрицательное число, дает ParameterError.
for record in sd.get_records(limit=2):
print(record)
list(sd.get_texts(limit=2))
{'word': '-де', 'stress': 0}
{'word': '-ка', 'stress': 0}
['-де', '-ка']