Оценка когерентности Gensim возвращает NaN при использовании первых 3 слов, число при использовании 2 верхних слов - PullRequest
0 голосов
/ 08 апреля 2020

Когда я вычисляю оценку когерентности topi c для 20 лучших слов, используя gensim, он возвращает NaN. Я считаю, что если я вычисляю C_v для двух лучших слов, он возвращает 0,85; если я вычисляю оценку C_v для первых 3 слов или любое число больше 3, возвращается NaN. Это происходит только с одним topi c.

Мой код выглядит следующим образом:

i = 19
cm = CoherenceModel(topics=[tpc_gensim[i]], corpus=X_gensim,
                    texts=df_article.stem_lt.tolist(),
                    dictionary=d, coherence='c_v', topn=3)
coherence = cm.get_coherence()
print(i, coherence)

Первые 3 слова: часовой сеанс продлен.

Сообщение об ошибке

anaconda3/lib/python3.7/site-packages/gensim/topic_coherence/direct_confirmation_measure.py:204: RuntimeWarning: divide by zero encountered in double_scalars
  m_lr_i = np.log(numerator / denominator)
/anaconda3/lib/python3.7/site-packages/gensim/topic_coherence/indirect_confirmation_measure.py:323: RuntimeWarning: invalid value encountered in double_scalars
  return cv1.T.dot(cv2)[0, 0] / (_magnitude(cv1) * _magnitude(cv2))

Судя по сообщению, ошибка вызвана делением 0. Что мне делать в этом случае? Как я могу получить оценку когерентности для 20 лучших слов?

...