数据集收集器0.3
为了进一步完善代码,使其能够识别更多格式的问答对,并且在遇到无法识别的格式时能够跳过并继续处理下一个,我们可以采取以下措施:
增强正则表达式:支持更多的问答对格式。
增加容错处理:在遇到无法识别的格式时,记录错误并继续处理下一个。
多模式匹配:支持多种问答对的格式,例如 Q: 问题 A: 回答、问题: 回答、数字. 问题 等。
以下是改进后的代码:
import os
import json
import fitz # PyMuPDF
import docx
import redef 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_pairsdef 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_pairsdef extract_qa_pairs_from_pdf(file_path):doc = fitz.open(file_path)content = ''for page_num in range(len(doc)):page = doc.load_page(