本文目录导读:

目前开源社区中并没有一个专门针对“门球短传配合成功率”的标准化统计工具或数据集,原因主要有以下几点:
为什么没有现成的开源方案?
- 门球是小众运动 — 相比足球、篮球,门球的公开赛事数据极少,缺乏类似 Opta、StatsBomb 那样的结构化数据源。
- “短传配合”定义不统一 — 多近算短传?几次连续传球算配合?不同教练/协会标准不同。
- 数据采集成本高 — 需要逐球标注传球起点、终点、是否成功、是否形成战术配合。
如果你想自己做,可以参考的思路
数据采集层
| 方式 | 工具 | 说明 |
|---|---|---|
| 手工标注 | Excel / Google Sheets | 最简单,适合业余队 |
| 视频标注 | Kinovea、LongoMatch(开源) | 逐帧标记传球事件 |
| 自动追踪 | YOLO + ByteTrack、DeepSORT | 需自训练门球检测模型 |
数据模型(建议字段)
event_id, match_id, team, player_from, player_to,
x_start, y_start, x_end, y_end,
pass_type(short/long), success(0/1),
next_action, sequence_id, timestamp
成功率计算
# 短传成功率
short_pass_success_rate = (
df[(df.pass_type=="short") & (df.success==1)].shape[0]
/ df[df.pass_type=="short"].shape[0]
)
# 短传配合成功率(连续≥2次短传且未丢失球权)
sequences = df.groupby("sequence_id")
combo_success = sequences.filter(
lambda g: (g.pass_type=="short").sum() >= 2 and g.success.all()
)
combo_rate = combo_success.sequence_id.nunique() / df.sequence_id.nunique()
可复用的开源项目
- socceraction(Python)— 足球传球价值框架,逻辑可迁移
- statsbombpy — 结构化事件数据读取范式
- mplsoccer — 传球网络/热图可视化
建议
如果你是想为自己的球队做统计,最快路径是:
用手机录比赛 → 2. 用 LongoMatch 标注传球事件 → 3. 导出 CSV → 4. 用 pandas 算成功率。
如果你愿意,我可以帮你:
- 写一个完整的 Python 脚本(输入标注 CSV → 输出短传配合成功率报告)
- 设计一个门球专用的标注模板
- 或者搭建一个开源统计小工具的仓库结构
你更想要哪种?