Files
guba2vec/README.md
T
zzy5111398 0098977172 完成股吧数据分析项目:
1. 修复词云断句问题 - 添加英文单词过滤
2. 创建 Word2Vec + CNN 情绪感知模型
3. 创建情绪时间序列分析脚本(基于大连理工大学情感词典)
4. 添加停用词文件(1427个中英文停用词)
5. 更新 analyze.py 保存时间字段 post_publish_time
6. 更新 requirements.txt 添加必要依赖
2026-05-28 15:30:16 +08:00

4.3 KiB
Raw Blame History

股吧数据爬取与情感分析系统

基于东方财富网股吧数据的爬虫系统,支持数据爬取、情感分析和关键词挖掘。

功能特性

  • 🕷️ 股吧数据爬取 - 自动爬取指定股票的股吧帖子
  • 😊 情感分析 - 基于大连理工大学情感词汇本体进行情绪计算
  • 🔍 关键词挖掘 - 使用TF-IDF算法提取热门话题
  • 📊 可视化输出 - 生成词云、情绪分布图等可视化图表

项目结构

guba2vec/
├── spider.py              # 股吧数据爬虫
├── sentiment_analysis.py  # 情感分析模块
├── analyze.py             # TF-IDF关键词分析
├── requirements.txt       # 依赖列表
├── 大连理工大学中文情感词汇本体.xlsx  # 情感词典
└── data/                  # 爬取数据存储目录
    └── guba_*.json/xlsx

安装依赖

pip install -r requirements.txt

使用方法

1. 爬取股吧数据

python spider.py

默认爬取以下游戏行业股票:

  • 完美世界 (002624)
  • 三七互娱 (002555)
  • 巨人网络 (002558)
  • 世纪华通 (002602)
  • 昆仑万维 (300418)
  • 游族网络 (002174)
  • 掌趣科技 (300315)
  • 吉比特 (603444)

爬取结果保存在 data/ 目录下,包含 JSON 和 Excel 两种格式。

2. 情感分析

python sentiment_analysis.py

基于大连理工大学中文情感词汇本体进行情绪分析,支持7种情绪类型:

  • 正面情绪:快乐、好评、惊讶
  • 负面情绪:愤怒、悲伤、恐惧、厌恶

分析结果保存在 sentiment_output/ 目录,包含:

  • 各股票详细情感数据(CSV
  • 情绪统计汇总(CSV
  • 可视化图表(PNG

3. 关键词分析

python analyze.py

使用TF-IDF算法提取关键词并生成词云,结果保存在 output/ 目录。

核心模块说明

spider.py

主要函数:

  • fetch_guba_data(code, page, page_size, sort_type) - 爬取单页数据
  • fetch_stock_posts(code, name, pages, page_size) - 爬取多页数据
  • save_to_json(data, name, filename) - 保存为JSON格式
  • save_to_excel(data, name, filename) - 保存为Excel格式

sentiment_analysis.py

主要函数:

  • build_sentiment_dictionary() - 构建情感词典
  • emotion_caculate(text, sentiment_dict) - 计算文本情绪
  • load_and_analyze_data(data_dir, output_dir) - 批量分析数据
  • generate_visualizations() - 生成可视化图表

analyze.py

主要函数:

  • clean_text(text) - 文本清洗
  • tokenize(text) - 中文分词
  • calculate_tfidf(texts) - 计算TF-IDF
  • get_top_keywords() - 获取Top关键词
  • generate_wordcloud() - 生成词云

情感词典

使用 大连理工大学中文情感词汇本体(需自行准备),包含:

  • 27469个情感词汇
  • 7种情感分类
  • 3种强度等级
  • 2种极性(正面/负面)

备用方案:内置简化版情感词典,包含约200个常用情感词。

数据格式

爬取数据 (JSON)

{
  "stock_code": "002624",
  "stock_name": "完美世界",
  "total_pages": 10,
  "total_posts": 200,
  "crawl_time": "2024-01-01T12:00:00",
  "posts": [
    {
      "post_id": "123456",
      "post_title": "标题",
      "post_content": "内容",
      "post_user": {"user_nickname": "用户名"},
      "post_publish_time": "2024-01-01 10:00",
      "post_click_count": 100,
      "post_comment_count": 10,
      "post_like_count": 5
    }
  ]
}

情感分析结果 (CSV)

帖子ID 标题 内容 positive negative sentiment_score
123456 ... ... 5 2 3

注意事项

  1. 爬虫使用模拟移动端请求,请合理控制爬取频率
  2. 情感词典文件需放置在项目根目录
  3. 首次运行可能需要下载jieba分词字典
  4. 生成词云需要系统安装中文字体(默认使用SimHei)

依赖列表

版本 用途
requests >=2.28.0 HTTP请求
pandas >=2.0.0 数据处理
openpyxl >=3.1.0 Excel读写
jieba >=0.42.1 中文分词
scikit-learn >=1.3.0 TF-IDF计算
numpy >=1.24.0 数值计算
matplotlib >=3.7.0 可视化
wordcloud >=1.9.0 词云生成

License

MIT License