Как вы сказали, у вас уже есть ключевые слова, извлеченные со страницы.Я предполагаю, что вы представляете каждый документ / страницу вектором слов.Что-то вроде документ-термин-частота матрица.
Я думаю, что ближайший сосед страницы в идеале - это страница с похожим содержанием.Таким образом, вы хотите найти документы, в которых относительная частота каждого слова аналогична той, которую вы ищете.Поэтому сначала нормализуйте матрицу документов WRT каждой строки;т. е. замените количество вхождений на% tage вхождений.
Далее необходимо назначить некоторое расстояние между 2 документами, представленными этими векторами.Вы можете использовать нормальное евклидово расстояние или манхэттенское расстояние .Однако для текстового документа мера сходства, которая обычно работает лучше всего, равна Cosine Similarity .Используйте любую функцию расстояния или подобия, которая подходит для вашей проблемы (помните, что для ближайшего соседа вы хотите минимизировать расстояние; но максимизируйте сходство).
Как только вы установили векторы и свою функцию расстояния, запустите Ближайшийсосед или K-ближайший сосед алгоритм.