|
|
@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
# 2024巴黎奥运会视频弹幕分析挖掘
|
|
|
|
|
|
|
|
这个存储库包含了2024巴黎奥运会视频弹幕分析挖掘的代码,这是一种网络爬虫方法,用于从B站爬取相关视频弹幕,并将数据进行词云可视化分析,最终得到统计结论。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 背景
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024年第三十三届夏季奥林匹克运动会(2024 Summer Olympics),一般称为2024巴黎奥运会(Paris 2024),于2024年7月26日至8月11日在法国巴黎举行,此次为法国相隔100年后再次举办夏季奥运会。巴黎成为继英国伦敦后,第二个三度举办夏季奥运会的城市,前两次分别在1900年及1924年举办。最终,美国代表团以40枚金牌、126枚奖牌,坐拥奖牌榜首位;中国代表团以40枚金牌、91枚奖牌排名第二;东道主法国代表团则拿下16枚金牌、64枚奖牌位列第五。本届是现代夏季奥运会历史以来,第二次有多于一个国家的代表团(美国和中国),获得最多且同样数量的金牌。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024巴黎奥运会,这场体育盛宴不仅承载着运动员的汗水与梦想,更是工业数字化浪潮的壮阔展示。在这场跨越国界的竞技中,数字科技如同隐形的魔术师,悄然编织着赛事的每一个细节,从幕后到台前,从组织策划到观众体验,全方位塑造着奥运会的面貌,让我们见证了一个科技与体育深度融合的新时代。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 功能
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
该代码使用爬虫在B站爬取关键词为“2024巴黎奥运会”的综合排序前300的所有视频弹幕,并统计AI技术应用方面的每种弹幕数量,输出数量排名前8的弹幕,同时对采集的所有数据进行词云可视化分析,制作词云图,最后通过统计数据得出当前B站用户对于2024巴黎奥运会应用AI技术的主流看法。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **视频弹幕搜索**:从指定平台获取视频弹幕。
|
|
|
|
|
|
|
|
- **弹幕数据分析**:对获取的弹幕进行分析和计数。
|
|
|
|
|
|
|
|
- **可视化结果**:生成词云图以展示分析结果。
|
|
|
|
|
|
|
|
- **性能分析**:利用性能分析工具对代码性能进行评估。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 目录结构
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
102201539/
|
|
|
|
|
|
|
|
│
|
|
|
|
|
|
|
|
├── data/ # 存放数据文件的目录
|
|
|
|
|
|
|
|
│ ├── all_danmakus.xlsx # 综合排序前300的所有视频弹幕
|
|
|
|
|
|
|
|
│ ├── top_danmakus.xlsx # 与赛事应用AI相关的数量排名前8的弹幕
|
|
|
|
|
|
|
|
│ └── result.png # 词云图
|
|
|
|
|
|
|
|
│
|
|
|
|
|
|
|
|
├── tests/ # 存放测试代码的目录
|
|
|
|
|
|
|
|
│ ├── init.py # 将 tests 目录视为包
|
|
|
|
|
|
|
|
│ ├── test_main.py # 对 main.py 中功能的单元测试
|
|
|
|
|
|
|
|
│ ├── test_analyse.py # 对 analyse.py 中功能的单元测试
|
|
|
|
|
|
|
|
│ └── test_visualization.py # 对 visualization.py 中功能的单元测试
|
|
|
|
|
|
|
|
│
|
|
|
|
|
|
|
|
├── main.py # 主程序文件,包含程序的入口和主要逻辑
|
|
|
|
|
|
|
|
├── analyse.py # 分析模块,处理弹幕数据的功能
|
|
|
|
|
|
|
|
├── visualization.py # 可视化模块,用于生成图表和可视化结果
|
|
|
|
|
|
|
|
├── profiler.py # 性能分析模块,用于分析程序性能
|
|
|
|
|
|
|
|
├── china_map.png # 中国地图图像,用于制作词云图样式
|
|
|
|
|
|
|
|
├── README.md # 项目说明文档
|
|
|
|
|
|
|
|
├── requirements.txt # 项目依赖的 Python 包列表
|
|
|
|
|
|
|
|
└── .gitignore # Git 忽略文件
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 安装
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 克隆仓库:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
git clone https://code.educoder.net/p64wa3kxm/102201539.git
|
|
|
|
|
|
|
|
cd 102201539
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 2.创建虚拟环境:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
python -m venv venv
|
|
|
|
|
|
|
|
source venv/bin/activate # 在 Windows 上使用 venv\Scripts\activate
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 3.安装依赖:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
beautifulsoup4==4.12.3
|
|
|
|
|
|
|
|
jieba==0.42.1
|
|
|
|
|
|
|
|
matplotlib==3.8.0
|
|
|
|
|
|
|
|
numpy==1.18.1
|
|
|
|
|
|
|
|
pandas==2.2.2
|
|
|
|
|
|
|
|
pillow==10.4.0
|
|
|
|
|
|
|
|
requests==2.32.3
|
|
|
|
|
|
|
|
wordcloud==1.9.3
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
你可以使用:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
pip install -r requirements.txt
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 使用说明
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 1.获取视频弹幕(main.py)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
python main.py
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
输出结果:
|
|
|
|
|
|
|
|
综合排序前300的所有视频的弹幕数据被保存到 all_danmakus.xlsx 文件中。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 2.分析视频弹幕(analyse.py)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
python analyse.py
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
输出结果:
|
|
|
|
|
|
|
|
与赛事应用AI技术相关的排名前8的弹幕数据被保存到 top_danmakus.xlsx 文件中。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 3.可视化(visualization.py)
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
python test_visualization.py
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
输出结果:
|
|
|
|
|
|
|
|
词云图保存到 wordcloud.png,可以使用图像查看工具查看。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 性能分析
|
|
|
|
|
|
|
|
首先确保你已经安装了 snakeviz 模块,你可以使用:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
pip install snakeviz
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
使用 cProfile 运行性能分析模块,并生成性能分析文件output.prof:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
python -m cProfile -o output.prof profiler.py
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
可视化性能分析结果:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
snakeviz output.prof
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
最后你可以打开浏览器查看输出。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 单元测试
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
如果你只想运行测试而不关心覆盖率,你可以使用:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
python -m unittest discover -s tests
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
如果你希望运行测试并收集覆盖率信息,首先确保你已经安装了 coverage 模块,你可以使用:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
pip install coverage
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
运行测试并收集覆盖率:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
coverage run -m unittest discover -s tests
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
生成终端输出的覆盖率报告:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
coverage report
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
生成 HTML 格式的覆盖率报告:
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
coverage html
|
|
|
|
|
|
|
|
```
|