Skip to content
Advertisement

How to fix LDA model coherence score runtime Error?

text=’Alice is a student.She likes studying.Teachers are giving a lot of homewok.’

I am trying to get topics from a simple text(like above) with coherance score.This is my LDA model:

id2word = corpora.Dictionary(data_lemmatized)
texts = data_lemmatized
corpus = [id2word.doc2bow(text) for text in texts]

lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus,
                                           id2word=id2word,
                                           num_topics=5, 
                                           random_state=100,
                                           update_every=1,
                                           chunksize=100,
                                           passes=10,
                                           alpha='auto',
                                           per_word_topics=True)
# Print the Keyword in the 10 topics
pprint(lda_model.print_topics())
doc_lda = lda_model[corpus]

When i try to run this coherance model:

coherence_model_lda = CoherenceModel(model=lda_model, texts=data_lemmatized, dictionary=id2word, 
coherence='c_v')
coherence_lda = coherence_model_lda.get_coherence()
print('nCoherence Score: ', coherence_lda)

I am supposed to get this king of output-> Coherence Score: 0.532947587081

I get this error: raise RuntimeError(”’ RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase.

    This probably means that you are not using fork to start your
    child processes and you have forgotten to use the proper idiom
    in the main module:

        if __name__ == '__main__':
            freeze_support()
            ...

    The "freeze_support()" line can be omitted if the program
    is not going to be frozen to produce an executable.

What should i do to fix this?

Advertisement

Answer

I have faced the same issue. Adding ‘Coherence Model’ inside if__name__==”main” resolved the issue for me.

if __name__ == "__main__":

     coherence_model_lda = CoherenceModel(model=lda_model, texts=data_lemmatized, 
                                                          dictionary=id2word, 
                                                              coherence='c_v')
     coherence_lda = coherence_model_lda.get_coherence()
     print('nCoherence Score: ', coherence_lda)
Advertisement