Skip to main content

Python package for working with Warodai and Yarxi dictionaries

Project description

JRSub

PyPI Build Status

Установка

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jrsub-0.1.11.tar.gz (7.6 MB view hashes)

Uploaded Source

Built Distribution

jrsub-0.1.11-py3-none-any.whl (7.7 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page