Skip to content

realhenrylan/AI-docs-batch

Repository files navigation

AI 文档批量摘要工具 — C# WPF 版

基于 .NET 8 WPF (WPF-UI v4) 构建的桌面应用,提供本地 NLP 算法 (TF-IDF + TextRank + MMR) + Ollama + 云端 API 三种摘要引擎,支持多文档批量处理、文档类型感知的智能提取、可视化分析和多格式报告导出。

功能特性

核心功能

  • 三引擎支持:本地经典算法 (TF-IDF + TextRank + MMR) / Ollama 本地 AI / 云端 API (OpenAI 兼容)
  • 多格式导入:支持 .txt / .pdf / .docx 文件,支持拖拽导入
  • 多格式导出:Markdown / Excel / Word / PDF 四种报告格式

文档类型感知智能提取 (Phase 13)

  • 结构化预检:自动检测文档摘要段 (Abstract) 和关键词段 (Keywords),命中直接提取,零计算满分质量
  • 文档分类器:纯正则+统计,零 AI,四类判定(教学型/碎片型/IMRaD 叙事型/通用叙事型)
  • IMRaD 章节感知:中英双语标题检测(Introduction/Methods/Results/Discussion/Conclusion),按章节优选首句拼接
  • 五信号融合评分:位置(0.25) + 内容(0.30) + 质量(0.20) + 标题邻近(0.15) + 长度(0.10) 加权评分
  • 质量降级提示:每篇摘要标注质量等级(绿高/黄中/红低)+ 降级理由 + API 建议

批次级横向分析

  • 跨文档共同主题:检出在 ≥3 篇文档中同时出现的关键词
  • 文档聚类:层次聚类(单链 0.3 阈值),自动分组相似文档
  • 版本关联检测:Levenshtein 文件名 + 余弦相似度 >0.75 标记不同版本

用户体验

  • 鼠尾草绿主题:全局 #5E9E7D 主题色 + 毛玻璃卡片 (Mica backdrop)
  • 页面切换动效:FadeInWithSlide 平滑过渡
  • 列表虚拟化:VirtualizingPanel 优化大量文档性能
  • 可视化分析:字符柱状图 + 语言分布饼图 + 批次分析面板

技术栈

组件 技术选型
运行时 .NET 8.0 Windows
UI 框架 WPF + WPF-UI v4 (Fluent Design + Mica)
架构 MVVM (CommunityToolkit.Mvvm) + DI (Microsoft.Extensions.DI)
中文分词 Jieba.NET
PDF 解析 PdfPig
DOCX 读写 Open XML SDK
Excel 导出 ClosedXML
PDF 生成 QuestPDF
测试 xUnit (64 tests)

项目结构

AI文档摘要工具_WPF/
├── src/AI文档摘要工具_WPF/
│   ├── Models/           # 数据模型 (含 DocumentType/QualityLevel)
│   ├── Services/         # 业务服务
│   │   ├── Exporters/    # 报告导出器 (MD/Excel/Word/PDF)
│   │   ├── LocalNlpEngine.cs        # 本地引擎(策略路由)
│   │   ├── StructuredPrecheck.cs    # Step 0 预检
│   │   ├── DocumentClassifier.cs    # 文档分类
│   │   ├── DocumentStructure.cs     # 结构/IMRaD 检测
│   │   ├── SentenceScorer.cs        # 五信号评分
│   │   ├── CrossDocumentAnalyzer.cs # 批次级横向分析
│   │   ├── TfIdfExtractor.cs / TextRankExtractor.cs
│   │   ├── MmrSelector.cs / KeywordFuser.cs
│   │   ├── SentenceFilter.cs / QualityChecker.cs
│   │   ├── TextPreprocessor.cs / EnglishTokenizer.cs
│   │   └── ... (Ollama/CloudApi/Config/File/Session)
│   ├── ViewModels/       # MVVM ViewModel
│   ├── Views/            # WPF 页面 (含 GlassTheme.xaml)
│   └── Themes/           # 毛玻璃主题资源字典
├── tests/AI文档摘要工具_WPF.Tests/  # xUnit 测试 (64 tests)
├── .github/workflows/    # CI/CD 流水线
├── task_plan.md          # 开发计划
└── progress.md           # 阶段进度记录

构建与运行

# 还原依赖
dotnet restore

# 构建
dotnet build

# 测试
dotnet test

# 发布(自包含单文件,无需 .NET 运行时)
dotnet publish src/AI文档摘要工具_WPF/AI文档摘要工具_WPF.csproj \
  --configuration Release --runtime win-x64 --self-contained true \
  -p:IncludeNativeLibrariesForSelfExtract=true -o publish

# 运行(或直接双击 publish/AI文档摘要工具_WPF.exe)
dotnet run --project src/AI文档摘要工具_WPF

使用说明

  1. 文件管理 → 导入或拖拽 .txt/.pdf/.docx 文件
  2. 选择引擎 → 底部三引擎卡片 (本地/Ollama/云端)
  3. 配置引擎 → 点击「配置引擎」按钮设置参数
  4. 开始处理 → 点击「开始处理」生成摘要(本地引擎自动分类文档类型、选择最优策略)
  5. 查看结果 → 切换到「摘要结果」页面查看质量 Badge + 摘要 + 关键词
  6. 可视化 → 切换到「可视化」页面查看字符统计 / 语言分布 / 批次分析(质量分布/聚类/版本关联)
  7. 导出 → 在结果页面点击「导出报告」(MD/Excel/Word/PDF,含横向分析章节)

开发阶段

  • Phase 1-12:基础架构 + 全部功能 + 63 测试 → v1.0.0
  • Phase 13:文档类型感知增强 + 横向分析 + 质量降级 + 真实文档验证通过 → v1.2.0
  • Bug Fixes:关键词词干还原 / 跟踪修订过滤 / 参考文献截断 / IMRaD 检测修复 / Coversheet 过滤 / 智能引号标准化 → v1.2.1
  • v1.2.1 二次修复:Coversheet 区块整体剥离 / PDF 自评表过滤 / PDF IMRaD 全文搜索 / MMR 句间连贯性 / 标题行降权 / De-stem most-frequent / 质量等级自动降级

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages