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

# 文本切分配置
text_splitting:
  # 目标层级（默认按几级目录分类）
  target_level: 1
  # 最大分块字符数
  max_chunk_size: 3000
  # 最小分块字符数
  min_chunk_size: 50
  # 模糊匹配阈值（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

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

# 编号格式配置
numbering:
  # 支持的编号格式
  formats:
    - '^【\d+】'
    - '^第[一二三四五六七八九十\d]+[章节条款]'
    - '^\d+[、．.]'
    - '^[一二三四五六七八九十]+[、．.]'
    - '^\d+\.\d+'
    - '^\(\d+\)'
    - '^（[一二三四五六七八九十\d]+）'
    - '^\([一二三四五六七八九十]+\)'
    - '^[①②③④⑤⑥⑦⑧⑨⑩]'
    - '^〖\d+(?:\.\d+)*〗'

# 噪音过滤配置
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\-_.]+$'

# 页眉页脚过滤配置
header_footer_filter:
  # 页眉识别：一行中包含连续空格的数量阈值（超过此数量认为是页眉）
  header_space_threshold: 10
  # 页眉后第二行的中文字符数阈值（少于此数量时，连同页眉行和中间空行一起过滤）
  footer_line_chinese_char_threshold: 10

# 【注意】OCR 配置已迁移到 config.ini [ocr] 段
# 请修改项目根目录 config.ini 文件中的 [ocr] 配置：
#   ENGINE=glm_ocr 或 ENGINE=mineru
# 本文件保留其他非 OCR 相关配置

# 目录识别配置
toc_detection:
  # 目录行的正则模式（按优先级从高到低）
  # 页码部分支持带修饰符号，如 ‐ 19 ‐，通过提取其中的数字来识别页码
  patterns:
    - '^(第[一二三四五六七八九十\d]+[章节条款].+?)[.·]{2,}\s*(.*?\d+.*?)\s*$'
    - '^(【\d+】\s*.+?)[.·]{2,}\s*(.*?\d+.*?)\s*$'
    - '^(〖\d+(?:\.\d+)*〗\s*.+?)[.·]{2,}\s*(.*?\d+.*?)\s*$'
    - '^(\d+[、．.]\s*.+?)[.·]{2,}\s*(.*?\d+.*?)\s*$'
    - '^([一二三四五六七八九十]+[、．.]\s*.+?)[.·]{2,}\s*(.*?\d+.*?)\s*$'
    - '^(\d+(?:\.\d+)+\s*.+?)[.·]{2,}\s*(.*?\d+.*?)\s*$'
    - '^(.+?)[.·]{2,}\s*(.*?\d+.*?)\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'
