Я был заинтересован в получении аналогичных документов для данного входного документа (аналогично KNN). Поскольку векторизация документов (с использованием doc2vec), которые не похожи по размерам, приведет к несовместимым векторам документов, а затем вычислит вектор для ввода пользователя (который может быть всего лишь несколькими терминами / предложениями по сравнению с документами, на которых была обучена модель doc2vec, гдекаждый документ будет состоять из 100 или 1000 слов) попытка найти k-ближайших соседей приведет к неправильным результатам из-за отсутствия функций.
Следовательно, я продолжил использовать запрос more_like_this ,который выполняет аналогичную работу по сравнению с kNN, независимо от размера ввода пользователя, так как меня интересует анализ только текстовых полей.
Но меня беспокоит производительность, когда у меня есть миллионы документов, проиндексированных вelasticsearch. В документации говорится, что использование term_vector для сохранения векторов терминов во время индекса может ускорить анализ. Но я не понимаю, к какому типу вектора терминов относится документация в этом контексте. Поскольку существует три различных типа векторов терминов: информация о терминах, статистика терминов и статистика полей. И статистика терминов и статистика полей вычисляют частоту терминов по отношению к другим документам в индексе, не будут ли эти векторы устаревшими, когда я добавлю новые документы в индекс. Поэтому я предполагаю, что документация more_like_this относится к информации о терминах (которая представляет собой информацию о терминах в одном конкретном документе, независимо от других).
Может кто-нибудь сообщить мне, если вычислять только информационный вектор термина наВремя индекса достаточно, чтобы ускорить more_like_this?