Количество выученных doc-векторов будет равно количеству предоставленных вами уникальных тегов.Похоже, вы указали 17 717 уникальных идентификаторов, а затем 5 дополнительных повторяющихся тегов категорий.Таким образом, всего известно 17 722 тега документа (и, соответственно, соответствующих изученных вектора документа).Итак, это ожидаемое поведение.
Если вам нужно передать только 17 717 векторов для документа в какой-то другой процесс (например, уменьшение размерности до 2-го), вам придется вытянуть их из модели.Вы можете вытащить их 1 на 1 - model.docvecs[doc_id]
- и поместить в любую форму, необходимую для следующего шага.
Если ваши doc-идентификаторы были обычными целыми числами от 0 до 17 716, то они фактически будут первыми 17 716 записями в массиве model.docvecs.doctag_syn0
, что может упростить ситуацию - вы можете простовозможность использовать вид в этот массив.(Последние пять строк будут строковыми тегами.)
Я бы предложил сначала выполнить все ваши шаги без дополнительного усложнения добавления строковых тегов вторичной категории.Такие дополнительные теги могут помочь или снизить полезность векторов для последующих задач в различных ситуациях, но определенно (как вы видели) усложняют ситуацию.Таким образом, получение базовых результатов и результатов без этого осложнения может быть полезным.