Сходство документа запроса с doc2vec - PullRequest
0 голосов
/ 06 августа 2020

Учитывая запрос и документ, я хотел бы вычислить оценку сходства с помощью Gensim doc2ve c. Каждый документ состоит из нескольких полей (например, основной заголовок, автор, издатель и т. Д. c)

Для обучения лучше объединить поля документа и рассматривать каждую строку как уникальный документ или я должен разделить поля и использовать их в качестве различных обучающих примеров?

Для вывода, следует ли мне рассматривать запрос как документ? То есть, должен ли я вызывать модель (обученную по документам) по запросу?

1 Ответ

1 голос
/ 06 августа 2020

Правильный ответ будет зависеть от ваших данных и поведения пользователя, поэтому вы захотите попробовать несколько вариантов.

Чтобы получить первые результаты, я бы предложил объединить все поля в один документ ', для каждого потенциального результата запроса и с использованием режима (быстрого обучения) PV-DBOW (dm=0). Это позволит вам начать видеть результаты, либо проводить некоторую неформальную оценку, либо начинать собирать некоторые автоматические c оценочные данные (например, списки пробных запросов и документов, которые «должны» иметь высокий рейтинг).

Затем вы могли бы попробуйте проверить идею создания отдельных полей в документах - либо вместо, либо в дополнение к подходу single-do c.

Другой вариант может заключаться в создании специализированных токенов слов для каждого поля. То есть, когда в заголовке появляется «Джон», вы фактически предварительно обрабатываете его как «title: John», а когда в author, «author: John» и т. Д. c. (Это может быть вместо или в дополнение к голому оригинальному токену.) Это могло бы улучшить модель, чтобы также понять смещение смысла каждого токена, в зависимости от поля.

Затем, если у вас есть Достаточно обучающих данных и хорошо выбрать другие параметры модели, ваш интерфейс поиска может также предварительно обрабатывать запросы аналогичным образом, когда пользователь указывает определенное поле, и получать улучшенные результаты. (Или, может быть, нет: это просто идея, которую стоит попробовать.)

Во всех случаях, если вам нужны точные результаты - точное совпадение четко определенных пользовательских запросов - более традиционные поисковые запросы, такие как точный Соответствие DB / greps или полнотекстовые обратные индексы будут превосходить Doc2Vec. Но когда запросы более приблизительны, а результаты необходимо заполнить результатами, близкими по значению, даже если не в буквальном смысле, может оказаться полезным более нечеткое векторное представление документа.

...