Python package for working with Warodai and Yarxi dictionaries
Project description
JRSub
Установка
pip install jrsub
Использование
Загрузка ранее сгенерированной словарной базы
ЯРКСИ
yl = YarxiLoader() // экземпляр загрузчика
yd = yl.load() // словарь
Warodai
wl = WarodaiLoader() // экземпляр загрузчика
wd = wl.load() // словарь
Поиск в словарях
yd.lookup(lexeme: str[, reading: str, search_mode: SearchMode])
→ [SearchResult]
- возвращает список
SearchResult
, включающих в себя поляlexeme
,reading
иtranslation
из подходящих записей; - все три поля являются списками строк.
yd.lookup_translations_only(lexeme: str[, reading: str, search_mode: SearchMode])
→ [str]
- возвращает значения полей "перевод" из подходящих записей в виде одномерного списка строк.
Параметр | Допустимые значения | Обязательный параметр |
---|---|---|
lexeme |
хирагана, катакана, кандзи | ✔️ |
reading |
хирагана | ❌ |
search_mode |
SearchMode.consecutive , SearchMode.deep_only , SearchMode.shallow_only |
❌ |
-
SearchMode.shallow_only
: поиск осуществляется только по исходным формам, дословно приведенным в словаре. Малейшие изменения в слове (например, лишние символы окуриганы или их отсутствие) приведут к пустой выдаче словаря. -
SearchMode.deep_only
: задает "глубокий" режим поиска: при поиске в первую очередь учитываются входящие в слово иероглифы. Этот режим работает медленнее, чемSearchMode.shallow_only
, но при этом он гораздо надежнее. -
SearchMode.consecutive
(задан по умолчанию): вначале запускается "поверхностный поиск", а затем, если он не дал результатов, -- "глубокий". Это оптимальный из всех трех вариантов, лучше его не изменять.
Пересборка словарных баз
Методы загрузчиков
Действие | Метод | Аргументы | Начальное значение |
---|---|---|---|
Включение/откючение транслитерации примеров в переводах | .enable_transliteration |
mode: bool |
True (включено) |
Изменение префикса к переводам, свойственным иероглифам в составе сложных слов (только для ЯРКСИ) | .set_compounds_pref |
pref: str |
'〈в сочет.〉' |
Изменение способа выделения некоторых частей перевода | .set_highlighting |
left: str ; right: str |
'《' ; '》' |
Запуск перестройки словарной базы | .rescan |
path: str ; show_progress: bool |
папка dictionaries/source в каталоге установки пакета; True |
- Для отображения в браузере можно при помощи
set_highlighting
заменить кавычки-елочки на HTML-теги:yl.set_highlighting('<i>', '</i>')
; - Перестройка одной базы занимает около восьми минут: полосы прогресса позволяют отследить, на какой стадии база находится в данный момент.
- При перестройке рекомендую использовать отредактированные мной варианты исходников, доступные в репозитории в каталоге
dictionaries/source
(список изменений вЯркси
|Вародае
; в основном изменения касаются форматирования, но также было найдено и исправлено несколько опечаток).
Методы полученных после сборки словарных баз
Действие | Метод | Аргументы | Значение по умолчанию |
---|---|---|---|
Сохранение перестроенной базы | .save |
path: str |
папка dictionaries в каталоге установки пакета |
- Если оставить значение пути по умолчанию, база будет сохраняться в установочный каталог пакета, и при следующем запуске к ней можно будет получить доступ методом загрузчика
.load()
без параметров.
Примеры работы со словарями (demo
)
cli.py
-- самый простой пример взаимодействия через командную строку;app.py
-- веб-интерфейс для работы через браузер;flask.Dockerfile
-- docker-контейнер с приложением из файлаapp.py
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.