reory/Word-Counter-Vault
GitHub: reory/Word-Counter-Vault
一套基于 Django 和 DuckDB 的全栈语言分析工具,提供实时文本 KPI、全球词源地图映射和自动化取证报告生成。
Stars: 0 | Forks: 0
# 📚 Word Counter Vault — 全栈语言分析套件
          
## 🛠️ 项目架构
该项目分为两个主要组件,以平衡实时用户交互与深度分析处理:
### 1. 交互式分析仪表板 (`views.py` & `templates/`)
项目的**“Frontend”**逻辑。它为用户提供了一个探索文本数据的实时界面。
* **动态地理空间地图:** 使用 **Folium** 在全球地图上精确定位词源,可视化文本的“地理 DNA”。
* **即时语言 KPI:** 实时计算词汇多样性 (TTR)、过度使用词汇和被动语态检测。
* **用户金库:** 一个持久的历史记录系统,允许用户安全地搜索、审查和管理他们的分析记录。
### 2. 取证报告与数据引擎 (`services/` & `models.py`)
**“分析后端”**。负责处理繁重的数据管理和文档生成任务。
* **双状态存储:** 在 **SQLite** 中管理持久的用户历史记录,同时将高速词源查询卸载到 **DuckDB** OLAP 引擎。
* **全球词源管道:** 一个自定义摄取层,将 500 多个单词映射到全球坐标(拉丁语、日耳曼语、阿拉伯语、梵语等)。
* **自动化文档生成:** 将发现结果汇编成专业的 PDF 报告(通过 **WeasyPrint**)和 Word 文档(**python-docx**),以供离线审查。
## 📁 文件结构
* `word_counter/settings.py`:Django 环境的核心配置。
* `counter/views.py`:文本处理、正则表达式规范化和仪表板渲染的逻辑。
* `counter/services/seed_origins.py`:用于摄取全球词库的数据管道脚本。
* `counter/services/word_data.json`:包含 500 多条全球词源记录的“真理来源”。
* `word_vault_analytics.duckdb`:用于地理空间词汇查询的高性能数据库。
## 🧰 技术栈
* **Python 3.10** (开发环境)
* **Django 5.2:** 用于 Web 框架和用户认证。
* **DuckDB:** 用于高性能的本地分析型词源查询。
* **SQLite:** 用于持久的用户历史记录和会话管理。
* **Folium/Leaflet:** 用于交互式地理空间地图。
* **WeasyPrint / python-docx:** 用于自动化取证报告创建。
* **Regex:** 用于高速文本规范化和清理。
## ⚙️ 安装与本地使用
要在本地运行此项目:
1. **克隆仓库:** `git clone https://github.com/reory/Word-Counter-Vault.git`
2. **安装依赖:** `pip install -r requirements.txt`
3. **填充全球词库:** `python -m counter.services.seed_origins`
4. **启动应用:** `python manage.py runserver`
## 🧪 质量保证与测试
该项目使用 **Pytest** 实施了全面的自动化测试套件,以确保分析管道中的数据完整性和安全性。
### 测试覆盖范围:
* **语言逻辑:** 验证正则表达式规范化、词频计算和词汇多样性指标。
* **安全与权限:** 确保严格的对象级访问控制(例如,用户无法查看或删除他人的分析历史)。
* **服务层与模拟:** 利用 `pytest-mock` 模拟 **DuckDB** OLAP 连接,从而实现无磁盘 I/O 依赖的高速测试。
* **文件提取:** 使用 Django 的 `SimpleUploadedFile` 验证对 `.txt`、`.pdf` 和 `.docx` 上传文件的稳健处理。
### 本地运行测试:
```
pytest
```
## 🙏 致谢
* **词源来源:** 在线词源词典,用于词根追踪。
* **社区:** 感谢 Django 和 DuckDB 社区提供的强大库支持。
## 🛣️ 路线图
- [x] **核心架构:** 双引擎(Django + DuckDB)设置。
- [ ] **数据播种:** 集成 `Faker` 进行大规模压力测试。
- [ ] **地理空间地图:** 通过 Plotly/Mapbox 实现交互式词源起源。
- [x] **取证报告:** 文本分析的 PDF/CSV 导出功能。
- [x] **用户账户:** 语言历史记录的私密存储。
## ⚖️ 许可证
该项目采用 MIT 许可证授权 - 详情请参阅 `LICENSE` 文件。
**由 Roy Peters 构建** 😁 [](https://linkedin.com/in/roy-p-74980b382/)
点击展开截图
          
标签:Django, DuckDB, ESC4, Folium, Matplotlib, NumPy, OSINT, PDF生成, Python, 交互式地图, 仪表盘, 取证报告工具, 取证科学, 后端开发, 情报分析套件, 数据科学, 文本分析, 无后门, 自动化报告, 词源映射, 词频统计, 语言学分析, 资源验证, 逆向工具