Методика «Словозв'язу»
Гравці регулярно запитують: «Чому "човен" ближче до відповіді, ніж "корабель"? Хто це вирішив?» Коротка відповідь: не людина. Порядок слів у кожній грі визначає математична модель, навчена на великому корпусі українських текстів. Ця сторінка пояснює, як саме це працює: звідки береться словник, як обчислюється близькість, як обирається слово дня і де в цієї системи межі.
Словник гри
Основою гри є власний список із приблизно 31 тисячі українських лем, тобто слів у початковій формі. Він зібраний на основі лексики великих відкритих корпусів української мови та вручну чищений: із нього прибрано технічні рядки, абревіатури, очевидні помилки розпізнавання і слова, які погано поводяться в рейтингу. Про принципи відбору і про те, чому якогось слова може не бути, є окрема сторінка про словник.
Коли ви вводите відмінену форму, сервер зводить її до леми: «морями» або «морем» стає «море». Саме лема шукається у рейтингу, тому вам не потрібно думати про відмінки.
Векторне представлення слів
Кожному слову словника відповідає вектор: набір із кількох сотень чисел, який можна уявити як координати слова у багатовимірному «просторі значень». Базові вектори гри навчені на UberText, одному з найбільших відкритих корпусів української мови, зібраному спільнотою lang-uk. Модель навчається за простим принципом: слова, які регулярно з'являються у схожому оточенні, отримують близькі координати.
Близькість двох слів вимірюється косинусною подібністю їхніх векторів. Для кожної гри всі слова словника сортуються за цією мірою відносно секретного слова, і позиція слова у відсортованому списку стає його рангом. Якщо вам цікаво глибше, як «навчання на контекстах» перетворюється на числа, ми написали окреме пояснення про векторні представлення слів простою мовою.
Не лише вектори: уточнення рейтингів
Чиста векторна модель має відомі слабкості: багатозначні слова тягнуться одразу до кількох тем, а рідкісні слова мають менш надійні координати. Тому для новіших ігор базовий порядок додатково уточнюється. Для слів словника підготовлені короткі тлумачення, і сучасні нейромережеві моделі порівнюють уже не лише слова, а й значення цих тлумачень. Поєднання кількох сигналів дає помітно природніший рейтинг: менше випадкових сусідів у верхівці списку і логічніші маршрути від теми до відповіді.
Усі ці обчислення виконуються заздалегідь, офлайн. Коли ви граєте, сервер не запускає жодних моделей: він лише миттєво повертає позицію вашого слова у вже готовому списку. Тому гра відповідає швидко навіть на слабкому інтернеті.
Як обирається слово дня
Щоденні відповіді добираються вручну, і це чи не найважливіша частина роботи над грою. Хороше секретне слово має бути загальновідомим, мати виразну «тему» і давати цікаву траєкторію: щоб гравець міг спершу намацати сферу, а потім крок за кроком наблизитися до відповіді. Погані кандидати відсіюються:
- надто вузькі або книжні слова, які знає не кожен;
- сильно багатозначні слова, у яких рейтинг «розривається» між значеннями;
- слова з бідним оточенням, де між рангом 50 і рангом 500 немає зрозумілої логіки.
Додатково кожне слово словника має внутрішню оцінку якості, яка враховує частотність і надійність його векторного сусідства. Ця оцінка допомагає і у виборі кандидатів на слово дня, і в роботі підказок.
Що бачить сервер під час гри
Повний відсортований список слів гри ніколи не передається у браузер, інакше відповідь можна було б підгледіти в коді сторінки. Браузер надсилає вашу спробу, а у відповідь отримує тільки ранг цього одного слова. Прогрес партії при цьому зберігається локально у вашому браузері, а не в базі на сервері: детальніше про це у політиці конфіденційності.
Межі алгоритму
Модель оцінює статистику вживання слів у текстах, а не «розуміє» світ. Із цього випливають чесні обмеження, які варто знати:
- Синонім не завжди близько. Словникові синоніми можуть уживатися в різних стилях і контекстах, тоді відстань між ними більша, ніж очікуєш. Слова однієї ситуації часто ближчі за синоніми.
- Багатозначність. «Коса» тягнеться одночасно до зачісок, сільського реманенту й географії. Ранги таких слів залежать від того, яке значення переважає в текстах корпусу.
- Рідкісні слова. Що рідше слово трапляється в корпусі, то менш стабільні його координати, і його ранг може здатися дивним.
- Корпусні упередження. Модель відображає тексти, на яких навчалася: новини, публіцистику, художню літературу. Розмовна лексика і новітні значення представлені слабше.
Ці особливості не псують гру, а формують її характер: перемагає не той, хто знає більше синонімів, а той, хто вміє намацати тему й рухатися асоціаціями.
Контроль якості
Словник, архівні відповіді та відгуки гравців регулярно переглядаються. Якщо конкретне слово систематично викликає плутанину, воно більше не з'являється як щоденна відповідь, а за потреби виправляється і сам словник. Помітили дивний ранг або відсутнє слово? Напишіть через сторінку контактів: дата гри, слово і коротке пояснення значно прискорюють перевірку.