Пошук
Майже кожна задача правника починається з пошуку: норми, рішення, компанії, документа, людини. Результат пошуку залежить не лише від запиту, а й від того, де шукаєш і що туди взагалі потрапило. Цей практикум про те, як влаштовані пошукові системи, бази і пошук моделлю, які дані відкриті, а які ні, і як поєднувати інструменти, щоб дістатись до потрібного.
- 1Павуки читають мережу
- 2Пошук шукає в індексі
- 3Запит і булів пошук
- 4Семантичний пошук
- 5Пошук моделлю і межі для ботів
- 6Які бувають дані
- 7Як дістатись до даних
- 8Перевір себе
- 9Практика
Павуки читають мережу
Мережу читають переважно не люди, а програми. Програму, яка відкриває сторінку, зберігає її копію і переходить за кожним посиланням далі, називають павуком, або краулером. На кожну нову адресу вирушає ще один павук, тож за кілька кроків один павук стає сотнею.
Павук читає все, що сторінка показує без входу: текст, імена, телефони, дати, посилання. Павуків запускають пошукові системи, вебархіви, сервіси моніторингу, компанії, що навчають моделі, і дослідники відкритих джерел. Тому все, що опубліковано відкрито, варто вважати прочитаним і збереженим: якщо сторінку чи допис видалити, копії можуть лишитися.
Власник сайту має три різні засоби. robots.txt просить павуків не заходити в розділ; це прохання, а не замок, і слухаються його лише ввічливі павуки. Позначка noindex каже пошуковій системі не показувати сторінку у видачі. Справді закриває сторінку тільки вхід за паролем.
Фільм. Один павук читає сторінку, посилання стають чергою адрес, павуків стає десятки, а з копій складається індекс, у якому потім шукає запит.
Глибше: що з цього випливає для правника
Для клієнта. Телефон у відкритому оголошенні, прізвище в коментарі, чернетка на сайті без пароля: усе це може опинитися в чужих копіях ще до того, як сторінку виправлять. Конфіденційне закривають входом, а не забороною в robots.txt.
Для пошуку. Копія має дату. Пошукова система показує сторінку такою, якою павук бачив її востаннє, тож перед тим, як посилатися, відкрий саму сторінку. Якщо сторінку вже змінили або прибрали, давнішу копію іноді можна знайти у вебархіві.
Для власного збирання. Те, що сторінку технічно можна прочитати програмою, ще не означає, що це дозволено: є умови сайту, авторське право і правила про персональні дані. Спершу шукай API або відкритий набір даних.
Пошук шукає в індексі
Коли ти вводиш запит у Google, система не обходить інтернет у цю секунду. Вона шукає в індексі: заздалегідь зібраному переліку слів з посиланнями на сторінки, де ці слова трапляються, як покажчик у кінці книжки. Індекс наповнює програма-павук: вона ходить за посиланнями від сторінки до сторінки і зберігає копії.
Звідси головне правило пошуку: знайти можна лише те, що потрапило в індекс. Сторінки за паролем, результати пошуку в реєстрах за формою, сторінки з позначкою noindex і нові сторінки, до яких павук ще не дійшов, в індекс не потрапляють. Заборона в robots.txt інша: вона не пускає павука читати сторінку, але адреса може зʼявитися у видачі без тексту, якщо на неї посилаються. Скани без текстового шару Google розпізнає сам, але розпізнаний текст має помилки, тож точна фраза може не знайтися. «Нічого не знайдено» означає «немає в цьому індексі за цим запитом», а не «не існує».
Знайдені сторінки система впорядковує за багатьма ознаками: де стоять слова, скільки інших сайтів посилається на сторінку, наскільки вона свіжа. Перша десятка результатів це порядок, а не оцінка правдивості.
Фільм. Павук, індекс, запит і рейтинг: як пошукова система знаходить сторінки і чому частина мережі для неї невидима.
Маленький інтернет
Девʼять сторінок вигаданої юридичної фірми. Запусти павука з головної сторінки, а потім пошукай у тому, що він зібрав.
Глибше: чому результати різняться між людьми і днями
Пошукові системи враховують мову, країну, пристрій і, для користувачів з обліковим записом, історію пошуку. Індекс постійно оновлюється: сторінки додаються, змінюються і зникають. Тому однаковий запит у двох людей або в різні дні дає різні списки.
Для роботи, яку треба відтворити, записуй запит, дату і пошукову систему, а знайдені сторінки зберігай разом з датою збереження. Сторінку, якої вже немає, іноді можна знайти в архівах вебсторінок.
Запит і булів пошук
Бази судових рішень, реєстри і бібліотеки часто шукають за точними правилами. Булів пошук поєднує слова операторами: І (обидва слова в документі), АБО (хоча б одне), НЕ (виключити слово). Лапки шукають точну фразу. Такий пошук передбачуваний: однаковий запит у тій самій системі на ту саму дату дає той самий результат, і його можна записати й повторити. Коли в базу додають документи, результат змінюється, тому в записі потрібна дата.
Якість пошуку міряють двома числами. Точність: яка частка знайденого справді стосується задачі. Повнота: яку частку всього потрібного знайдено. Вузький запит підвищує точність і губить повноту, широкий навпаки. Для перевірки контрагента чи збору практики зазвичай важить повнота: пропущене рішення гірше за зайве.
Багато баз дають пошук по полю: суд, дата, категорія справи, номер. Поле відсікає шум точніше, ніж слово в тексті.
Знайди рішення
Колекція з дванадцяти вигаданих коротких рішень. Задача: знайти всі рішення про розірвання договору оренди через несплату. Пиши запит з операторами І, АБО, НЕ, дужками і лапками.
Семантичний пошук
У законі і в рішеннях те саме явище називають по-різному: «розірвання», «відмова від договору», «припинення»; «оренда» і «найм». Пошук за точними словами пропускає синоніми, тому для повноти запит розширюють вручну, через АБО.
Семантичний пошук робить це інакше: модель перетворює текст запиту і документів на набори чисел, що описують зміст, і шукає документи з близьким змістом, навіть без спільних слів. Він знаходить більше потрібного, але й більше схожого непотрібного: трудовий договір теж «припиняється». Результат не можна точно відтворити правилом, тому для висновку знайдене все одно перевіряють і відбирають руками.
Спробуй у вправі вище перемкнути «Семантичний режим» і подивись, як змінюються точність і повнота.
Пошук моделлю і межі для ботів
Асистент з увімкненим пошуком сам формулює кілька запитів, викликає пошукову систему, відкриває кілька сторінок і пише відповідь з того, що встиг прочитати, з посиланнями. Це зручно для першого огляду теми. Але відповідь спирається на кілька знайдених фрагментів, а не на всю базу, і може звучати повною, навіть коли ключового рішення в тих фрагментах немає.
Частина мережі для ботів закрита навмисно. Сайти обмежують автоматичний доступ правилами для роботів, лімітами запитів, перевірками «я не робот», умовами використання, платою за доступ. Причини: навантаження на сервери, захист власного контенту і персональних даних. Людина в браузері і бот бачать різне.
Для машин існують свої двері. API видає дані структуровано, за ключем і з лімітами: наприклад, запис з реєстру як набір полів. Відкриті дані можна завантажити цілим набором. Тому робочий підхід поєднує інструменти: модель для плану і чернетки, пошукову систему для пошуку сторінок, реєстр або його API для фактів, а першоджерело правник відкриває і читає сам.
Фільм. Що робить асистент, коли «шукає в інтернеті», чого він не бачить і чому, і які двері відкриті для машин.
Які бувають дані
Дані різняться тим, хто їх публікує і на яких умовах до них є доступ. Відкрита мережа: звичайні сторінки, які індексують пошукові системи. Відкриті дані: набори, які держава чи організація публікує для повторного використання, наприклад на порталі data.gov.ua, у форматах CSV чи JSON, іноді з API. Публічні реєстри: записи відкриті, але шукати їх треба через форму або API самого реєстру, бо пошукова система результатів не бачить.
Платні бази: комерційні правові бази й агрегатори реєстрів, з обробленими даними і зручним пошуком, за підпискою. Закриті дані: персональні дані, банківські відомості, внутрішні документи; доступ лише на законній підставі. Окремо стоять відомості, які є в органу влади, але не опубліковані: їх можна отримати запитом на публічну інформацію, на який розпорядник має відповісти у строк, встановлений законом.
Ще один поділ стосується форми. Структуровані дані мають поля: код, дата, сума, їх легко фільтрувати і порівнювати. Неструктуровані це текст рішень, листів, договорів: їх шукають за словами чи змістом, а поля доводиться діставати окремо.
Фільм. Шари даних від відкритої мережі до закритих відомостей і маршрут до кожного шару.
Як дістатись до даних
Для кожної потреби обери найкращий маршрут. Часто правильних маршрутів два: спершу швидкий, потім точний.
Який маршрут
Глибше: завантаження, API і збирання сторінок
Завантаження набору. Якщо дані опубліковано як відкритий набір, простіше завантажити весь файл і шукати в таблиці, ніж клацати сторінки по одній. Перевір дату оновлення набору.
API. Програмний доступ за ключем повертає записи як поля. Він потрібен, коли перевірок багато або вони повторюються: наприклад, сотня контрагентів щомісяця. Ключ належить обліковому запису, запити мають ліміти, умови використання треба прочитати.
Автоматичне збирання сторінок. Програма може зберегти сторінки сайту, але сайт може це забороняти умовами, обмежувати технічно, а на сторінках можуть бути персональні дані. Перш ніж збирати, пошукай API або відкритий набір і перевір умови сайту.
Перевір себе
Практика
- Три пошуки однієї компаніїЗнайди одну компанію трьома способами: пошуковою системою за назвою, у реєстрі за кодом ЄДРПОУ, пошуковою системою з оператором site: на сайті судових рішень. Запиши, що дав кожен спосіб і чого не дав.
- Точність і повнотаУ реєстрі судових рішень знайди рішення на вузьку тему двома запитами: вузьким і широким, з синонімами через АБО. Порахуй, скільки знайшов кожен і скільки з них справді про твою тему.
- Асистент проти реєструПопроси асистента з пошуком знайти три рішення на ту саму тему. Порівняй з тим, що знайшов сам у реєстрі: що збіглося, чого асистент не знайшов, що назвав неточно.
- Відкриті даніЗнайди на data.gov.ua набір даних, корисний для твоєї роботи. Завантаж його, відкрий у таблиці і запиши: хто публікує, коли оновлено, які поля є.
Що забрати
- Відкриту мережу читають павуки. Опубліковане без входу вважай прочитаним і збереженим.
- Пошук шукає в індексі. «Нічого не знайдено» означає «немає в цьому індексі за цим запитом».
- Вузький запит точніший, широкий повніший. Для правника пропущене часто дорожче за зайве.
- Семантичний пошук знаходить синоніми, але й схоже непотрібне. Знайдене відбирають руками.
- Асистент з пошуком читає кілька фрагментів, а не всю базу.
- Для кожного шару даних свій маршрут: пошукова система, завантаження, реєстр або API, підписка, законна підстава, запит.
- Записуй запит, джерело і дату, щоб пошук можна було повторити.