Skip to content

flystar233/chinese-poetry-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中国古诗词分析器 - Chinese Poetry Analyzer

一个功能完整的古诗词分析系统,包含Web应用、数据爬虫和词牌智能分析功能。系统可以智能识别词牌名、分析平仄合规性、标注韵脚韵部,并支持词牌介绍的自动获取与管理。

🎯 核心功能

Web分析系统

  • 🔍 智能词牌识别:根据字数和分段自动识别800+词牌名
  • 📊 平仄分析:基于钦定词谱精准标注平仄,实时计算合规得分
  • 🎵 韵脚分析:多模式韵脚识别,支持用户选择最适合的韵脚模式
  • 📚 多韵书支持:词林正韵与中华新韵双韵书系统
  • 📖 词牌介绍:集成词牌详细介绍,包含历史、格律、代表作等
  • 🎨 优雅界面:中式美学设计,使用霞鹜文楷字体,响应式布局
  • ⚡ 实时交互:异步处理,流畅的用户体验

数据资源

  • 词牌谱库:完整的钦定词谱数据库(800+词牌)
  • 韵书数据:词林正韵、中华新韵完整收录
  • 词牌介绍:详细的词牌历史、格律、代表作信息
  • 韵脚数据:精确的韵脚位置标注

🏗️ 项目结构

chinese-poetry-analyzer/
├── app.py                           # Flask Web应用主文件
├── poetry_scraper.py                # 词牌信息爬虫脚本
├── requirements.txt                 # Python依赖包
├── README.md                        # 项目说明文档
├── templates/
│   └── index.html                   # Web界面模板
├── static/
│   ├── css/
│   │   └── style.css                # 样式文件(中式美学设计)
│   ├── js/
│   │   └── script.js                # 前端交互逻辑
│   └── fonts/
│       └── LXGWWenKai-Regular.ttf   # 霞鹜文楷字体
└── data/                            # 数据文件目录
    ├── 词林正韵.json                # 词林正韵韵书数据
    ├── 中华新韵.json                # 中华新韵韵书数据
    ├── cipai_with_statistics_qdcp.csv    # 钦定词谱完整数据
    ├── cipai_with_statistics_tscgl.csv   # 唐宋词格律数据
    ├── cipai_detail.csv             # 词牌名称列表
    ├── cipai_detail_with_intro.csv  # 词牌详细介绍数据
    ├── yunjiao.csv                  # 韵脚位置数据
    ├── tone_patterns_all_pages.csv  # 平仄模式数据
    ├── 词频分析.csv                 # 词频统计数据
    └── clzy.html                    # 词林正韵网页源文件

🚀 系统要求

  • Python: 3.7+
  • 浏览器: 支持ES6+的现代浏览器
  • 操作系统: Windows / macOS / Linux
  • 内存: 推荐2GB+

📦 安装与使用

1. 环境准备

# 克隆项目(如果通过Git)
git clone [项目地址]
cd chinese-poetry-analyzer

# 创建Python虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate

2. 安装依赖

# 安装所有Python依赖
pip install -r requirements.txt

3. 启动Web服务

# 启动Flask应用
python app.py

成功启动后会看到:

 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5000
 * Running on http://[您的IP]:5000

4. 访问系统

打开浏览器访问:

5. 数据爬虫使用

# 运行词牌信息爬虫
python poetry_scraper.py

# 爬虫支持以下功能:
# - 从网页提取词牌格律信息
# - 批量获取词牌介绍
# - 自动数据清理和格式化

📖 使用指南

Web分析系统使用

基本操作流程

  1. 输入诗词:在文本框中输入要分析的古诗词文本
  2. 选择韵书
    • 词林正韵:传统韵书,适合古典作品
    • 中华新韵:现代韵书,推荐日常使用
  3. 开始分析:点击"开始分析"按钮,系统将自动处理

快速体验

  • 双击文本输入框可自动填入示例诗词
  • 系统基于权威钦定词谱进行分析,确保结果准确性

分析结果详解

📊 基础信息

  • 词牌识别:自动识别的词牌名和代表作者
  • 词牌介绍:显示词牌的历史、格律、别名等详细信息
  • 文本统计:总字数和分段字数统计

📈 平仄分析

  • 平仄得分:合规性评分(0-100%)
    • 🟢 绿色(90%+):优秀
    • 🟡 黄色(70%-89%):良好
    • 🔴 红色(<70%):需要改进
  • 平仄标注:逐字标注
    • 🔵 青色:平声字
    • 🔴 红色:仄声字
    • ⚪ 灰色:未知声调
  • 不合规提示:列出不符合格律的字及正确声调

🎵 韵脚分析

  • 韵脚字识别:自动标识韵脚位置
  • 韵部标注:显示韵脚字所属韵部
  • 多模式选择:支持多种韵脚模式,用户可自由切换

数据爬虫系统使用

自动化批量采集

  • 支持从CSV文件读取词牌列表进行批量搜索
  • 自动提取词牌介绍、格律信息、代表作等
  • 智能去重和数据清理
  • 结果自动保存为结构化数据

🔧 技术架构

