Reputation: 35
text='Alice is a student.She likes studying.Teachers are giving a lot of homewok.'
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]
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 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?
Upvotes: 3
Views: 2067
Reputation: 1057
You can use coherence='c_v' without problem. My answer is quite similar to AKHILA one. But I call freeze_support() in the main process and start the method with support for Windows.
Consider the structure from the beginning:
# imports
from multiprocessing import Process, freeze_support
import ...
# general constants and variables
...
# functions definition
def ...
...
def ...
...
# main function
def principal(): # can be another name
...
...
if __name__ == '__main__':
freeze_support()
Process(target=main).start()
Upvotes: 0
Reputation: 469
I'm having the same issue when running gensim Nmf and the way to fix it was to change from coherence='c_v' to coherence='u_mass'
Upvotes: 0
Reputation: 76
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)
Upvotes: 6