🧠 COMPUTER SCIENCE

Как работает проверка на плагиат

Учитель загружает твоё сочинение в систему, и через пару секунд она выдаёт: «совпадение 14%». Но как машина за это время сравнила твой текст с миллионами чужих? Разбираем магию без магии.

Ты сдаёшь реферат, учитель загружает его в систему — и через пару секунд экран показывает: «оригинальность 86%». Как программа успела сравнить твой текст с миллионами чужих работ быстрее, чем ты доешь бутерброд? Никакой магии тут нет — есть очень хитрая математика, которая умеет превращать слова в числа.

Сравнивать буква в букву — плохая идея

Самое наивное решение, которое приходит в голову: взять твой текст и тупо сравнить его с каждым документом в базе, символ за символом. Проблема в том, что это чудовищно медленно. Если в базе хранятся сотни миллионов работ, а в каждой — десятки тысяч символов, то такое сравнение заняло бы не секунды, а годы.

Но даже если бы у нас был бесконечно быстрый компьютер, этот подход всё равно провалился бы. Достаточно поменять одно слово, переставить два предложения или добавить запятую — и тексты перестанут совпадать буква в букву, хотя по сути это одно и то же. Списывающие именно так и делают. Значит, машине нужен способ ловить смысл совпадения, а не точное копирование.

Текст превращается в кусочки

Здесь на сцену выходит главная идея антиплагиата — шинглы (от английского shingle — «черепица»). Представь, что ты режешь текст на короткие пересекающиеся кусочки по несколько слов. Например, фразу «кошка села на тёплый коврик» можно нарезать по три слова:

  • кошка села на
  • села на тёплый
  • на тёплый коврик

Кусочки идут внахлёст, как черепица на крыше — отсюда и название. Теперь любой текст — это не сплошная стена символов, а набор маленьких фрагментов. И вот в чём фокус: если два человека написали про одно и то же своими словами, их шинглы почти не совпадут. А если один списал у другого — у них окажется куча одинаковых кусочков, даже если кое-где переставлены абзацы.

Антиплагиат ищет не одинаковые тексты, а одинаковые кусочки текста. Это как ловить вора не по лицу, а по отпечаткам пальцев, которые он оставил повсюду.

Слова становятся числами

Сравнивать кусочки как строки всё ещё медленно. Поэтому каждый шингл прогоняют через хеш-функцию — это такая «мясорубка», которая из любой строки делает короткое число. Одинаковый кусочек текста всегда даёт одно и то же число, а разные кусочки — почти всегда разные числа.

Теперь весь твой реферат — это просто список чисел. И база данных — тоже списки чисел. Сравнивать числа компьютер умеет молниеносно: ему достаточно посмотреть, сколько твоих чисел встречается в чужих документах. Чем больше пересечений — тем выше совпадение.

Чтобы не сравнивать вообще всё со всем, системы используют хитрость лентяя: из всех чисел документа берут, например, только самые маленькие. Если у двух текстов совпадают даже эти «избранные» числа, велика вероятность, что и сами тексты похожи. Так проверка миллионов работ умещается в пару секунд.

Где система берёт «эталоны»

Антиплагиат силён ровно настолько, насколько богата его база. Сравнивать-то нужно с чем-то! Поэтому такие системы заранее собирают и хешируют гигантские коллекции текстов:

  • миллионы научных статей и диссертаций;
  • учебники, книги и энциклопедии;
  • огромные куски открытого интернета;
  • и — важно — все работы, которые когда-то уже загружали другие ученики и студенты.

Последний пункт особенно коварен. Если твой одноклассник в прошлом году сдал реферат, который ты решил «позаимствовать», система его уже видела и запомнила. Поэтому скачать готовую работу из сети — почти гарантированный способ попасться: эта работа давно лежит в базе.

Гонка брони и снаряда

Хитрецы постоянно придумывают, как обмануть проверку: меняют слова на синонимы, подставляют латинские буквы вместо русских (например, латинскую «a» вместо кириллической), вставляют невидимый белый текст между словами. Это вечная гонка вооружений — как щит против меча.

Но и системы не стоят на месте. Современный антиплагиат уже не просто считает совпадения кусочков. Он умеет распознавать перефразирование, замечает подмену символов, ловит машинный перевод и всё чаще использует нейросети, которые анализируют смысл, а не только форму. А с появлением текстов, написанных искусственным интеллектом, появилась и отдельная задача — отличить написанное человеком от сгенерированного машиной.

Вывод простой и немного скучный: обмануть проверку с каждым годом всё труднее, а написать самому — всё проще, чем кажется. Зато, разобравшись, как устроен антиплагиат изнутри, ты теперь смотришь на эти проценты совсем другими глазами. За ними не магия, а шинглы, хеши и очень много чужих чисел, с которыми сравнивают твои.

#алгоритмы#антиплагиат#плагиат#тексты#хеширование