Для того, щоби якісно кластеризувати тексти новинних повідомлень або статей, треба спочатку до них добратись. Легко це робить тільки людський мозок, який миттєво знаходить на сторінці текст статті (як-би йому не заважали в цьому веб-майстри, розсовуючи всюди гори реклами :-).
Але ...
З точки зору бота все не так просто. Автоматична екстракція чистого тексту зазвичай виконується алгоритмами різного ступеню складності. Я вирішив для вирішення цієї задачі застосувати каскад частотних фільтрів. Фільтрів зрозуміло - я хочу індексувати чистий текст, а для цього мені потрібно з нього викинути масу лайна. Частотних - бо крітерієм відбору в кожному фільтрі буде служити та чи інша частота. Ну а каскад - бо я спочатку буду фільтрувати документи, а тільки потім - тексти цих документів.
В основі цього рішення лежить кілька гіпотез. Перша з них: будь-який новинний ресурс має регулярну структуру. Друга: на будь-якому новинному сайті кількість документів з власне новинами - найбільша. Для того, щоби розрізнити документи, можна застосувати різні метрики. Наприклад, порахувати кількість посилань на кожен документ ресурсу.
Але знову з'являється "але"...
Продовження буде.