Определение "темы" в общем случае практически неосуществимо. Причина этого кроется в произвольности речи, неоднозначности контекста, несоответствия формально построенных предикатов и множеств их определения и т. д. В любом случае некоторых результатов можно добиться четко разбив множество входящщих страниц на непересекающиеся классы (что собственно и требуется) используя анализ схожести документа с "эталонными" документами каждого класса. Но понятно, что количество классов зависит от наявного набора "эталонных" контекстов. Самое главное в любом таком алгоритме: он должен руководствоваться некоторым уже существующим у него набором информации т. е. опираться в своем "умозаключении" на некоторый "опыт" (проанализируй, для примера, как ты сам решал бы такую задачу бес помощи компютера). Однако, мне воистину интересно, на основании чего у тебя возникла подобная задача? Можешь -- отпиши. С уважением -- Я.