Une fois qu’un corpus est prêt pour la modélisation LDA tel que nous l’avons présenté ici, il est important de connaître le nombre optimal de topics à analyser. Pour ce faire, il est possible de calculer le score de cohérence pour différents nombres de topics afin de choisir celui qui convient le mieux. Généralement, le nombre de topics optimal selon cette mesure correspond au moins grand nombre de topics avant que le score de cohérence ne se mette à baisser.
Afin de calculer et visualiser facilement ces scores de cohérence, vous pouvez utiliser le code suivant :
[cc lang=”python”]
def compute_coherence_values(dictionary, corpus, texts, limit, start=2, step=3):
from gensim.models.ldamodel import LdaModel
coherence_values = []
model_list = []
for num_topics in range(start, limit, step):
model=gensim.models.ldamodel.LdaModel(corpus=corpus, id2word=id2word, num_topics=num_topics, random_state=1, update_every=1, chunksize=100, passes=10, alpha=’auto’, per_word_topics=True)
model_list.append(model)
coherencemodel = CoherenceModel(model=model, texts=data_lemmatized, dictionary=id2word, coherence=’c_v’)
coherence_values.append(coherencemodel.get_coherence())
return model_list, coherence_values
# Calculer les scores de cohérence entre 2 et 40 topics (Cela peut prendre un certain temps)
model_list, coherence_values = compute_coherence_values(dictionary=id2word, corpus=corpus, texts=data_lemmatized, start=2, limit=40, step=1)
# Afficher un graphique
limit=40; start=2; step=1;
x = range(start, limit, step)
plt.plot(x, coherence_values)
plt.xlabel(“Num Topics”)
plt.ylabel(“Coherence score”)
plt.legend((“coherence_values”), loc=’best’)
plt.show()
# Affchier les coherence scores
for m, cv in zip(x, coherence_values):
print(“Num Topics =”, m, ” has Coherence Value of”, round(cv, 4)) #le 4 correspond au nombre de décimales du c[/cc]
Au final, vous obtiendrez une liste de score de cohérence et un graphique comme celui-ci :

Dans ce cas, le nombre optimal de topics serait de 4.
P.S.: Il est important de savoir qu’il existe également d’autres mesures pour calculer le nombre de topics optimal, notamment la mesure de perplexité. Comme ces mesures ne sont pas infaillibles, il est souvent recommandé de vérifier différents types de mesures afin de pouvoir réellement établir le nombre de topics optimal à utiliser pour chaque modèle LDA.