-
-
Notifications
You must be signed in to change notification settings - Fork 0
Feature Custom
Из компактных данных (формат файлов data/) или из готовых записей:
use CloudCastle\Dictionary\{Dictionary, Gender, WordEntry};
$custom = Dictionary::fromArray([
'кофе' => ['g' => 'm', 'f' => ['nom:sg' => 'кофе', 'nom:pl' => 'кофе']],
]);
$entries = Dictionary::fromEntries([
new WordEntry('терминал', Gender::Masculine, ['gen:sg' => 'терминала']),
]);Ключи компактного формата: g — код рода (m|f|n|c), f — карта форм,
a — одушевлённость. Дубликат леммы в fromEntries — исключение
InvalidEntryException.
merge возвращает новый словарь; при совпадении лемм побеждает запись
аргумента — так доменный словарь уточняет поставляемый:
use CloudCastle\Dictionary\WordClass;
$nouns = Dictionary::load('ru', WordClass::Noun)->merge($custom);
$nouns->find('кофе')?->gender; // Masculine — из вашего словаря
$nouns->find('человек')?->lemma; // «человек» — поставляемый сохранёнИсходные словари иммутабельны: merge не изменяет ни один из них.
Схема ключей форм не фиксирована — для доменных словарей можно вводить
собственные ключи ('voc:sg', 'abbr', …): formOf/form работают
с любыми строками.
CloudCastle Dictionary · · PHP 8.1+
GitHub · Packagist · Releases · Discussions
Email · Telegram · VK · Сетка · 💜 Поддержать проект
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)