为了进一步完善代码,使其能够识别更多格式的问答对,并且在遇到无法识别的格式时能够跳过并继续处理下一个,我们可以采取以下措施:
增强正则表达式:支持更多的问答对格式。
增加容错处理:在遇到无法识别的格式时,记录错误并继续处理下一个。
多模式匹配:支持多种问答对的格式,例如 Q: 问题 A: 回答、问题: 回答、数字. 问题 等。
以下是改进后的代码:
import os
import json
import fitz # PyMuPDF
import docx
import re
def clean_text(text):
""" 清理文本,去除多余的空白字符和标点符号 """
text = re.sub(r'\s+', ' ', text) # 合并多个空白字符
text = re.sub(r'[^\w\s]', '', text) # 去除标点符号
return text.strip()
def extract_qa_pairs_from_txt(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
content = clean_text(content)
qa_pairs = extract_qa_pairs_from_content(content)
return qa_pairs
def extract_qa_pairs_from_docx(file_path):
doc = docx.Document(file_path)
content = '\n'.join([para.text for para in doc.paragraphs])
content = clean_text(content)
qa_pairs = extract_qa_pairs_from_content(content)
return qa_pairs
def extract_qa_pairs_from_pdf(file_path):
doc = fitz.open(file_path)
content = ''
for page_num in range(len(doc)):
page = doc.load_page(
标签:qa,pairs,收集器,text,0.3,content,file,path,数据
From: https://blog.csdn.net/weixin_54366286/article/details/143512485