为多for循环添加文件名:多文件关键词提取技术问询
嘿,我来帮你搞定这个关键词提取的问题,把文件名和提取结果完美关联起来~ 先理清楚咱们的对应关系:file_names里的每个文件对应big_list里同位置的文本,list_1和list_2分别是这两个文件要匹配的关键词对吧?那咱们直接上完善后的代码和细节解释:
完善后的关键词提取函数
我们的核心目标是让每个文件名和它对应的文本、关键词提取结果绑定,避免单独循环导致的索引混乱,同时让结果清晰可读。
def extract_keywords_with_file(file_names, keyword_groups, file_texts): # 用字典存储最终结果:键是文件名,值是该文件匹配到的关键词列表 extraction_result = {} # 用zip打包文件名、对应关键词组、对应文本,一次循环处理一个文件的所有数据 for file_name, keywords, text in zip(file_names, keyword_groups, file_texts): matched_keys = [] # 遍历当前文件的关键词,检查是否存在于文本中 for key in keywords: if key in text: matched_keys.append(key) # 将匹配结果关联到对应的文件名 extraction_result[file_name] = matched_keys return extraction_result # 你的原始输入数据 file_names = ['file1', 'file2'] list_1 = ['hi', 'hello'] list_2 = ['I', 'am'] big_list = ['hi I am so and so how are you', 'hello hope all goes well by the way I can help you'] # 把关键词整理成和文件一一对应的分组列表 keyword_groups = [list_1, list_2] # 调用函数并查看结果 final_result = extract_keywords_with_file(file_names, keyword_groups, big_list) print(final_result)
关键细节说明
- 用
zip()函数把三个列表打包配对:file_names[0]对应keyword_groups[0]和big_list[0],完美对应每个文件的所有关联数据,避免手动索引出错。 - 结果用字典存储,键是文件名,值是匹配到的关键词,这样你能直接通过文件名查到对应结果,非常直观。
- 如果你的需求是所有文件用同一组关键词,只需要把
keyword_groups改成[your_common_keywords] * len(file_names)就行,适配起来很灵活。
运行输出
执行上面的代码后,你会得到清晰的关联结果:
{'file1': ['hi', 'I', 'am'], 'file2': ['hello', 'I']}
内容的提问来源于stack exchange,提问作者user9431057
相关产品推荐
相关产品推荐

