gpt4 book ai didi

python - 从多个文本文件中提取想要的词(Python 3.6)

转载 作者:行者123 更新时间:2023-12-04 15:10:20 25 4
gpt4 key购买 nike

我有一个包含约 100 000 个 txt 文件的文件夹。我正在尝试读取所有文件并创建一个包含两列 id 和文本的 DataFrame。对于 ID,我从我的文件名中获取数字,例如,文件 BL2334_uyhjghbvbvhf,我在下划线之前提取所有内容,所以在这个例子中我的 ID 是 BL2334。在创建数据框之前,我只想提取检测到的文本中的单词:...所以在这个文件中单词 BUCK、NIP、Preerfal Deet Attracter。

我的文件:

Id: 02398123-a642-4e3f-88a7
Type: LINE
Detected Text: BUCK
Confidence: 77.965172
Id: c85bbbe
Type: LINE
Detected Text: NIP
Confidence: 97.186539
Id: 28926a7a-78024c80-b9c5
Type: LINE
Detected Text: Preerfal Deet Attracter
Confidence: 47.749722

我的代码:

import os
import pandas as pd

path = r'C:\Users\example\Documents\MyFolder'

file_list = []

for (root, dirs, files) in os.walk(path, topdown=True):
file_list.append([root + "\\" + file for file in files])
def flatten(file_list):
result_list_files = []
for element in file_list:
if isinstance(element, str):
result_list_files.append(element)
else:
for element_1 in flatten(element):
result_list_files.append(element_1)
return result_list_files
result_flatten = flatten(file_list)

final_df = pd.DataFrame()

for file in result_flatten:
temp_df = pd.DataFrame()
id = file.split('\\')[-1].split('_')[0]
temp_df['id'] = [id]
temp_df['text'] = [open(file,encoding="utf8").read()]
final_df = pd.concat([final_df, temp_df], ignore_index = True)


最佳答案

只是扩展@Luca Angioioni 的解决方案,您可以使用类似的东西:

import os
import re

data = {'id': [], 'text': []}

for (root, dirs, files) in os.walk(path):
for file in files:
data['id'].append(file.split('_')[0])
with open(os.path.join(root, file)) as f:
data['text'].append(re.findall('Detected Text: (.*)\n', f.read()))

df = pd.DataFrame(data)

它将返回一个 id,每行在 text 中包含匹配列表。不过,您始终可以使用 df.explode('text') 将匹配分解为它们自己的行,但 ID 重复。


如果出于某种原因不想使用re,可以将最后一行替换为:

data['text'].append([line.split(':')[1].strip() for line in f if line.startswith('Detected Text')])

它应该也能正常工作。

关于python - 从多个文本文件中提取想要的词(Python 3.6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65291148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com