如何循环多个列表?

问题描述

我有13个不同的单词列表。在进行主题建模时,我想清理它们,创建语料库,get_document_topics并连接所有列表的结果。 下面显示了对一个列表即Eastern_data_words进行处理的代码。我想将这些相同的步骤应用于其余所有12个列表。我相信我应该为这些列表创建一个字典,然后以某种方式遍历

删除停用词

eastern_data_words_nostops = remove_stopwords(eastern_data_words)

形成二元流

eastern_data_words_bigrams = make_bigrams(eastern_data_words_nostops)


nlp = spacy.load("en_core_web_md",disable=['parser','ner'])

不进行词形化仅保留名词,adj,vb,adv

eastern_data_lemmatized = lemmatization(eastern_data_words_bigrams,allowed_postags=['NOUN','ADJ','VERB','ADV'])

创建字典

id2word_reg = corpora.Dictionary(eastern_data_lemmatized)

创建语料库

texts_reg = eastern_data_lemmatized

术语文档频率

corpus_reg = [id2word_reg.doc2bow(text) for text in texts_reg]

#获取所有文档中主题的权重

topics = [lda_model_tuned[corpus_reg[i]] for i in range(len(eastern))]

def topics_document_to_dataframe(topics_document,num_topics):
    res = pd.DataFrame(columns=range(num_topics))
    for topic_weight in topics_document:
        res.loc[0,topic_weight[0]] = topic_weight[1]
    return res

document_topic = pd.concat([topics_document_to_dataframe(topics_document,num_topics=8) for `topics_document in topics]).reset_index(drop=True).fillna(0)`

eastern_weights= document_topic.apply(np.mean,axis=0)

最后,我想要一个具有不同主题权重的数据框为列,列表名称为行。图像中显示了一列的示例。 output

解决方法

如果起始输入是13个单词列表之一,后跟您概述的所有步骤,则您应该能够将所有步骤变成一个接受单词列表作为输入的函数。然后,您可以遍历每个列表的功能。

IncidencesAllAges
,

根据您对我的评论的回应,听起来您真的在寻找如何遍历文件的方法。

我认为,这个stackoverflow解决方案是一个不错的起点。 How can I iterate over files in a given directory?

为了给我们提供更多指导,您应该包括当前用于导入数据的过程。上面的代码更多地是关于它的处理的,听起来您已经知道了。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...