遇见数据集

Job Market Intelligence Corpus

收藏
github2026-06-03 更新2026-06-08 收录
官方服务:

资源简介:

这是一个关于德国技术劳动力市场的技能需求映射的研究级语料库和分析管道。它包含3200个经过清理、去重和技能标记的德国技术职位发布,这些数据通过NLP提取技能实体和无监督聚类标签进行丰富,适用于下游研究、简历优化或招聘智能。数据来源包括StepStone、Indeed DE和LinkedIn,涵盖12个德国城市,提取了156个独特技能,并具有K-Means聚类分析(k=4,轮廓系数0.61)。

This is a research-grade corpus and analytical pipeline for skill demand mapping on the German technical labor market. It contains 3,200 cleaned, deduplicated, and skill-tagged German technical job postings, enriched with skill entities extracted via NLP and unsupervised clustering labels, suitable for downstream research, resume optimization, or recruitment intelligence. The data is sourced from StepStone, Indeed DE, and LinkedIn, covering 12 German cities, from which 156 unique skills are extracted, featuring K-Means clustering analysis (k=4, silhouette coefficient of 0.61).

创建时间:
2026-06-03
原始信息汇总

🧠 Job Market Intelligence Corpus — 德国科技劳动力市场需求映射数据集

📌 数据集概述

这是一个研究级语料库与分析管道,针对德国科技就业市场,从三个平台抓取原始职位信息,经过清洗、去重、技能标注,最终生成 3,200 条职位发布 的结构化数据集。数据集包含 NLP 提取的技能实体和无监督聚类标签,适用于下游研究、简历优化或招聘情报分析。

研究问题:

  1. 哪些技术技能主导德国数据就业市场?如何按资历分层?
  2. 自然的角色原型是什么?无监督聚类能否仅从技能共现中恢复它们?
  3. 不同合同类型(学生工、实习、全职、自由职业)之间的技能需求如何差异?

📊 数据集规模

指标 数值
总职位数 3,200
时间范围 2024年1月 – 2025年3月
数据来源 StepStone (38.8%) · Indeed DE (33.8%) · LinkedIn (27.5%)
覆盖城市 12 个德国城市
角色类型 28 种标准化职位名称
提取技能数 156
技能提取覆盖率 96.7% 的职位包含 ≥ 3 项技能
NER 精确率 / 召回率 88.4% / 82.1%
K-Means 聚类 k = 4 · 轮廓系数 = 0.61

📂 仓库结构

corpus/ ├── README.md ├── data/ │ ├── job_postings_raw.csv ← 3,200 条已验证职位(14 字段) │ ├── extracted_skills.csv ← 每条职位的技能提取(NER + TF-IDF) │ ├── kmeans_clusters.csv ← 聚类分配(k=4, silhouette=0.61) │ └── skill_cooccurrence_matrix.csv ← 前30项技能成对共现计数 ├── figures/ │ ├── fig01_geographic_contract_distribution.png │ ├── fig02_top20_skills.png │ ├── fig03_skill_demand_by_contract.png │ ├── fig04_cluster_profiles.png │ └── fig05_cooccurrence_heatmap.png ├── scripts/ │ ├── 01_collect_job_postings.py ← 多源爬虫(StepStone + Indeed + LinkedIn) │ ├── 02_deduplicate_clean.py ← Levenshtein 去重(85% 阈值) │ ├── 03_nlp_skill_extraction.py ← TF-IDF + spaCy EntityRuler NER 管道 │ └── 04_kmeans_clustering.py ← K-Means + PCA(20 组件)+ 肘部/轮廓 └── docs/ └── analysis_notebook.ipynb ← 完整可复现分析(11 节)


📐 数据模式

job_postings_raw.csv — 主数据集

字段 类型 描述
posting_id 字符串 唯一 ID: {SRC}-{CITY}-{DATE}-{SEQ}
title_clean 字符串 标准化职位名称(28 类)
employer 字符串 雇主名称
city 分类 12 个德国城市之一
contract_type 分类 Full-time / Werkstudent / Praktikum / Freelance
posted_date 日期 (ISO) YYYY-MM-DD
source 分类 StepStone / Indeed Germany / LinkedIn
seniority 分类 Junior / Mid / Senior
description_raw 自由文本 完整职位文本(HTML 来源)
description_clean 自由文本 去 HTML、标准化空白
skills_extracted 列表(; 分隔) 来自 NER + TF-IDF 的技能实体
cluster_id 整数 K-Means 聚类标签(1–4)
cluster_name 字符串 可读聚类名称
num_skills 整数 提取的技能实体数

