# NLP FRONTEND **Repository Path**: maniacratt/nlp-frontend ## Basic Information - **Project Name**: NLP FRONTEND - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-23 - **Last Updated**: 2026-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # NLP 智能评分系统 基于自然语言处理的文本质量评估系统,支持多种评分模型。 ## 功能特点 ✨ **多模型支持** - 规则引擎模型:基于规则的快速评分 - NLP 深度学习模型:支持自定义深度学习模型 - 智能备用方案:自动降级到外部库实现 🎨 **高级简约设计** - 白蓝色系高级配色 - 流畅的交互动画 - 响应式布局设计 📊 **全面评估** - 文本长度评分 - 词汇丰富度分析 - 可读性评估 - 情感倾向分析 - 连贯性检测 🔍 **关键词云** - 智能关键词提取 - 情感分类标注 - 权重可视化 - 点击查看详情 📁 **多种输入方式** - 直接文本输入 - URL 网页抓取 - 文件上传(TXT/CSV) - 批量评分支持 ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 运行系统 ```bash python app.py ``` ### 3. 访问系统 打开浏览器访问:http://localhost:5000 ## 模型配置 ### 规则引擎模型(默认) 无需配置,开箱即用。 ### NLP 深度学习模型 #### 方案一:使用自定义模型 1. 将训练好的模型放入 `models/nlp_model/` 目录 2. 确保模型文件包含: - config.json - pytorch_model.bin - vocab.txt - tokenizer_config.json 3. 在界面上切换到"深度学习模型" #### 方案二:使用备用 NLP 实现(推荐) 如果没有自定义模型,系统会自动使用备用 NLP 实现。 **安装可选依赖以获得更好的效果:** ```bash # 安装 TextBlob(用于高级情感分析) pip install textblob # 安装 NLTK(用于高级分词) pip install nltk # 下载 NLTK 数据 python -c "import nltk; nltk.download('punkt')" ``` **备用 NLP 特点:** - ✅ 无需训练模型 - ✅ 自动使用 TextBlob 进行情感分析 - ✅ 自动使用 NLTK 进行分词 - ✅ 如果外部库未安装,自动降级到基础规则引擎 ## 模型切换 系统支持在运行时动态切换模型: 1. 点击页面顶部的模型选择按钮 2. 选择"规则引擎"或"深度学习模型" 3. 系统会自动切换并显示通知 **智能降级机制:** ``` 自定义 NLP 模型 ↓ (如果不存在) 备用 NLP 实现(TextBlob + NLTK) ↓ (如果库未安装) 基础规则引擎 ``` ## 批量评分 ### CSV 文件格式 支持包含以下列名的 CSV 文件: - Review / review - Summary / summary - content - text - description **示例:** ```csv Review,Rating "This is an excellent product!",5 "Not bad, but could be better.",3 "Terrible experience.",1 ``` ### 批量评分功能 - 📊 统计概览(总行数、成功/失败数、平均分等) - 📝 详细结果列表 - 📥 导出评分结果为 CSV - 🔍 展开/收起详情 ## API 接口 ### 文本评分 ```bash POST /api/score Content-Type: application/json { "text": "Your text here" } ``` ### URL 评分 ```bash POST /api/score_url Content-Type: application/json { "url": "https://example.com/article" } ``` ### 文件评分 ```bash POST /api/score_file Content-Type: multipart/form-data file: [CSV or TXT file] ``` ### 切换模型 ```bash POST /api/switch_model Content-Type: application/json { "model_type": "rule" | "nlp" } ``` ### 获取模型状态 ```bash GET /api/model_status ``` ## 评分维度 ### 1. 文本长度 (15%) - 评估文本的长度是否适中 - 过短或过长都会影响得分 ### 2. 词汇丰富度 (25%) - 计算独特词汇占比 - 词汇多样性越高,得分越高 ### 3. 可读性 (20%) - 评估平均词长和句长 - 符合阅读习惯的文本得分更高 ### 4. 情感倾向 (20%) - 分析文本的情感极性 - 正面情感得分更高 ### 5. 连贯性 (20%) - 评估句子长度的一致性 - 结构连贯的文本得分更高 ## 等级划分 - A+ : 90-100 分 - A : 85-89 分 - B+ : 80-84 分 - B : 75-79 分 - C+ : 70-74 分 - C : 65-69 分 - D : 0-64 分 ## 技术栈 ### 后端 - Flask:Web 框架 - BeautifulSoup:网页解析 - TextBlob:情感分析(可选) - NLTK:自然语言处理(可选) - Transformers:深度学习模型(可选) ### 前端 - 原生 JavaScript - CSS3 动画 - 响应式设计 ## 项目结构 ``` LSY/ ├── app.py # Flask 应用主文件 ├── model_interface.py # 模型接口层 ├── nlp_scorer.py # 规则引擎评分器 ├── nlp_fallback.py # 备用 NLP 实现 ├── models/ # 模型目录 │ ├── nlp_scorer.py # 深度学习模型评分器 │ ├── model_config.json # 模型配置 │ └── README.md # 模型文档 ├── static/ # 静态资源 │ ├── css/ │ │ └── style.css # 样式文件 │ └── js/ │ └── main.js # 前端逻辑 ├── templates/ # HTML 模板 │ └── index.html # 主页面 └── README.md # 本文件 ``` ## 常见问题 ### Q: 模型切换失败怎么办? A: 系统会自动恢复到之前的模型,不会影响使用。检查控制台日志查看详细错误信息。 ### Q: 如何提高评分准确性? A: 1. 安装 TextBlob 和 NLTK 库 2. 使用自定义训练的深度学习模型 3. 根据实际需求调整评分权重 ### Q: 支持中文吗? A: 目前主要针对英文优化,中文支持有限。可以通过训练中文 NLP 模型来改进。 ### Q: 批量评分有数量限制吗? A: 建议单次批量评分不超过 1000 条,以保证响应速度。 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request! ## 联系方式 如有问题,请通过 GitHub Issues 联系。