Я бы порекомендовал вам создать словарь общих слов из списка известных сайтов. Предположим, у вас есть 100 сайтов, и вы знаете , что все они говорят о футболе. Вы можете создавать униграммы и биграммы (или n-граммы) карт контента и использовать их в качестве базовой линии, из которой вы измеряете некоторый тип «отклонения» в отношении каждого нового наблюдения, которое вы делаете. Обратите внимание, что вам придется удалить общие стоп-слова, чтобы исключить ненужные слова; на английском есть немало, вот список: http://www.ranks.nl/resources/stopwords.html
N-граммы - это частота слов или комбинаций слов. Unigrams создает карту, где ключ - это слово, а значение - номер вхождения для каждого слова. Биграммы обычно создаются путем объединения двух последовательных слов и использования их в качестве ключа, и так далее для триграмм и n-граммов.
Вы можете взять верхние n-граммы с ваших известных сайтов и сравнить их с верхними n-граммами сайта, который вы сейчас оцениваете. Чем больше они похожи, тем больше вероятность, что сайт имеет ту же тему.