У меня есть список документов (corpus
).Каждый документ сравнивался с любым другим документом в списке с использованием TFIDF и LSI, и был возвращен объект сходства gensim:
dictionary = corpora.Dictionary(corpus)
corpus_gensim = [dictionary.doc2bow(doc) for doc in corpus]
tfidf = TfidfModel(corpus_gensim)
corpus_tfidf = tfidf[corpus_gensim]
lsi = LsiModel(corpus_tfidf, id2word=dictionary, num_topics=200)
lsi_index = Similarity('shard_suffix',lsi[corpus_tfidf],len(dictionary))
Как получить объект сходства lsi_index
в состояние, в котором я могузапросить его, как двумерный массив, не покрывая его двумерным массивом?
Что-то вроде ..
value = lsi_index[0,1]
... если бы я хотел получить значение косинусного сходства для документа с индексом 0 по сравнению с документом с индексом 1.
IЯ понимаю, что я мог бы выполнить следующее, чтобы заставить работать вышеупомянутую операцию запроса,
lsi_index = np.array(lsi_index)
, но возвращаемый массив с плотным массивом приводит к нехватке памяти на моем устройстве.
Я такжехочу избежать зацикливания объекта сходства.Похоже, что я должен иметь возможность запрашивать объект по своему усмотрению, не делая этого, так как лежащая в основе структура выглядит как двумерный массив.