pdf论文处理:CSV输出模式

CSV输出模式(新增)

问题:标准CSV格式的分段问题

在标准CSV格式中,CSV有三列:

  • content: 文本内容 + 分隔符
  • metadata: JSON格式的元数据
  • source: 源文件名

问题 :分隔符在content列末尾,后面还有metadatasource列,Dify可能无法正确识别分隔符的位置,导致分段不准确。

解决方案:Merged模式

Merged模式 将所有信息合并到content列,确保分隔符在最末尾。

CSV格式对比

Standard模式(三列):

复制代码
content,metadata,source "文本内容...","{""category"":""vulnerability_mining"",""year"":""2024"",""section"":""Abstract"",""chunk_id"":1}",paper.pdf 
  • ❌ 分隔符后面还有metadata和source列
  • ❌ Dify可能无法正确分段

Merged模式(合并,推荐):

复制代码
content,metadata,source "文本内容...[Metadata: {""category"":""vulnerability_mining"",""year"":""2024"",""section"":""Abstract"",""char_count"":135,""source_file"":""paper.pdf"",""title"":""Title""}] [Source: paper.pdf]",, 
  • ✅ 所有信息在content中
  • ✅ 分隔符在最末尾
  • ✅ Dify可以准确分段
  • ✅ 元数据在content中,不会丢失

使用方法

复制代码
# 默认使用merged模式(推荐) python process_papers.py --input ./papers # 等同于 python process_papers.py --input ./papers --csv-mode merged # 显式指定merged模式 python process_papers.py --input ./papers --csv-mode merged # 使用standard模式(不推荐) python process_papers.py --input ./papers --csv-mode standard 

测试两种模式

复制代码
# 测试CSV输出模式 python test_csv_modes.py 

这将生成两个对比CSV文件,并显示详细的格式对比。

元数据精简

在merged模式下,精简了元数据字段,仅保留核心检索字段:

保留的字段

  • category: 论文类型
  • category_cn: 中文类型
  • year: 发表年份
  • section: 章节
  • char_count: 字符数
  • source_file: 来源文件
  • title: 论文标题

移除的字段

  • chunk_id: 在merged模式下不需要

Dify导入设置(Merged模式)

  1. 上传CSV文件到Dify
  2. 设置分段标识符:
  3. 开始处理

重要:使用merged模式时,确保Dify的分段标识符与生成的CSV中的分隔符完全一致。

相关推荐
坚定信念,勇往无前7 小时前
mongodb的日志分割
数据库·mongodb
oradh10 小时前
Oracle TX 锁 Mode 4(Share)问题排查总结
数据库·oracle·tx 锁 mode 4·oracle tx 锁
yi.Ist11 小时前
数据定义语言-DDL操作
数据库·学习·mysql·oracle·大海豚
傲笑风11 小时前
【openvino】tinybert基于openvino服务化部署(四)
人工智能·python·自然语言处理·nlp·bert·openvino
维基框架12 小时前
WIKI 知识库 v1.1.1 正式发布
人工智能·python
2601_9632827712 小时前
工程项目、政企采购为什么优先选择对讲机批量采购?
数据库
Doraemomo12 小时前
SQLite数据库
数据库·sqlite
云贝教育-郑老师13 小时前
MySQL 的“黑匣子“:Performance Schema 把数据库内部变成一张可查的表
数据库·mysql
这个DBA有点耶14 小时前
同城双活落地的三座山:网络延迟、脑裂预防、反向同步
数据库·架构·dba