Сохранение файла pyldavis итеративно - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь сохранить HTML файлов, сгенерированных из pyldavis, как несколько файлов каждый раз, когда выбирается диапазон, но при этом выдает ошибку. Я хочу, чтобы файлы создавались как malletresults1, malletresults2, malletresults3. Но это дает мне ошибку, файл также не сохраняется как HTML файл. '' '

def create_lda_optimize(self,texts,topics_range,corpus,dictionary,repetitions=4,visualize = True):
        coherence_values = []
        model_list = []
        j = 0
        #topics_range = list(range(10,20,1))
        mallet_path = '/home/ResearchAndDevelopment/RD003-TopicModelling/'
        for i in range(repetitions):
            ccv = []
            for num_topics in topics_range:
                model = gensim.models.wrappers.LdaMallet(mallet_path, corpus=corpus, 
                                                         num_topics=num_topics, id2word=dictionary)
                model_list.append(model)
                lda_model = gensim.models.wrappers.ldamallet.malletmodel2ldamodel(model)
                vis = pyLDAvis.gensim.prepare(lda_model,corpus,dictionary,mds = 'mmds') 
                name = str(i)
                filename = "malletresults"+name
                if not os.path.exists(os.path.dirname(filename)):
                    try:
                        os.makedirs(os.path.dirname(filename))
                    except OSError as exc:                         
                        with open(filename, "w") as f:                                              
                            pyLDAvis.save_html(vis,filename+".html")
                            name+1
                coherencemodel = CoherenceModel(model=model, texts=texts, dictionary=dictionary, coherence='c_v')
                ccv.append(coherencemodel.get_coherence())
            coherence_values.append(ccv)
            print(model_list, coherence_values)
        def _mean(a):
            return sum(a) / len(a)
        avg_cv = list(map(_mean, zip(*coherence_values)))
        numberOfTopics = topics_range[avg_cv.index(max(avg_cv))]

' ''

...