后端技术栈

  • 框架:Flask 2.3.3(轻量级Web框架)
  • 数据处理:Pandas 2.1.4(数据分析和处理)
  • 文本处理:正则表达式、Unicode处理
  • 文件格式:JSON、CSV数据存储

核心模块

  • app.py:Flask主应用,包含完整分析逻辑
  • 路由系统
    • /:主页面渲染
    • /analyze:诗词分析API(POST)
    • /select_yunjiao:韵脚模式选择API(POST)

前端技术栈

  • HTML5:语义化页面结构
  • CSS3:中式美学设计 + 响应式布局
  • JavaScript ES6+:异步处理,动态交互
  • 字体:霞鹜文楷(LXGW WenKai)增强阅读体验

数据爬虫技术

  • 爬虫框架:Requests + BeautifulSoup4
  • 数据处理:自动化文本清理和格式化
  • 并发处理:支持多标签页并行数据采集
  • 智能解析:HTML结构智能识别和内容提取

数据存储架构

数据层级结构:
├── 韵书数据 (JSON)
│   ├── 词林正韵.json - 传统韵书完整数据
│   └── 中华新韵.json - 现代韵书完整数据
├── 词牌谱数据 (CSV)  
│   ├── cipai_with_statistics_qdcp.csv - 钦定词谱(800+词牌)
│   ├── cipai_with_statistics_tscgl.csv - 唐宋词格律  
│   └── cipai_detail_with_intro.csv - 词牌详细介绍
├── 韵脚数据 (CSV)
│   └── yunjiao.csv - 多模式韵脚位置标注
└── 辅助数据
    ├── tone_patterns_all_pages.csv - 平仄模式
    └── 词频分析.csv - 词频统计

❓ 常见问题与解决方案

🚨 系统问题

Q: 启动时提示找不到数据文件?
A: 请检查以下项目:

  • 确保 data/ 目录下有所有必需的数据文件
  • 检查文件路径和文件名是否正确
  • 确认当前工作目录是项目根目录

Q: 端口5000被占用无法启动?
A: 修改 app.py 最后一行:

app.run(debug=True, host='0.0.0.0', port=8080)  # 改为其他端口

📝 分析问题

Q: 分析结果显示"未能匹配到词牌名"?
A: 可能原因:

  • 输入文本的字数或分段与数据库中的词牌不匹配
  • 文本包含过多标点符号,影响字数统计
  • 建议先清理文本,只保留汉字内容

Q: 平仄标注显示很多"未知"?
A: 解决方法:

  • 可能使用了生僻字或异体字
  • 尝试切换不同韵书(词林正韵 ↔ 中华新韵)
  • 检查输入文本是否包含非汉字字符

Q: 韵脚识别不准确?
A: 优化建议:

  • 使用系统提供的多韵脚模式选择功能
  • 不同词牌可能有多种韵脚模式,选择最合适的
  • 参考词牌介绍中的格律说明

🛠️ 自定义配置

修改默认韵书
templates/index.html 中:

<option value="1">词林正韵</option>
<option value="2" selected>中华新韵</option>  <!-- 修改selected属性 -->

添加新词牌数据
编辑 data/cipai_with_statistics_qdcp.csv,按现有格式添加:

词牌名,作者,总数,分段字数,韵律
新词牌,作者名,字数,[分段],平仄格式

扩展韵书数据
编辑 data/词林正韵.jsondata/中华新韵.json,按JSON格式添加新韵部。

🚀 项目信息

版本历史

  • v2.0.0 (当前版本)
    • ✨ 新增词牌介绍自动爬取功能
    • ✨ 支持多韵脚模式选择
    • ✨ 优化Web界面和用户体验
    • ✨ 完善数据爬虫系统
  • v1.0.0
    • 🎯 基础词牌识别和平仄分析
    • 📚 双韵书支持
    • 🎨 Web界面初版

技术规格

  • 开发语言:Python 3.7+
  • Web框架:Flask 2.3.3
  • 前端技术:HTML5 + CSS3 + JavaScript ES6
  • 数据格式:JSON + CSV
  • 字体支持:霞鹜文楷

数据来源

  • 钦定词谱:权威格律数据库
  • 词林正韵:传统韵书系统
  • 中华新韵:现代韵书标准
  • 百度百科:词牌介绍数据

📄 开源协议

本项目采用 MIT License 开源协议。

🤝 贡献指南

欢迎参与项目改进!您可以:

  • 🐛 报告问题:发现Bug请提交Issue
  • 💡 功能建议:提出新功能想法
  • 🔧 代码贡献:提交Pull Request
  • 📚 文档完善:改进文档说明
  • 🎨 界面优化:提升用户体验

开发环境搭建

# Fork项目到自己的仓库
# 克隆Fork后的仓库
git clone https://github.com/your-username/chinese-poetry-analyzer.git

# 安装开发依赖
pip install -r requirements.txt

# 创建新分支进行开发
git checkout -b feature/your-feature-name

如有任何问题或建议,欢迎通过Issue与我们交流。

About

一个基于Flask的古诗词平仄分析Web应用,可以智能识别词牌名、分析平仄合规性并标注韵脚韵部。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors