Когда я вычисляю оценку когерентности 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 лучших слов?