羲和数据集收集器0.9
为了进一步完善代码,增强其文字抓取能力和文件读取能力,我们做以下改进:
增强 DOCX 文档的文本提取:不仅提取段落和文本框内容,还提取表格中的文本。
增强 PDF 文档的文本提取:不仅提取页面文本和注释,还提取表格中的文本。
优化文本清理:确保文本清理更加彻底,避免不必要的空白和标点符号。
增加日志记录:记录更多的处理细节,便于调试和问题排查。
以下是改进后的代码:
python
import os
import json
import fitz # PyMuPDF
import docx
import re
import tkinter as tk
from tkinter import filedialog, messagebox, simpledialog
import logging# 设置日志记录
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')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_pairsdef extract_qa_pairs_from_docx(file_path):doc = docx.Document(file_path)content = []for para in doc.paragraphs:content.append(para.text)for table in doc.tables:for row in table.rows:for cell in row.cells:content.append(cell.text)for rel in doc.part.rels.values():if "textBox" in rel.target_ref:text_box = rel.target_partfor element in text_box.element.body:if element.tag.endswith('p')