Я пытаюсь сгруппировать некоторые описания, используя LSI.Поскольку набор данных, который у меня есть, слишком длинный, я кластеризую на основе векторов, полученных из моделей, вместо того, чтобы использовать матрицу сходства, которая требует слишком много памяти, и если я выбираю выборку, сгенерированная матрица не соответствуетквадрат (это исключает использование MDS).
Однако, после запуска модели и поиска векторов, я получаю разные длины векторов в описаниях.Большинство из них имеют длину 300 (аргумент num_topics в модели), но некоторые из них с таким же описанием имеют длину 299.
Почему это происходит?Есть ли способ исправить это?
dictionary = gensim.corpora.Dictionary(totalvocab_lemmatized)
dictionary.compactify()
corpus = [dictionary.doc2bow(text) for text in totalvocab_lemmatized]
###tfidf model
tfidf = gensim.models.TfidfModel(corpus, normalize = True)
corpus_tfidf = tfidf[corpus]
###LSI model
lsi = gensim.models.LsiModel(corpus_tfidf, id2word=dictionary, num_topics=300)
vectors =[]
for n in lemmatized[:100]:
vec_bow = dictionary.doc2bow(n)
vec_lsi = lsi[vec_bow]
print(len(vec_lsi))