已成功为Excel智能分析系统添加了文本提取和分词功能,可以自动提取Excel文件中的所有文本内容,使用jieba进行中文分词,并将分析结果作为文件元数据保存。
- 从Excel文件的所有工作表中提取文本内容
- 支持多种Excel格式:
.xlsx、.xls、.xlsm - 自动跳过空值和无效数据
- 可配置最大读取行数
- 使用jieba库进行中文分词
- 内置88个常用停用词
- 支持自定义停用词
- 过滤单字符、纯数字和标点符号
- 基于TF-IDF算法提取关键词
- 支持按sheet分别提取关键词
- 可配置提取关键词数量
- 包含词频统计
- 自动将分析结果保存到文件元数据
- 支持按关键词搜索文件
- 持久化存储,服务器重启后数据不丢失
GET /api/text-analysis/{file_id}响应示例:
{
"success": true,
"file_id": "abc123",
"text_analysis": {
"total_texts": 100,
"total_words": 500,
"unique_word_count": 200,
"top_words": {
"数据": 15,
"分析": 12,
"Excel": 8
},
"keywords_by_sheet": {
"Sheet1": [["数据", 0.8], ["分析", 0.6]],
"Sheet2": [["产品", 0.7], ["销售", 0.5]]
}
}
}POST /api/search/keywords请求体:
{
"keywords": ["数据", "分析"],
"match_any": true
}响应示例:
{
"success": true,
"keywords": ["数据", "分析"],
"match_any": true,
"matching_files": [
{
"file_id": "abc123",
"file_info": {...},
"matched_keywords": ["数据", "分析"]
}
],
"total_matches": 1
}文本分析已集成到文件处理流程中:
- 文件上传 →
/api/upload - 文件处理 →
/api/process/{file_id}- 自动执行文本分析
- 将结果保存到元数据
- 查询分析结果 →
/api/text-analysis/{file_id} - 关键词搜索 →
/api/search/keywords
from backend.utils.file_manager import file_manager
# 为指定文件执行文本分析
success = file_manager.analyze_file_text(file_id, max_rows=1000)
# 获取分析结果
text_analysis = file_manager.get_text_analysis(file_id)-
TextProcessor类 (
backend/utils/text_processor.py)- 文本清理和预处理
- jieba分词集成
- 关键词提取
- Excel文件解析
-
FileManager扩展 (
backend/utils/file_manager.py)- 文本分析方法集成
- 元数据持久化
- 关键词搜索功能
-
API集成 (
backend/app.py)- 自动文本分析
- REST API端点
- 错误处理
jieba>=0.42.1- 中文分词pandas>=2.0.0- Excel文件处理openpyxl>=3.1.0- Excel文件读取
from backend.utils.text_processor import TextProcessor
# 使用自定义停用词
processor = TextProcessor(custom_stopwords={'的', '了', '在'})
# 添加停用词
processor.add_stopwords(['新词1', '新词2'])
# 移除停用词
processor.remove_stopwords(['不需要', '的词'])# 限制分析行数
file_manager.analyze_file_text(file_id, max_rows=1000)
# 关键词提取数量
keywords = processor.extract_keywords(text, top_k=20)运行测试脚本验证功能:
python tools/test_text_analysis.py测试内容包括:
- TextProcessor基本功能
- Excel文件处理
- FileManager集成
- API端点测试
- 大文件建议设置
max_rows参数限制分析行数 - jieba首次加载会有1-2秒初始化时间
- 文本分析结果缓存在元数据中,避免重复计算
- 支持异步处理,不会阻塞其他操作
上传财务Excel后,系统自动提取关键词:
- "收入"、"支出"、"利润"、"成本"等财务术语
- 按工作表分析不同财务项目
- 支持按财务关键词搜索相关文件
产品信息表格的文本分析:
- 提取产品名称、分类、特征关键词
- 分析产品描述中的高频词汇
- 基于产品特征进行文件分组
客户信息表的文本处理:
- 提取客户行业、地区、需求关键词
- 分析客户反馈和评价文本
- 支持按客户特征快速检索文件
- ✅ 创建TextProcessor文本处理器
- ✅ 实现Excel文本提取功能
- ✅ 集成jieba分词和停用词过滤
- ✅ 将分词结果保存为sheet元数据
- ✅ 创建API端点和测试工具
- ✅ 集成到文件处理流程
- ✅ 添加关键词搜索功能
系统现在具备了完整的Excel文本分析能力,可以智能提取和分析Excel文件中的文本内容,为后续的数据分析和查询提供更丰富的语义信息支持。