当前位置: 首页 > article >正文

羲和数据集收集器1.3

为了实现所要求的功能,我们需要进一步完善代码,使其能够处理多种格式的输入文件,并生成符合要求的 JSON 格式的输出文件。具体来说,我们完善了以下内容:

增强 extract_qa_pairs_from_content 函数:使其能够识别和处理不同格式的 QA 对。
确保输出文件的格式正确:每个 QA 对占一行,且格式为 JSON。
以下是完善后的代码:

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)  # 去除标点符号
    text = re.sub(r'"', "'", text)  # 替换双引号
    text = re.sub(r'\\', '/', 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 = []
    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_part
            for element in text_box.element.body:
                if element.tag.endswith('p'):
                    content.append(element.text)
    content = '\n'.join(content)
    content = clean_text(content)
    qa_pairs = extract_qa_pairs_from_content(content)
    return qa_pairs

def

http://www.kler.cn/a/391211.html

相关文章:

  • Springboot 日志处理(非常详细)
  • python购物计算 2024年6月青少年电子学会等级考试 中小学生python编程等级考试一级真题答案解析
  • 以色列支付龙头遭DDoS攻击,各地超市加油站等POS机瘫痪
  • 基于yolov8、yolov5的番茄成熟度检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • 【再谈设计模式】抽象工厂模式~对象创建的统筹者
  • 【LeetCode】【算法】55. 跳跃游戏
  • python在word中插入图片
  • 马斯克万卡集群AI数据中心引发的科技涟漪:智算数据中心挑战与机遇的全景洞察
  • 文章管理系统微信小程序ssm+论文源码调试讲解
  • 医疗影像分割 | 使用yolo v11训练自己的数据集
  • MATLAB实现狼群算法优化柔性车间调度(GWO-fjsp)
  • FRTC8563实时时钟芯片的作用
  • java版嘎嘎快充汽车单车充电系统源码系统jeecgboot
  • 分布式ID实现方案
  • 深度学习:自监督学习(Self-supervised Learning, SSL)详解
  • 【Linux】man 手册的使用指南
  • 再见 阿里巴巴EasyExcel替代品EasyExcel-Plus即将诞生
  • react之了解jsx
  • 优化时钟网络之时钟抖动
  • 论文笔记:TravelPlanner: A Benchmark for Real-World Planning with Language Agents
  • MySQL技巧之跨服务器数据查询:基础篇-如何获取查询语句中的参数
  • 计算机毕业设计Hadoop+Spark高考推荐系统 高考分数线预测 知识图谱 高考数据分析可视化 高考大数据 大数据毕业设计 Hadoop 深度学习
  • 雨晨 24H2 Windows 11 IoT ltsc 2024 IE 极简版 26100.2222
  • 【分布式】BASE理论
  • 如何监控Kafka消费者的性能指标?
  • cesium 3DTiles之pnts格式详解