# 文档分类切分库配置文件

# 文本切分配置
text_splitting:
  # 目标层级（默认按几级目录分类）
  target_level: 1
  # 最大分块字符数
  max_chunk_size: 1500
  # 最小分块字符数
  min_chunk_size: 800
  # 模糊匹配阈值（0-1）
  fuzzy_threshold: 0.80

# 目录提取配置
toc_extraction:
  # 最多读取的页数（目录通常在前几页）
  max_pages: 15
  # Word文档每页段落数（模拟分页）
  paragraphs_per_page: 30

# 分类类别配置
categories:
  # 中文名称到英文代码的映射
  mapping:
    编制依据: basis
    工程概况: overview
    施工计划: plan
    施工工艺技术: technology
    安全保证措施: safety
    质量保证措施: quality
    环境保证措施: environment
    施工管理及作业人员配备与分工: management
    验收要求: acceptance
    其他资料: other
    非规范项: non_standard
  
  
  # 基于二级目录关键词的分类依据（来自分类要求标准.csv）
  # 通过匹配一级目录下的二级目录关键词来判断一级目录的分类
  keywords:
    编制依据:
      # 本章包含法律法规、标准规范、文件制度、编制原则、编制范围等五个方面
      patterns:
        - '法律.*法规'
        - '标准.*规范'
        - '规范.*标准'
        - '文件.*制度'
        - '编制.*原则'
        - '编制.*范围'
      keywords:
        - '法律法规'
        - '标准规范'
        - '文件制度'
        - '编制原则'
        - '编制范围'
        - '编制依据'
        - '编制说明'
        - '设计文件'
        - '相关法律'
        - '规范标准'
    
    工程概况:
      # 本章包含设计概况、工程地质与水文气象、周边环境、施工平面及立面布置、施工要求和技术保证条件、风险辨识与分级、参建各方责任主体单位等七个方面
      patterns:
        - '设计.*概况'
        - '工程.*地质'
        - '水文.*气象'
        - '周边.*环境'
        - '施工.*平面'
        - '立面.*布置'
        - '技术.*保证.*条件'
        - '风险.*辨识'
        - '风险.*分级'
        - '责任.*主体'
      keywords:
        - '设计概况'
        - '工程地质'
        - '水文气象'
        - '周边环境'
        - '施工平面'
        - '立面布置'
        - '施工要求'
        - '技术保证条件'
        - '风险辨识'
        - '风险分级'
        - '参建各方'
        - '责任主体'
        - '项目概况'
        - '工程概况'
        - '项目背景'
        - '建设概况'
        - '工程特点'
    
    施工计划:
      # 本章包含施工进度计划、施工材料计划、施工设备计划、劳动力计划、安全生产费用使用计划等五个方面
      patterns:
        - '进度.*计划'
        - '材料.*计划'
        - '设备.*计划'
        - '劳动力.*计划'
        - '费用.*计划'
        - '安全.*生产.*费用'
      keywords:
        - '施工进度计划'
        - '施工材料计划'
        - '施工设备计划'
        - '劳动力计划'
        - '安全生产费用'
        - '施工计划'
        - '施工部署'
        - '施工准备'
        - '总体安排'
        - '进度安排'
    
    施工工艺技术:
      # 本章包含主要施工方法概述、技术参数、工艺流程、施工准备、施工方法及操作要求、检查要求等六个方面
      patterns:
        - '施工.*方法'
        - '技术.*参数'
        - '工艺.*流程'
        - '施工.*准备'
        - '操作.*要求'
        - '检查.*要求'
      keywords:
        - '施工方法'
        - '技术参数'
        - '工艺流程'
        - '施工准备'
        - '操作要求'
        - '检查要求'
        - '施工工艺'
        - '技术方案'
        - '施工计算'
        - '工艺技术'
    
    安全保证措施:
      # 本章包含安全保证体系、组织保证措施、技术保证措施、监测监控措施、应急处置措施等五个方面
      patterns:
        - '安全.*保证.*体系'
        - '组织.*保证'
        - '技术.*保证'
        - '监测.*监控'
        - '应急.*处置'
      keywords:
        - '安全保证体系'
        - '组织保证措施'
        - '技术保证措施'
        - '监测监控措施'
        - '应急处置措施'
        - '安全保证'
        - '安全管理'
        - '安全施工'
        - '安全防护'
        - '安全生产'
    
    质量保证措施:
      # 本章包含质量保证体系、质量目标、工程创优规划、质量控制程序与具体措施等四个方面
      patterns:
        - '质量.*保证.*体系'
        - '质量.*目标'
        - '工程.*创优'
        - '质量.*控制'
        - '质量.*措施'
      keywords:
        - '质量保证体系'
        - '质量目标'
        - '工程创优规划'
        - '质量控制程序'
        - '质量保证'
        - '质量管理'
        - '质量控制'
        - '质量检验'
        - '质量标准'
    
    环境保证措施:
      # 本章包含环境保证体系、环境保护组织机构、环境保护及文明施工措施等三个方面
      patterns:
        - '环境.*保证.*体系'
        - '环境.*保护.*组织'
        - '环境.*保护.*措施'
        - '文明.*施工'
      keywords:
        - '环境保证体系'
        - '环境保护组织机构'
        - '环境保护措施'
        - '文明施工措施'
        - '环境保护'
        - '环保施工'
        - '水土保持'
        - '文明施工'
        - '环境管理'
    
    施工管理及作业人员配备与分工:
      # 本章包含施工管理人员、专职安全生产管理人员、特种作业人员、其他作业人员等四个方面
      patterns:
        - '施工.*管理.*人员'
        - '安全.*生产.*管理.*人员'
        - '特种.*作业.*人员'
        - '作业.*人员'
        - '人员.*配备'
        - '人员.*分工'
      keywords:
        - '施工管理人员'
        - '专职安全生产管理人员'
        - '特种作业人员'
        - '其他作业人员'
        - '人员配备'
        - '人员分工'
        - '人员配置'
        - '组织机构'
        - '劳动力安排'
        - '管理体系'
    
    验收要求:
      # 本章包含验收标准、验收程序、验收内容、验收时间、验收人员等五个方面
      patterns:
        - '验收.*标准'
        - '验收.*程序'
        - '验收.*内容'
        - '验收.*时间'
        - '验收.*人员'
      keywords:
        - '验收标准'
        - '验收程序'
        - '验收内容'
        - '验收时间'
        - '验收人员'
        - '验收要求'
        - '交工验收'
        - '竣工验收'
    
    其他资料:
      # 本章包含计算书、相关施工图纸、附图附表、编制及审核人员情况等四个方面
      patterns:
        - '计算.*书'
        - '施工.*图纸'
        - '附图.*附表'
        - '编制.*审核.*人员'
      keywords:
        - '计算书'
        - '施工图纸'
        - '附图附表'
        - '编制人员'
        - '审核人员'
        - '其他说明'
        - '附录'
        - '附件'
    
    非规范项:
      # 本类别用于收集所有不符合上述10个标准类别的目录项
      # 这是一个兜底类别，不需要配置具体的patterns和keywords
      # 分类逻辑会自动将未匹配到其他类别的目录项归入此类
      patterns: []
      keywords: []

