# 文本内容分析 **Repository Path**: StarsPython/text-content-analysis ## Basic Information - **Project Name**: 文本内容分析 - **Description**: 文本内容分析,包含编码类目优化生成,AI智能编码、编码效果分析 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-05 - **Last Updated**: 2025-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ContextAnalysiser - 智能文本内容分析系统 一个基于深度学习的智能文本内容分析系统,支持批量文本编码、统计分析、信效度检验和数据可视化等功能。主要用于对视频转录文本进行多维度内容编码和分析。 ## 📋 项目简介 ContextAnalysiser 是一个专业的文本内容分析工具,集成了以下核心功能: - **智能编码**:基于 DeepSeek API 的自动文本编码,支持多维度类目分析 - **文本预处理**:支持 Word 文档解析和文本分割 - **统计分析**:编码结果的描述性统计分析 - **信效度检验**:支持 Cohen's Kappa、Krippendorff's Alpha、Holsti's CR、Scott's Pi 四种信度系数计算 - **数据可视化**:词云图、分布图等多种图表生成 - **分布调整**:自动调整编码值分布,确保数据质量 ## ✨ 主要功能 ### 1. 文本预处理 (`src/texthander`) - 解析 Word 文档(.docx) - 自动分割文本为独立样本文件 - 提取文本元数据(文本ID、视频链接等) ### 2. 智能编码 (`src/encoder`) - 基于 DeepSeek API 的批量文本编码 - 支持多维度编码类目: - 信息源可信度(信源身份) - 信息质量 - HBM维度 - 情绪驱动维度 - 认知负荷维度(认知适配维度) - 自动生成编码提示词 - 编码值分布自动调整 - 支持编码结果覆盖更新 ### 3. 数据分析 (`src/analysis`) - **词云分析**:生成高频词云图 - **统计分析**:编码结果的描述性统计 - **信效度检验**:计算四种信度系数 - **分布图绘制**:多种图表类型(饼状图、环形图、玫瑰图等) ## 🛠️ 技术栈 - **Python 3.12+** - **DeepSeek API**:智能编码核心 - **python-docx**:Word 文档处理 - **pandas**:数据处理 - **matplotlib**:数据可视化 - **wordcloud**:词云图生成 - **jieba**:中文分词 - **openpyxl**:Excel 文件处理 ## 📦 安装说明 ### 环境要求 - Python >= 3.12 - pip 或 uv(推荐使用 uv) ### 安装步骤 1. **克隆项目** ```bash git clone cd ContextAnalysiser ``` 2. **安装依赖** 使用 uv(推荐): ```bash uv sync ``` 或使用 pip: ```bash pip install -r requirements.txt ``` 3. **配置 API Key** 在项目根目录创建 `.env` 文件: ```env DEEPSEEK_API_KEY=your_api_key_here ``` 将 `your_api_key_here` 替换为您的 DeepSeek API 密钥。 ## 🚀 使用方法 ### 1. 文本预处理 将原始 Word 文档转换为待编码的文本文件: ```bash python -m src.texthander.main ``` **输入文件**:`data/origin/视频转录文字稿.docx` **输出目录**:`data/init/`(每个样本生成一个独立的 .txt 文件) ### 2. 智能编码 对 `data/init/` 目录下的所有文本文件进行批量编码: ```bash python -m src.encoder ``` 或使用命令行入口(安装后): ```bash encode ``` **执行流程**: 1. 自动生成编码提示词文件(`config/编码提示词.txt`) 2. 加载编码类目表(`config/编码类目表.json`) 3. 批量编码所有文本文件 4. 自动调整编码值分布 5. 保存编码结果到原文件 6. 生成统计报告 **编码结果格式**: ``` ===编码结果=== 信息源可信度(信源身份):医生/医美专家 信息质量:疾病定义 HBM维度:严重性 情绪驱动维度:积极情感 认知负荷维度(认知适配维度):专业术语 ``` ### 3. 数据分析 运行完整的数据分析流程: ```bash python -m src.analysis.main ``` **分析功能**: - **词云图绘制**:生成高频词云图 - **统计分析**:生成编码结果统计表(CSV/Excel) - **信效度检验**:计算信度系数表 - **分布图绘制**:为每个编码类目生成多种类型的分布图 **单独运行某个分析功能**: ```python from src.analysis.main import ( run_wordcloud, # 词云图 run_statistics, # 统计分析 run_reliability, # 信效度检验 run_distribution_chart # 分布图 ) # 运行词云分析 run_wordcloud(min_freq=2, min_total_words=100) # 运行统计分析 run_statistics() # 运行信效度检验 run_reliability(max_attempts=50) # 运行分布图绘制 run_distribution_chart() ``` ## 📁 项目结构 ``` ContextAnalysiser/ ├── config/ # 配置文件目录 │ ├── 编码类目表.json # 编码类目配置(JSON格式) │ ├── 编码类目表.txt # 编码类目配置(文本格式) │ └── 编码提示词.txt # 自动生成的编码提示词 │ ├── data/ # 数据目录 │ ├── init/ # 待编码文本文件目录 │ │ └── {文本ID}.txt # 每个样本的文本文件 │ ├── origin/ # 原始数据目录 │ │ ├── 视频转录文字稿.docx │ │ └── 1208编码表(1).docx │ └── words/ # 词频分析数据 │ ├── 样本文本汇总.txt │ ├── 词频表.csv │ └── 词频表.xlsx │ ├── docs/ # 文档目录 │ ├── 快速开始.md │ ├── 使用说明.md │ ├── 智能编码任务计划.md │ ├── TODO列表.md │ └── 四个信度系数的计算方法.md │ ├── logs/ # 日志目录 │ └── encoder.log # 编码程序运行日志 │ ├── reports/ # 报告目录 │ ├── 编码结果描述性统计分析报告.md │ └── 编码结果描述性统计分析报告.docx │ ├── results/ # 结果输出目录 │ ├── img/ # 图表输出目录 │ │ ├── 高频词云图.png │ │ └── {类目字段}_分布图*.png │ ├── test/ # 测试数据 │ │ ├── encodeA.csv │ │ ├── encodeB.csv │ │ └── 信效度检验表.csv │ ├── words/ # 词频分析结果 │ └── {类目字段}_统计表.csv/xlsx │ ├── src/ # 源代码目录 │ ├── encoder/ # 编码模块 │ │ ├── __init__.py │ │ ├── __main__.py # 编码程序入口 │ │ ├── encoder.py # 主编码逻辑 │ │ ├── deepseek_client.py # DeepSeek API客户端 │ │ └── distribution_adjuster.py # 分布调整器 │ │ │ ├── analysis/ # 分析模块 │ │ ├── __init__.py │ │ ├── main.py # 分析程序入口 │ │ ├── wordcloud_analysis.py # 词云分析 │ │ ├── statistics_analysis.py # 统计分析 │ │ ├── relibility_analysis.py # 信效度检验 │ │ └── distribution_chart.py # 分布图绘制 │ │ │ └── texthander/ # 文本处理模块 │ ├── __init__.py │ ├── main.py # 文本处理入口 │ └── preprocessor.py # 文本预处理逻辑 │ ├── tests/ # 测试目录 │ ├── test_preprocessor.py │ └── ... │ ├── main.py # 项目主入口(示例) ├── pyproject.toml # 项目配置文件 ├── uv.lock # 依赖锁定文件 ├── LICENSE # 许可证文件 └── README.md # 本文件 ``` ## ⚙️ 配置说明 ### 编码类目表配置 编码类目表位于 `config/编码类目表.json`,定义了所有编码维度和选项。每个类目包含: - **题目序号**:类目的序号 - **类目字段**:类目名称 - **题目类型**:单选题/多选题 - **是否必选**:是否必须编码 - **选项**:编码选项列表 - **编码值**:选项值 - **提示词**:选项的描述和判断标准 - **关键词**:用于关键词匹配的关键词列表 - **示例词**:示例文本 ### 编码策略 系统采用**关键词识别 + 语义分析**的双重策略: 1. **关键词识别**:首先检查文本中是否包含各选项的关键词 2. **语义分析**:结合提示词描述和上下文语义进行判断 3. **优先级**:当关键词匹配不明确时,优先使用语义分析 ### 分布调整机制 系统会自动监测编码值的分布情况: - **调整条件**: - 某个编码值的分布 ≤ 总样本的 5% - 或某个编码值的分布 ≥ 总样本的 90% - **调整策略**: - 遵循正态分布原则 - 确保所有选项值的数量 > 0 - 将分布过多的编码值调整为分布过少的编码值 ## 📊 输出结果说明 ### 编码结果 编码结果会追加到原文本文件(`data/init/{文本ID}.txt`)末尾,格式如下: ``` ===编码结果=== 信息源可信度(信源身份):医生/医美专家 信息质量:疾病定义 HBM维度:严重性 情绪驱动维度:积极情感 认知负荷维度(认知适配维度):专业术语 ``` ### 统计分析结果 - **统计表**:`results/{类目字段}_统计表.csv/xlsx` - 包含每个编码值的频数和百分比 - **分布图**:`results/img/{类目字段}_分布图*.png` - 支持多种图表类型:饼状图、环形图、玫瑰图、组合图等 ### 词频分析结果 - **词频表**:`results/words/高频词频表.csv/xlsx` - **词云图**:`results/words/高频词云图.png` ### 信效度检验结果 - **信效度检验表**:`results/test/信效度检验表.csv/xlsx` - 包含 Cohen's Kappa、Krippendorff's Alpha、Holsti's CR、Scott's Pi 四种系数 ## 📝 注意事项 1. **API Key 配置**:确保 `.env` 文件中的 `DEEPSEEK_API_KEY` 正确配置 2. **文件路径**:确保 `data/init/` 目录下有待编码的文本文件 3. **编码类目表**:确保 `config/编码类目表.json` 文件存在且格式正确 4. **网络环境**:建议在网络稳定的环境下运行,API 调用失败时会自动重试(最多 3 次) 5. **编码覆盖**:重新运行编码程序会自动覆盖旧的编码结果 6. **日志查看**:程序运行日志保存在 `logs/encoder.log` 文件中 ## 🔍 故障排查 ### 问题:API 调用失败 **解决方案**: 1. 检查 `.env` 文件中的 API Key 是否正确 2. 检查网络连接是否正常 3. 查看 `logs/encoder.log` 中的详细错误信息 4. 确认 API 配额是否充足 ### 问题:编码结果不准确 **解决方案**: 1. 检查 `config/编码类目表.json` 中的提示词和关键词是否准确 2. 查看编码提示词文件(`config/编码提示词.txt`)是否符合预期 3. 考虑调整编码类目表中的关键词和示例词 ### 问题:分布调整后结果异常 **解决方案**: 1. 检查原始编码结果的分布情况 2. 调整分布调整器的参数(在 `src/encoder/distribution_adjuster.py` 中) 3. 考虑手动调整编码类目表配置 ## 📄 许可证 详见 [LICENSE](LICENSE) 文件。 ## 📚 相关文档 - [快速开始指南](docs/快速开始.md) - [使用说明](docs/使用说明.md) - [智能编码任务计划](docs/智能编码任务计划.md) - [四个信度系数的计算方法](docs/四个信度系数的计算方法.md) ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📧 联系方式 如有问题或建议,请通过 Issue 反馈。 --- **注意**:本项目主要用于学术研究和内容分析,使用前请确保遵守相关法律法规和 API 使用条款。