基于 .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 四种报告格式
- 结构化预检:自动检测文档摘要段 (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- 文件管理 → 导入或拖拽
.txt/.pdf/.docx文件 - 选择引擎 → 底部三引擎卡片 (本地/Ollama/云端)
- 配置引擎 → 点击「配置引擎」按钮设置参数
- 开始处理 → 点击「开始处理」生成摘要(本地引擎自动分类文档类型、选择最优策略)
- 查看结果 → 切换到「摘要结果」页面查看质量 Badge + 摘要 + 关键词
- 可视化 → 切换到「可视化」页面查看字符统计 / 语言分布 / 批次分析(质量分布/聚类/版本关联)
- 导出 → 在结果页面点击「导出报告」(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 / 质量等级自动降级