# 输出配置
output:
  # 默认输出目录名称
  default_dir_name: "分类切分结果"
  # 是否默认保存结果
  save_results: true
  # 文件名最大长度
  max_filename_length: 200

# 编号格式配置
numbering:
  # 支持的编号格式
  formats:
    - '^【\d+】'
    - '^第[一二三四五六七八九十\d]+[章节条款]'
    - '^\d+[、．.]'
    - '^[一二三四五六七八九十]+[、．.]'
    - '^\d+\.\d+'
    - '^\(\d+\)'
    - '^（[一二三四五六七八九十\d]+）'
    - '^\([一二三四五六七八九十]+\)'
    - '^[①②③④⑤⑥⑦⑧⑨⑩]'
    - '^〖\d+(?:\.\d+)*〗'
  
  # 标题编号提取规则（按优先级从高到低）
  # 用于从标题中提取编号部分，每个规则包含：
  # - name: 规则名称
  # - pattern: 正则表达式模式（必须包含一个捕获组用于提取编号）
  # - group: 捕获组编号（默认为1）
  extraction_rules:
    - name: "章节格式"
      pattern: '^(第[一二三四五六七八九十\d]+[章节条款部分])'
      group: 1
      description: "匹配章节格式，如 第七章、第1章等"
    
    - name: "方括号数字格式"
      pattern: '^(【\d+】)'
      group: 1
      description: "匹配方括号数字格式，如 【1】、【2】等"
    
    - name: "双方括号数字格式"
      pattern: '^(〖\d+(?:\.\d+)*〗)'
      group: 1
      description: "匹配双方括号数字格式，如 〖1.1〗、〖2.3〗等"
    
    - name: "数字编号格式"
      pattern: '^(\d+(?:\.\d+)*)[\s、．.]?'
      group: 1
      description: "匹配数字编号格式，如 1、1.1、2.3.4等，可能后跟空格或、"
    
    - name: "中文编号格式"
      pattern: '^([一二三四五六七八九十]+)[、．.]'
      group: 1
      description: "匹配中文编号格式，如 一、二、三等"
    
    - name: "圆括号编号格式"
      pattern: '^([\(（][一二三四五六七八九十\d]+[\)）])'
      group: 1
      description: "匹配圆括号编号格式，如 (1)、（一）等"

# 噪音过滤配置
noise_filters:
  # 噪音模式（用于过滤非目录内容）
  patterns:
    - '^\d{4}[-年]\d{1,2}[-月]\d{1,2}'
    - '^[A-Za-z0-9\-]{20,}$'
    - '^http[s]?://'
    - '^第\s*\d+\s*页'
    - '^共\s*\d+\s*页'
    - '^[\d\s\-_.]+$'

# 目录识别配置
toc_detection:
  # 目录行的正则模式（按优先级从高到低）
  patterns:
    - '^(第[一二三四五六七八九十\d]+[章节条款].+?)[.·]{2,}\s*(\d{1,4})\s*$'
    - '^(【\d+】\s*.+?)[.·]{2,}\s*(\d{1,4})\s*$'
    - '^(〖\d+(?:\.\d+)*〗\s*.+?)[.·]{2,}\s*(\d{1,4})\s*$'
    - '^(\d+[、．.]\s*.+?)[.·]{2,}\s*(\d{1,4})\s*$'
    - '^([一二三四五六七八九十]+[、．.]\s*.+?)[.·]{2,}\s*(\d{1,4})\s*$'
    - '^(\d+(?:\.\d+)+\s*.+?)[.·]{2,}\s*(\d{1,4})\s*$'
    - '^(.+?)[.·]{2,}\s*(\d{1,4})\s*$'
  
  # 标题长度限制
  min_length: 3
  max_length: 200

