Как вручную установить значения модели Tfidf в gensim - PullRequest
0 голосов
/ 28 мая 2018

В коде Python:

tfidf = models.TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]

Я хочу найти способ заполнить значения corpus_tfidf вручную, так как у меня уже есть список списка tfidfs для каждого документа в корпусе, рассчитанный с использованиемконкретные уравнения.

Итак, как использовать их для заполнения corpus_tfidf вместо их пересчета с использованием вычислений gensim.

Я хочу использовать свои значения, которые будут переданы для моделей LSI и LDA gensim.

Спасибо.

1 Ответ

0 голосов
/ 29 мая 2018

Мне кажется, что если вы можете вручную назначить атрибут idfs, то вы сможете преобразовать корпус без повторной подгонки.Надеюсь, это поможет.

Автономный пример:

from gensim.models import TfidfModel
from gensim.corpora import Dictionary

# trained version
corpus = ['cow', 'brown thing', 'cow thing']
corpus = [x.split() for x in corpus]
dct = Dictionary(corpus)
corpus_as_bow = [dct.doc2bow(x) for x in corpus]
model_trained = TfidfModel(corpus_as_bow)
corpus_tfidf_trained = model_trained[corpus_as_bow]

# not trained version
model_not_trained = TfidfModel()
model_not_trained.idfs = {0: 0.5849625007211562, 1: 1.5849625007211563, 2: 0.5849625007211562}
corpus_tfidf_not_trained = model_not_trained[corpus_as_bow]

# check equivalence
list(corpus_tfidf_trained) == list(corpus_tfidf_not_trained)

True

...