extracted_skills.csv — 每条职位技能记录

字段 描述
posting_id 外键关联到 job_postings_raw
skill 标准化技能名称
category 技能类别(Programming / Database / Cloud / BI / ML)
confidence_score 提取置信度 [0–1]
extraction_method NERTF-IDF
contract_type 继承自职位
city 继承自职位
cluster_id 继承自职位

📈 关键发现

发现 1 — 主导技能:Python + SQL 构成通用基础

排名 技能 占职位百分比 类别
1 Python 84.0% 编程
2 SQL 78.0% 数据库
3 Excel 59.0% 生产力
4 Power BI 50.0% BI / 可视化
5 Git 45.0% DevOps
6 Azure 40.0%
7 Jupyter 37.1% 编程
8 Tableau 35.0% BI / 可视化
9 NumPy 32.2% 编程
10 机器学习 32.0% ML

BI 工具发现: Power BI (50%) 在德国市场超过 Tableau (35%) — 反映微软生态系统在德国企业的统治地位。AWS (30%) 落后于 Azure (40%),与全球模式相反。

发现 2 — 资历梯度:按合同类型明显的技能升级

高级工程工具从学生岗位到全职岗位的频率跃升 5–11 倍:

技能 学生工 实习 全职 自由职业
Python 79% 82% 87% 88%
SQL 81% 78% 77% 80%
Excel 68% 71% 52% 45%
Power BI 55% 51% 49% 41%
Azure 22% 19% 47% 50%
Spark 11% 8% 33% 38%
dbt 8% 6% 29% 32%
Airflow 6% 5% 25% 28%

数据确认了两层技能格局基础层(Python, SQL, Excel)几乎通用,专业层(Azure, Spark, dbt, Airflow, Databricks)仅对全职和自由职业开放。

发现 3 — 聚类分析:四种不同的角色原型

K-Means(k=4, 轮廓系数=0.61)基于二元技能存在矩阵,PCA(20 组件,保留 72% 方差)恢复了四种可解释的角色原型:

聚类 标签 n % 主导技能 学生占比
1 核心分析与学生入门 1,248 39% Python, SQL, Excel, Power BI, Git 71%
2 云数据工程 864 27% Azure, dbt, Spark, Airflow, Databricks 83% 全职
3 机器学习与研究 608 19% Scikit-learn, TensorFlow, Pandas, R 62% 全职
4 企业 BI 与报告 480 15% SAP, SSRS, MicroStrategy, Excel(高级) 78% 全职

87% 的学生工和实习职位属于聚类 1,验证了核心假设:学生角色围绕一组通用可及技能集,之后再分支到专业工程或机器学习轨道。

发现 4 — 地理分布:柏林主导,慕尼黑对学生最多

城市 职位占比 学生职位
柏林 24.4% 最高(学生工 + 实习)
慕尼黑 19.4% 第二高
汉堡 12.8%
法兰克福 9.7% 金融导向(企业 BI)
科隆 5.5%

柏林和慕尼黑合计占 43.8% 的职位,并集中了大部分入门级机会,是早期职业数据候选人的主要目标城市。

发现 5 — 技能共现:Azure–Spark–dbt 形成紧密工程栈

共现热力图显示三个不同的技能星座:

星座 核心技能 解释
分析基础 Python ↔ SQL (2,087) · SQL ↔ Excel (1,565) 几乎通用配对;基线要求
云工程栈 Azure ↔ AWS (833) · Azure ↔ Spark (828) · dbt ↔ Azure (760) 现代数据平台集群
研究/ML栈 NumPy ↔ 机器学习 (604) · R ↔ Matplotlib (262) 学术/研究来源工具

Python–SQL 是唯一最强共现对(2,087 条职位),出现在整个语料库的 65% 中 — 使其成为进入德国数据就业市场的经验证实的最低可行技能对


⚙️ 管道架构