# 格式规则模板配置（用于层级判断）
format_patterns:
  # 格式规则模板列表，每个模板包含：
  # - name: 格式名称
  # - pattern: 用于匹配标题开头的正则表达式
  # - template: 格式模板（将数字替换为N，中文数字替换为C，用于格式比较）
  templates:
    # 第X章格式（支持数字和"章"之间可能有空格，如"第1 章"）
    - name: "章格式"
      pattern: '^(第[一二三四五六七八九十\d]+\s*章)'
      template: '第C章'
    
    # 第X节格式（支持数字和"节"之间可能有空格，如"第1 节"）
    - name: "节格式"
      pattern: '^(第[一二三四五六七八九十\d]+\s*节)'
      template: '第C节'
    
    # 第X条格式（支持数字和"条"之间可能有空格，如"第1 条"）
    - name: "条格式"
      pattern: '^(第[一二三四五六七八九十\d]+\s*条)'
      template: '第C条'
    
    # 第X款格式（支持数字和"款"之间可能有空格，如"第1 款"）
    - name: "款格式"
      pattern: '^(第[一二三四五六七八九十\d]+\s*款)'
      template: '第C款'
    
    # 第X部分格式（支持数字和"部分"之间可能有空格，如"第1 部分"）
    - name: "部分格式"
      pattern: '^(第[一二三四五六七八九十\d]+\s*部分)'
      template: '第C部分'
    
    # 【数字】格式
    - name: "方括号数字格式"
      pattern: '^(【\d+】)'
      template: '【N】'
    
    # 〖数字〗或〖数字.数字〗格式
    - name: "双方括号数字格式"
      pattern: '^(〖\d+(?:\.\d+)*〗)'
      template: '〖N(\.N)*〗'
    
    # 四级数字点号格式（如 1.1.1.1. 等，必须放在数字编号格式之前，确保优先匹配）
    - name: "四级数字点号格式"
      pattern: '^(\d+\.\d+\.\d+\.\d+\.)'
      template: 'N.N.N.N.'
    
    # 三级数字点号格式（如 1.1.1. 等，必须放在数字编号格式之前，确保优先匹配）
    - name: "三级数字点号格式"
      pattern: '^(\d+\.\d+\.\d+\.)'
      template: 'N.N.N.'
    
    # 二级数字点号格式（如 1.1. 等，必须放在数字编号格式之前，确保优先匹配）
    - name: "二级数字点号格式"
      pattern: '^(\d+\.\d+\.)'
      template: 'N.N.'
    
    # 四级数字编号格式（如 1.1.1.1 等，必须放在更具体的格式之前，确保优先匹配）
    - name: "四级数字编号格式"
      pattern: '^(\d+\.\d+\.\d+\.\d+)(?:\s|、|．|$)'
      template: 'N.N.N.N'
    
    # 三级数字编号格式（如 1.1.1 等，必须放在二级之前，确保优先匹配）
    - name: "三级数字编号格式"
      pattern: '^(\d+\.\d+\.\d+)(?:\s|、|．|$)'
      template: 'N.N.N'
    
    # 二级数字编号格式（如 1.1 等，必须放在一级之前，确保优先匹配）
    - name: "二级数字编号格式"
      pattern: '^(\d+\.\d+)(?:\s|、|．|$)'
      template: 'N.N'
    
    # 纯数字点号格式（如 1. 2. 等，必须放在一级数字编号格式之前，确保优先匹配）
    - name: "纯数字点号格式"
      pattern: '^(\d+\.)'
      template: 'N\.'
    
    # 一级数字编号格式（如 1 等，后面必须有空格、标点或结束）
    - name: "一级数字编号格式"
      pattern: '^(\d+)(?:\s|、|．|$)'
      template: 'N'
    
    # 数字编号格式（通用格式，作为兜底，匹配任意层级的数字编号，至少包含一个点）
    - name: "数字编号格式"
      pattern: '^(\d+(?:\.\d+)+)(?:\s|、|．|$)'
      template: 'N(\.N)+'
    
    # 数字空格格式（如 1 、2 、1.1 等，数字后直接跟空格）
    - name: "数字空格格式"
      pattern: '^(\d+(?:\.\d+)*\s)'
      template: 'N(\.N)* '
    
    # 中文数字编号格式（如 一、二、等）
    - name: "中文数字编号格式"
      pattern: '^([一二三四五六七八九十]+[、．.])'
      template: 'C[、．.]'
    
    # 中文数字右括号格式（如 一) 二) 等，必须放在圆括号编号格式之前）
    - name: "中文数字右括号格式"
      pattern: '^([一二三四五六七八九十]+[\)）])'
      template: 'C[\)）]'
    
    # 圆括号编号格式（如 (1) （一）等）
    - name: "圆括号编号格式"
      pattern: '^([\(（][一二三四五六七八九十\d]+[\)）])'
      template: '[\(（]N[\)）]'
    
    # 圆圈数字格式（如 ① ②等）
    - name: "圆圈数字格式"
      pattern: '^([①②③④⑤⑥⑦⑧⑨⑩])'
      template: 'CIRCLE'

