Хабр Курсы для маркетологов
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!

В примере есть отдельный крайний случай: если после извлечения основного текста осталось меньше десяти слов, shingles вернёт пустое множество, а обе метрики — 0. Это легко прочитать как отсутствие сходства, хотя сравнение фактически не состоялось. Я бы выводил для таких страниц отдельный статус «недостаточно текста» и число полученных шинглов. Тогда ошибка извлечения не превратится в убедительный ноль; короткие карточки можно будет проверять другим способом.
ИИ‑спам и обновление Google: как найти у себя почти одинаковые страницы, если порога похожести Google не называет