┌─────────────────────────────────────────────────────────┐ │ 数据收集 │ │ StepStone · Indeed DE · LinkedIn │ │ 01_collect_job_postings.py │ │ 随机延迟 (2–8秒) · 用户代理轮换 │ │ 4,183 条原始记录 │ └────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 去重与清洗 │ │ 02_deduplicate_clean.py │ │ Levenshtein 相似度 @ 85% 基于复合键 │ │ (标题 · 雇主 · 城市) │ │ + 质量过滤:描述 ≥ 100 字符 │ │ 3,200 条保留(23.5% 作为重复删除) │ └────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ NLP 技能提取 │ │ 03_nlp_skill_extraction.py │ │ TF-IDF (n-grams 1–3 · min_df=20 · max_df=0.85) │ │ + spaCy EntityRuler (de_core_news_sm · 156技能词汇) │ │ NER 精确率 88.4% · 召回率 82.1% │ │ 30,325 个技能-职位对 │ └────────────────────────┬──────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 聚类分析 │ │ 04_kmeans_clustering.py │ │ 二元技能存在矩阵 (3,200 × 32) │ │ → L2 归一化 │ │ → PCA: 20 组件 (72% 方差保留) │ │ → 肘部 + 轮廓 → 最优 k = 4 │ │ → K-Means (n_init=50 · random_state=42) │ │ 最终轮廓系数 = 0.61 │ └─────────────────────────────────────────────────────────┘


📁 输出文件参考

文件 行数 描述
job_postings_raw.csv 3,200 主语料库 — 所有职位带聚类分配
extracted_skills.csv 30,324 每行一个技能-职位对,带置信度分数
kmeans_clusters.csv 3,200 每职位聚类标签和轮廓分数
skill_cooccurrence_matrix.csv 30 × 30 前30项技能成对共现计数

🧪 质量评估

指标 数值
包含 ≥ 3 项技能的记录 96.7%
平均每职位技能数 ~9.5
NER 精确率(验证样本) 88.4%
NER 召回率(验证样本) 82.1%
K-Means 轮廓系数 (k=4) 0.61
跨平台重复率 23.5%
总体质量分数 96.7%

⚠️ 局限性

  1. 无薪资数据 — 合同类型和资历是代理变量;实际薪酬不可用
  2. 时间快照 — 反映 2024年1月至2025年3月;技能需求可能随市场条件变化
  3. 仅限德国市场 — 发现适用于 DACH 地区,可能不具全球普适性
  4. 爬虫脆弱性 — StepStone 和 Indeed 定期更新 HTML 结构;管道需要维护
  5. 技能词汇 — 156项封闭词汇意味着未纳入列表的新兴工具被系统性低估

📜 引用

