Skip to content

stdbug/rf-keyboard-corpora

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rf-keyboard-corpora

Корпусная база проекта «Клавиатура РФ» — системных раскладок для всех кириллических языков

Цели проекта

  1. Расширить русскую системную раскладку, чтобы через long-press покрыть все кириллические языки Российской Федерации.
  2. Подготовить индивидуальные системные клавиатуры для каждого языка РФ.
  3. Для академичечких целей для любого исследователя.
  4. Подготовка проекта для поддержки всех Кириллических языков Мира.

1. Какие данные собираем и зачем

Компонент Файл/папка Назначение
Монокорпус raw/lang_mono_<N>.txt Сплошной текст на языке-цели; N — число символов. Основной источник статистики по символам (один токен = один Unicode‑символ).
Частотности frequencies/lang_monocorpus_freq.csv Таблица «символ → вхождений» — влияет на сортировку вариантов long‑press
Раскладки keyboard/lang_key_*.json Базовая, 4‑рядная, комплексная и т. д. — готовые файлы iOS
Long‑press‑маппинг mapping/lang_key_mapping.json Указывает, под какой базовой русской буквой показывать дополнительные буквы/символы языка
Статистика носителей stats/lang_population.csv Взвешиваем «частота × охват» и аргументируем приоритеты перед Apple. Охват = носители
Манифест metadata.json Машинно‑читаемые метаданные (версия, лицензия, контакты)
README README.md Человеческое описание: источники корпуса, очистка, особенности

lang — код ISO 639‑3 (пример: tyv, kbd).


2. Маппинг ваших букв на буквы Русского языка

В случае долгого нажатия буквы в стандартной русской клавиатуре (например, как сейчас Е -> [Ё]), ваши буквы должны иметь ближайщую похожую букву, через которую покажется в случае создания расширенной Клавиатуры РФ.

Соответствие ваших букв к букве Русского языка в файле lang_key_mapping.json:

{
  "О": ["Ӧ", "Ө", "О̄"],
  "У": ["Ӱ", "Ү"],
  "Н": ["Ң"],
  "Е": ["Ё", "Ё"]
}

или же создать более простой вариант в текстовом формате lang_key_mapping.txt:

О | Ӧ, Ө, О̄
У | Ӱ, Ү
Н | Ң
Е | Ё, Ё

Ключ — базовая русская клавиша; значения — варианты в порядке убывания частоты (но пока это не столь важно).


3. Мини‑пайплайн вендора (пока не работает)

  1. Соберите корпусraw/, один символ = один токен.

  2. Вычислите частоты – локально:

    python tools/freq/char_freq.py raw/tyv_mono_5M.txt \
         > frequencies/tyv_monocorpus_freq.csv

    – или через Google Colab‑ноутбук.

  3. Создайте lang_key_mapping.txt или lang_key_mapping.json вручную в удобном редакторе.

  4. Подготовьте раскладки (keyboard/lang_key_default.json и, при необходимости, дополнительные).

  5. Добавьте статистику носителей, заполните metadata.json и README.md.

  6. Откройте pull‑request.


4. FAQ

Вопрос Ответ
Можно ли несколько вендоров для одного языка? Да. Используйте разные папки <vendor>; скрипты автоматически объединят частоты.
Как обрабатывать emoji, латиницу и другие чужие символы? При расчёте частот скрипт по умолчанию игнорирует всё, что не входит в кириллический блок Unicode. Буквы целевого языка сохраняются, шум отбрасывается.
Нужно ли включать пробелы и пунктуацию в lang_monocorpus_freq.csv? Нет. Оставляйте только буквенные символы и специфические знаки языка; пробелы и знаки препинания опускайте.
Как именовать файлы при обновлении корпуса? Добавляйте суффикс версии (_v2, дата) и обновляйте поле version в metadata.json.
Обязательна ли 4‑рядная раскладка? Нет. Добавляйте её, если она будет полезна; базовая портретная раскладка (3 ряда символов) обязательна.
Какую лицензию выбрать для корпуса? Рекомендуем CC BY‑SA 4.0 или совместимую открытую лицензию, чтобы Apple могла свободно использовать данные.

Корпус → Частоты → Эргономика — точные данные дают объективное основание для расположения букв. Чем точнее корпуса и статистика, тем убедительнее аргумент для Apple внедрить полноценную поддержку всех кириллических языков Российской Федерации.

5. Готовность языков

Язык Частотность Маппинг Носители by Ali Kuzhuget
Абазинский
Абхазский
Аварский
Агульский
Адыгейский
Алтайский
Андийский
Ахвахский
Башкирский
Белорусский
Бурятский
Даргинский
Долганский
Церковнославянский
Ингушский
Кабардино-черкесский
Казахский
Кайтагский
Калмыцкий
Каратинский
Карачаево-балкарский
Коми
Крымскотатарский
Кумыкский
Кыргыз
Лакский
Лезгинский
Марийский
Мокшанский
Молдавский ?
Ненецкий
Ногайский
Осетинский
Рутульский
Саха
Сибирско-татарский
Табасаранский
Таджикский
Татарский
Тиндинский
Тувинский
Удмуртский
Узбекский
Украинский
Хакасский
Цудахарский
Цыганский
Чеченский
Чувашский
Эрзянский

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 100.0%