Почему я получаю векторы разной длины, используя модель Lens Gensim? - PullRequest
0 голосов

Я пытаюсь сгруппировать некоторые описания, используя 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))

1 Ответ

0 голосов
/ 27 мая 2019

Явные нули опущены, поэтому некоторые векторы выглядят короче.Источник: https://github.com/RaRe-Technologies/gensim/issues/2501

...