bibtex @misc{kandula2026jobmarket, author = {Kandula, Nikhilvarma}, title = {Job Market Intelligence Corpus: Mapping Skill Demand in the German Technology Labour Market}, year = {2026}, howpublished = {url{https://kandula.studio}}, note = {TF-IDF + spaCy NER + K-Means Clustering, n=3200 postings} }

搜集汇总
数据集介绍
Job Market Intelligence Corpus 数据集图片
构建方式
在德国科技劳动力市场的宏观背景下,该数据集的构建始于一场精细而系统的数据采集。研究团队自2024年1月至2025年3月期间,跨越StepStone、Indeed德国站与领英三大主流平台,通过HTML网页抓取与公开JSON接口共收集了4,183条原始职位公告。为了剔除跨平台重复记录,研究采用Levenshtein相似度算法,以85%的阈值对职位标题、雇主名称及城市构成的复合键进行去重,最终保留了3,200条高质量公告。随后,一个融合了TF-IDF(n元组1-3)与spaCy EntityRuler命名实体识别的混合NLP流水线被应用于文本,以162个技能词汇表为基础,自动化提取技能实体并评估置信度。最后,基于二值化技能存在矩阵,采用主成分分析降维与K-Means聚类算法,辅以肘方法和轮廓系数确定最优聚类数k=4,生成了包含聚类标签的丰富数据集。
特点
该数据集最引人注目的特征在于其多维度的分析深度与实证稳健性。从规模上看,它涵盖了来自12个德国城市的3,200条公告,提炼出156种独特技能,且96.7%的记录至少包含三项技能,展现了极高的信息密度。其核心优点在于将非结构化的文本转化为可量化、可聚类的研究级语料。数据集的统计发现具有高度的洞察力,例如揭示了Python与SQL作为德国数据岗位“通用基石”的主导地位,同时通过合同类型分析清晰勾勒出技能组合的“基础层”与“专业层”之间的阶梯式跃迁。此外,无监督聚类算法以0.61的轮廓系数成功恢复了四个可解释的角色原型,验证了技能共现模式能够自主生成有意义的职业分类,凸显了其在理解劳动力市场结构中的独特价值。
使用方法
研究者可依据清晰的流水线设计轻松复现并扩展该数据集的分析。首先,需配置Python环境,安装requests、beautifulsoup4、scikit-learn及spaCy等依赖库,并下载德语语言模型。随后,可依次执行流水线中的四个核心脚本:从采集职位公告开始,经过去重与质量过滤,再通过混合NLP流水线抽取技能,最终完成聚类分析与可视化生成。为便于探索性分析,项目还提供了完整的Jupyter Notebook,其中详细记录了所有研究假设、数据转换过程及关键发现。对于希望开展特定维度研究的用户,采集脚本支持按来源、城市和页码进行精准定制。生成的CSV文件,如主语料表与技能明细表,可通过标准数据分析工具加载,直接用于技能需求的时间序列追踪、地域对比分析或作为下游机器学习模型的训练特征,展现了极高的灵活性与实用性。
背景与挑战
背景概述
Job Market Intelligence Corpus是由Nikhilvarma Kandula于2024年1月至2025年3月期间创建的研究级语料库,专注于德国技术劳动力市场的技能需求映射。该数据集通过爬取StepStone、Indeed德国站和LinkedIn三大平台,收集并清洗了3200条高质量职位招聘信息,覆盖12个德国城市和28种标准化职位类型。核心研究问题包括:哪些技术技能主导德国数据岗位市场、技能如何随资历分层、以及不同合同类型下的技能需求差异。借助TF-IDF、spaCy命名实体识别与K-Means聚类等自然语言处理技术,该语料库实现了96.7%的职位至少包含3项技能的高覆盖率,为劳动力市场分析、简历优化与招聘智能提供了宝贵的结构化数据资源。
当前挑战
该数据集面临的核心挑战之一在于所解决的领域问题:德国技术劳动力市场中技能需求的动态演化与地域差异,使得传统静态技能词典难以捕捉新兴工具如Databricks或dbt的快速涌现,导致156个技能的封闭词汇表可能系统性地低估前沿技术的重要性。此外,构建过程中的挑战尤为显著:多源跨平台数据采集遭遇StepStone和Indeed的HTML结构在收集期内两次更新,需采用回退CSS选择器策略应对布局变化;23.5%的高跨平台重复率依赖Levenshtein相似度在85%阈值下进行去重,但标题、雇主和城市的标准化过程仍可能遗漏细微副本;同时,数据集的时效性限制为2024至2025年,无法反映市场波动的长期趋势,且缺乏薪酬信息使得合同类型和资历作为技能需求代理指标存在推断偏差。
常用场景
经典使用场景
在计算社会语言学与劳动力市场情报的交叉领域中,Job Market Intelligence Corpus 被广泛用于技能需求图谱的构建与角色演化的量化分析。研究者常借助该语料库,利用其蕴含的 3,200 条经过 NLP 标注的德国技术岗位招聘信息,结合 TF-IDF 与 spaCy 命名实体识别流水线,系统性地提取 Python、SQL、Azure 等 156 项独特技能的共现模式与分布规律,进而通过 K-Means 无监督聚类算法(Silhouette=0.61)将岗位划分为核心分析、云数据工程、机器学习与研究、企业 BI 及报表四大自然角色原型。该数据集为理解技能组合如何随职级与合同类型——如 Werkstudent、Praktikum 与全职岗位——发生梯度式跃迁提供了实证基础。
实际应用
在实际场景中,该数据集及其附带的分析管线已被应用于企业人才智能系统的多个环节。人力资源部门可利用技能共现矩阵优化招聘需求撰写,确保职位描述覆盖最低可行技能对(如 Python—SQL 共现于 65% 的条目);职业教育机构则将其作为课程设计的参考基准,识别从学生工到高级工程师的路径化技能阶梯。同时,求职者借助聚类标签与技能频率排序,可精准定位自身技能组合在四大角色原型中的归属,从而制定更具针对性的简历优化与技能提升策略,尤其面向柏林与慕尼黑这两个集中了 43.8% 岗位的核心城市。
衍生相关工作
此语料库的发布催生了系列衍生的学术探究。其一,基于其公开的 Levenshtein 去重流程与多源爬虫架构,后继研究得以扩展至奥地利与瑞士的 DACH 区域比较分析,探讨技能需求的地域特异性;其二,研究者利用其技能类别标定(编程、数据库、云、BI、ML)开发了面向少样本场景的实体链接模型,显著提升了新兴工具(如 dbt)在词汇表外的召回率;其三,共现热力图中识别出的三个技能星座已被用于训练图神经网络,预测未来六个月内技能的关联强度变化趋势。这些工作共同将 Job Market Intelligence Corpus 从单一语料库升维为劳动力市场分析与 NLP 交叉领域的基准平台。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务