Чому сентимент-аналіз фінансових новин ламається на живому потоці
Жива стрічка влаштована не так, як розмічений набір для навчання. Одна й та сама подія надходить кількома редакціями, а поруч із сухим фактом стоїть колонка аналітика, де та сама цифра подана з оцінкою.
Якщо сентимент-аналіз фінансових новин читає весь текст одразу, модель згладжує різницю між подією та її трактуванням — і оцінка тональності починає відображати думку автора, а не стан справ.
Усередині новини майже завжди є чужі голоси: цитата брокера, коментар регулятора, посилання на минулий прогноз. Заперечення всередині цитати переважує сам факт, а заголовки з іронією ламають словникові ознаки: формально позитивні слова несуть зворотний сигнал. Без окремого шару перевірки такі матеріали потрапляють у потік непрочитаними.
Далі підключаються шум у новинній стрічці та затримка надходження новин. Одна подія виходить десятками передруків з різною тональністю, і потік перекошується в бік того, хто продублював швидше, а не точніше.
Якщо стрічка надходить із лагом, сигнал спирається на вже відіграний рух — раннього попередження не виходить.
Якість розмітки тональності — корінь усіх цих збоїв. Розмітники розходяться на спірних матеріалах, а мітки часто ставлять за заголовком, не читаючи тіло, і модель упевнено відтворює цю помилку на живих даних.
Показники на охайній вибірці при цьому залишаються високими, тому збій випливає вже в роботі. Розбираємо, як це закривається.
Ефект від системи оцінки тональності: що змінюється
Швидкість реакції на ринкові події вимірюється не часом обчислення моделі, а відрізком від публікації до готового сигналу в черзі.
Стрічка проходить через конвеєр із пріоритетами — спершу біржові оголошення та заголовки профільних видань, потім решта потоку, — і аналітик бачить оцінку в перші хвилини після виходу новини замість півгодини ручного читання.
Частка автоматичного оброблення новин — показник, за яким видно, чи окупилася система. Основна маса публікацій проходить без ручного втручання, на розбір залишаються пограничні випадки: короткі замітки без контексту, сарказм, переказ чужих прогнозів.
Ці приклади потрапляють у чергу додаткової розмітки й стають навчальною вибіркою для наступної ітерації моделі.
Зменшення ручної розмітки вивільняє аналітиків для інтерпретації, а не сортування: замість проставляння емоційного забарвлення вручну команда перевіряє аномалії та розбіжності між сигналом і фактичною реакцією ринку.
Стійкість до хибних сигналів тримається на порозі впевненості: якщо модель вагається між нейтральною та негативною оцінкою, сигнал не йде як торговий, а позначається як такий, що потребує перевірки.
Окремо знімається клас помилок на передруках — дедуплікація згортає дублі однієї новини до єдиної події, і сплеск тональності не розмножується по всьому потоку.
Контури оброблення: порівняння підходів і режимів
Новинний потік неоднорідний: агенції дають стислі заголовки, аналітики — довгі тексти із застереженнями, регулятор — формулювання, де тональність змінюється від одного слова.
Тому контур обирають не за моделлю, а за межею даних і припустимою затримкою: пакетне оброблення за розкладом або потокове оброблення новин у міру публікації.
| Контур | Коли підходить | Обмеження |
|---|---|---|
| Готова галузева модель із донавчанням на вашому архіві | Є історія публікацій і мітки; потрібен швидкий вихід на робочу якість | Якість упирається в обсяг і чистоту архіву; лексика поза навчальним корпусом деградує |
| Власна модель під ваш словник | Термінологія унікальна, є експерти для розмітки галузевої лексики | Довший вихід на якість; словник і ваги потрібно супроводжувати постійно |
| Гібрид правил і статистики | Є жорсткі регуляторні маркери та вимога пояснити кожну оцінку | Правила конфліктують між собою, кількість винятків поступово зростає |
| Зовнішній сервіс розмітки | Потрібен старт без власного корпусу та власної інфраструктури | Закритий контур оброблення даних неможливий; потік обмежений квотами й форматом відповіді |
На практиці стійкий результат дає зв'язка: галузева модель, донавчена на вашому архіві, плюс правила для формулювань, які статистика плутає.
Розмітку галузевої лексики та перенавчання ведуть усередині закритого контуру оброблення даних — словник і ваги не залишають ваш периметр, а потокове оброблення новин іде без зупинки збору.
Як влаштований проєкт: етапи інженерної роботи
Роботу розбиваємо на етапи з перевірюваним результатом на кожному — замовник бачить, де перебуває проєкт і що саме можна прийняти частково. Порядок не випадковий: поки не зафіксовано схему розмітки, навчання моделі перетворюється на перебір гіпотез без критерію зупинки.
- Аудит джерел новин. Розбираємо, які стрічки, біржові зведення, аналітичні огляди та пресрелізи реально потрапляють у потік: доступність, регулярність, мова, дублі, затримка публікації. На виході — перелік джерел з оцінкою придатності та правилом пріоритету в разі розбіжності оцінок.
- Схема розмітки тональності. Задаємо шкалу, правила для змішаних новин і врахування суб'єкта — тональність компанії та тональність ринку в одному тексті розходяться. Фіксуємо словник маркерів та інструкцію, за якою різні розмітники доходять узгодженого результату.
- Збір і підготовка даних. Знімаємо архів публікацій, чистимо від дублів і нерелевантних рубрик, приводимо до єдиного формату. Навчальну та контрольну частини розділяємо за часом без перетину періодів — інакше оцінка якості виявиться завищеною.
- Розмітка та навчання. Переносимо схему на реальні тексти, розбираємо спірні випадки, навчаємо модель і налаштовуємо поріг спрацювання під вимоги замовника.
- Перевірка на контрольній вибірці. Рахуємо точність за класами, окремо дивимося новини з іронією, запереченнями та цитатами. Системний провал повертає нас на крок до розмітки, а не до перенавчання наосліп.
- Приймання якості моделі. Цільові показники узгоджуємо до старту, потім порівнюємо з ними результат і показуємо поведінку на даних, зсунутих у часі вперед.
- Передача та регламент супроводу. Віддаємо документацію з розмітки, відтворюваний конвеєр, інструкцію з донавчання та порядок моніторингу дрейфу тональності з оновленням словника.
Артефакти проєкту: моделі, схеми розмітки, регламенти
Цінність проєкту сентимент-аналізу визначається не демонстрацією, а тим, що фізично залишається в контурі замовника після здачі. Усі артефакти передаємо до вашого репозиторію з історією змін та описом, щоб запуск моделі й донавчання не залежали від нас.
- Навчена модель і ваги — запускається в контейнері із зафіксованими залежностями: відтворюваний результат на нових даних без повторного збирання середовища.
- Схема розмітки та словники — правила анотації зі спірними прикладами, словники фінансової тональності, списки тікерів, заперечень і модальних конструкцій: розмітка залишається узгодженою при розширенні корпусу.
- Звіт про якість — метрики на відкладеній вибірці за кожним класом, матриця помилок і розбір хибних спрацювань на звітності компаній і коротких заголовках.
- Інтеграційні специфікації — контракти обміну з внутрішніми системами, формати повідомлень, правила повторів і поведінка при недоступності джерела.
- Політики доступу до даних — ролі, розмежування за джерелами та журналювання запитів: роботу з чутливими даними підтверджують журнали, а не домовленості.
- Регламенти експлуатації — моніторинг дрейфу якості, вікно донавчання, процедура відкату на попередню версію моделі.
- Інструкції для аналітиків — як читати оцінку тональності, пороги впевненості та що робити в нейтральній зоні.
На прийманні проходимо за списком рядок за рядком: кожен пункт має працювати у вас без нашої участі.
Кейс: потік галузевих новин для аналітичного відділу
До впровадження потік галузевих новин розбирали вручну: чотири аналітики по черзі переглядали випуски, коментарі брокерів і замітки профільних видань.
Стрічка давала кілька сотень публікацій на добу, тому за зміну встигали прочитати близько третини — решта йшла в архів, і значущі події іноді спливали лише наступного дня, коли реакція вже втрачала сенс.
Спочатку ми зібрали розмітку разом з аналітиками: корпус публікацій із чотирма класами тональності та окремою міткою невизначеності для випадків, де формулювання не дає однозначного висновку.
Модель навчили на галузевій лексиці й пов'язали з потоком: публікація нижче порога впевненості не йде в сигнал, а потрапляє в чергу ручного розбору — так відділ бачить зони сумнівів і поповнює розмітку.
| Метрика | До | Після |
|---|---|---|
| Частка публікацій з автоматичною розміткою | ~15% за словниковими правилами | 92% |
| Час від публікації до сигналу | 3-4 години | 6-8 хвилин |
| Пропущені значущі події | 4-6 на місяць | 0-1 за квартал |
| Ручна вибірка на контроль якості | суцільний перегляд | 5-7% на тиждень |
Контроль якості тримаємо на самому потоці Dow Jones Newswires: щотижня аналітики наосліп розмічають вибірку, розбіжності повертаються в донавчання.
Частка спірних публікацій знизилася, і відділ переключився з читання стрічки на розбір причин — сигнал надходить раніше, а рішення щодо позиції обговорюється по суті, а не за фактом учорашньої новини.
Що робити, якщо потік новин неоднорідний за мовами та форматами?
Єдиний класифікатор на всі випадки тут не працює: маршрутизація будується на вході, до моделі тональності. Спочатку публікація проходить визначення мови та жанру, і лише потім потрапляє до своєї гілки оброблення — з окремим словником, розміткою та набором ознак.
Жанр у спірних випадках важливіший за мову. Біржове зведення, пресреліз, аналітична колонка та розшифрування ефіру дають різну щільність оцінної лексики: у зведенні її майже немає, у колонці — половина тексту. Якщо змішати їх в одному потоці, модель почне видавати нейтральне за емоційне і навпаки.
Маршрутизація за джерелами задається таблицею правил: для кожної стрічки прописані мова, жанр, періодичність і вага при конфлікті сигналів.
Один реліз, що розійшовся трьома мовами, склеюється в загальний запис з єдиним ідентифікатором — сигнал не подвоюється, а переклад не вважається окремою подією.
Поріг ручної перевірки — не константа, а калібрована межа. У чергу на розбір потрапляє те, де впевненість моделі нижча за поріг або мови змішані всередині одного тексту: аналітик перевіряє, а його правки повертаються в навчальну вибірку. Поріг рухають за часткою ручних розборів — якщо вона зростає, зростає й навантаження на аналітиків.
Контроль тримається на трьох числах: частка автоматично розібраних публікацій, точність окремо за кожною мовою та розподіл впевненості за жанрами. Просідання за однією мовою при загальній нормі — сигнал, що час донавчати модель, а не піднімати поріг.
Технічні сумніви: якість, розмітка, підтримка моделі
Сумніви щодо якості зазвичай стосуються не середньої точності, а вузьких місць: сарказм у коментарях аналітиків, цитати й переказ чужих слів, галузева лексика на кшталт «шорт-сквіз» або «інверсія кривої».
Ми перевіряємо такі місця окремими наборами прикладів, а не однією усередненою метрикою по всій вибірці — інакше рідкісні класи розмиваються на тлі нейтральних новин.
Нижче — те, про що найчастіше запитують на прийманні. Для кожного пункту зазначено, як перевіряється стійкість результату і що саме передається разом із моделлю.
Як модель відрізняє сарказм від прямої оцінки?
Саркастичні фрагменти розмічаються окремим класом там, де інтонація змінює знак оцінки. У ознаки йдуть лапки, модальні слова та сусідні речення. Помилки рахуються окремою метрикою: якщо її частка не зростає після додавання нових джерел, правило працює.
Що з цитатами та переказом чужих слів?
Межі цитати визначаються до класифікації, тональність приписується джерелу висловлювання, а не автору новини. У звітності ці оцінки розділені, тому різке слово в інтерв'ю не спотворює тон самого матеріалу.
Як контролюється розмітка навчального набору?
Спірні фрагменти розмічають двоє, розбіжності вище порога йдуть до аналітика. Ведемо журнал рішень і переглядаємо правила в міру появи нових формулювань — узгодженість розмітників вимірюється до старту навчання.
Як враховується галузева лексика?
Словники термінів і скорочень оновлюються разом із джерелами, рідкісні звороти перевіряються на окремому наборі. Розмітку ведемо в Label Studio всередині ізольованого контуру, тому чутливі дані не залишають периметр.
Закритий контур — це обов'язково?
Так, якщо новини або угоди не повинні виходити назовні: навчання, виведення та зберігання розмітки працюють усередині інфраструктури замовника, зовнішні сервіси не викликаються. Оновлення моделей іде тим самим шляхом, що й звичайні релізи.
Що відбувається з перенавчанням після передачі?
Фіксуємо еталонний набір і базову версію моделі, описуємо регламент перенавчання та умови відкату на попередню версію. Команда замовника може оновлювати модель самостійно, ми підключаємося на змінах словників і правил розмітки.
Обговоримо ваше завдання оцінки тональності та обсяг даних
Предметна розмова про оцінку тональності починається не з вибору моделі, а з опису корпусу та режиму роботи сигналу. Чим точніше видно, з чого складається потік публікацій і як швидко потрібна мітка, тим менше припущень закладаємо в оцінку та план робіт.
Що варто підготувати до обговорення завдання оцінки тональності:
- Приклади публікацій — 30–50 реальних текстів, серед них однозначні та спірні: на них фіксуємо розмітку й поріг спрацювання.
- Список джерел публікацій: стрічки агенцій, канали компаній, галузеві розсилки, вивантаження аналітиків — з форматом подання (xml, html, pdf) і мовою для кожного.
- Вимоги до затримки сигналу: від появи новини до готової мітки. Хвилини потребують потокового оброблення, години допускають розбір пакетами.
- Обмеження за контуром оброблення: чи допустимі зовнішні сервіси або розрахунок іде всередині вашого контуру, де зберігаються тексти та логи, у кого є доступ.
- Глибина історичного зрізу: за який період потрібна розмітка архіву, щоб зіставити мітки з фактичною динамікою ринку.
- Склад приймальної команди: хто відповідає за джерела, хто валідує розмітку, хто приймає результат.
- Критерій приймання: частка правильних міток на спірних прикладах, відтворюваність при повторному прогоні, поведінка на шумному тексті.
Якщо частина даних закрита — не відкладайте розмову: працюємо з тим, що є, решту фіксуємо як умову запуску. Опишіть завдання та надішліть приклади публікацій — повернемося з оцінкою, планом і складом метрик.







