Чтобы продлить ответ с 24 июня 2010 г., - записать предварительно рассчитанный показатель релевантности в таблицу соединений (ключ спроса, ключ предложения, показатель релевантности). Имейте в виду, что эта таблица соединения может содержать записи Count (требования) * Count (предложения); может быть целесообразно хранить только те записи, баллы релевантности которых превышают некоторое пороговое значение.
Этот подход имеет сложность вычисления O (n) при вставке данных. Вы можете уменьшить эту сложность до O (log (n)), если допущение, что Пространство функций для требований (аналогично предложениям) таково, что две заявки с высокими показателями релевантности для одного и того же предложения также «близки» в пределах Их Характеристика Пространства, содержит:
- Выполните анализ K-ближайших соседей по функциям сравнения требований (и отдельно для предложений) и ограничьте значение K приблизительно log (n) вашего набора данных.
- Рассчитать соответствие соответствия между репрезентативными векторами элементов кластеров и сохранить их в таблице базы данных.
- При вставке измерьте «Расстояние» между новой записью и каждым из кластеров этого типа и сохраните внешний ключ для кластера в новой записи.
- При поиске предложений, соответствующих спросу - перейдите по ссылкам из запроса на его кластер, чтобы найти наиболее подходящий кластер предложений для отдельных предложений.
Это поменяет специфику на скорость. Проверьте достоверность первоначального предположения, сравнив образец требований с каждым предложением и отсортировав по релевантности; Пройдите через упорядоченный набор предложений и посчитайте, сколько вы найдете в наборе результатов из поиска кластеров, прежде чем найдете тот, который отсутствует. Субъективный анализ этого теста даст вам представление о том, сколько стоит кластеризация.