遇见数据集

KSE-RESEARCH-Group/Work_UA_resumes

收藏
Hugging Face2026-03-15 更新2026-03-29 收录
官方服务:

资源简介:

--- license: cc-by-nc-4.0 language: - uk tags: - resumes - nlp - ukrainian - job-market - information-extraction - named-entity-recognition - structured-data size_categories: - 100K<n<1M --- # WorkUA Resumes Dataset ## Dataset Summary This dataset contains **103,895 structured resume entries** collected from publicly available candidate profiles on [Work.ua](https://www.work.ua/resumes/), Ukraine's largest job platform. Resumes were scraped, parsed, cleaned, and deduplicated for research use. **Scraping window**: July 9 – August 22, 2025. **Intended use:** - Resume parsing and information extraction - Ukrainian-language NLP pipelines - Vacancy–candidate matching - Labor market and salary analysis - Career recommendation systems - Text classification and semantic search > **Privacy**: All direct personal identifiers have been removed — candidate full name, profile URL, and contact details are not present. Only the numeric resume `id` is retained for cross-referencing purposes. --- ## Processing Pipeline Resumes were scraped as HTML, converted to Markdown, then structured fields were extracted in three batches: | Batch | Resumes | Method | Description | |---|---|---|---| | Standard | 84,245 | Regex | Well-structured resumes with a consistent HTML layout. Fields like `work_experiences`, `educations`, `skills`, `languages`, etc. were extracted directly via regular expressions from the page DOM. | | File-based | 14,397 | Gemini 2.5 Flash | Resumes uploaded by candidates as files (PDF, DOC, etc.). Work.ua renders a degraded text preview of these; the DOM-based regex approach was not viable. The full Markdown content was sent to Gemini with a strict JSON schema prompt (`temperature=0`) to extract all structured fields. | | Extended | 5,253 | Gemini 2.5 Flash | Standard resumes where structured fields (`educations`, `work_experiences`, `skills`, `languages`, `driver_license`, etc.) were absent from the DOM but present inside the free-text `additional_info` blob. Gemini was used to parse these out and populate the same schema. | After concatenation and deduplication: **103,895 unique resumes**. --- ## File **`resumes.ndjson`** — Newline-delimited JSON, 103,895 rows, 18 columns. ### Schema ``` id String — Numeric resume ID from Work.ua title String — Job title the candidate is seeking age Int64 — Candidate age (27% null) city String — Candidate's city desired_salary Int64 — Monthly salary expectation in UAH (15% null) employment_type String — e.g. "повна", "неповна" (47% null, inconsistently filled) work_location_preference String — e.g. "Дистанційно", "Офіс" (71% null, inconsistently filled) driver_license Boolean — Whether a driver's license is mentioned creation_date String — Date the resume was scraped (YYYY-MM-DD) other_resumes List[Struct] — Other resumes of the same candidate: {title, resume_id} veteran Boolean — Self-reported veteran status disability String — Disability group: "Перша/Друга/Третя група" or null work_experiences List[Struct] — {position, start_date, end_date, company, city, industry, responsibilities} languages List[Struct] — {language, level} skills List[String] — Free-text skill tags educations List[Struct] — {institution, faculty, city, level, start_year, end_year} additional_educations List[Struct] — Courses and certifications: {institution, start_year, end_year} additional_info String — Free-text remainder that did not fit structured fields (61% null) ``` --- ## Data Example ```json { "id": "14656003", "title": "Розробник WordPress", "age": 24, "city": "Київ", "desired_salary": 37000, "employment_type": null, "work_location_preference": "Дистанційно", "driver_license": false, "creation_date": "2025-08-17", "other_resumes": [], "veteran": false, "disability": null, "work_experiences": [ { "position": "Middle WordPress / Full-Stack Developer", "start_date": "2022-01-01", "end_date": "2025-01-01", "company": "CullyCully Studio", "city": "Швейцарія", "industry": null, "responsibilities": "Розробка комерційних сайтів та корпоративних сторінок..." } ], "languages": [ {"language": "Українська", "level": "рідна"}, {"language": "Англійська", "level": "середній"} ], "skills": ["WordPress", "WooCommerce", "PHP", "JavaScript"], "educations": [], "additional_educations": [], "additional_info": null } ``` --- ## Known Limitations | Issue | Detail | |---|---| | **High null rates in preference fields** | `work_location_preference` (71% null) and `employment_type` (47% null) were inconsistently filled by candidates — do not treat null as "not specified" | | **Self-reported salary** | Extreme values (e.g. 1 UAH, 400,000 UAH) are likely data entry errors; filter before use | | **Age anomalies** | Max reported age of 125 — filter to a reasonable range before use | | **Inconsistent date formats** | `work_experiences.start_date` / `end_date` vary: `"2022-01"`, `"2022-01-01"`, `"Present"`, `null` | | **Non-standardized free-text fields** | `employment_type`, `languages.level`, and `skills` are raw free-text with no normalization | | **Extraction quality split** | ~81% regex (deterministic), ~14% Gemini for file resumes, ~5% Gemini for additional info extraction — the LLM-extracted portion may have subtle inconsistencies | | **`skills` noise** | Mix of technical skills, soft skills, and personal traits with no taxonomy applied | | **Wartime context** | 43.7% of candidates self-reported veteran status — data reflects the Ukrainian labor market during the active war period (July–August 2025) | --- ## Ethical Considerations - All resumes were scraped from **publicly accessible** pages on Work.ua - **No contact information** (phone, email, address) is included - **Candidate full names and profile URLs** were removed prior to publication - **Recommenders' names** have been removed; the `recommendations` field is not included - Do not attempt to re-identify individuals from this data - Fields like `veteran` and `disability` reflect sensitive self-disclosed information and must be handled with care --- ## Language Primarily **Ukrainian** (`uk`). A minority of entries contain mixed Ukrainian/English text. No language filtering has been applied. --- ## License [Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/) Free to use for non-commercial research with attribution. --- ## Acknowledgments - Data source: [Work.ua](https://www.work.ua/) - AI extraction: Google Gemini 2.5 Flash - Processing: [Polars](https://pola.rs/)

--- 许可协议:知识共享署名-非商业性使用4.0国际许可协议(CC BY-NC 4.0) 语言: - 乌克兰语(uk) 标签: - 简历 - 自然语言处理(Natural Language Processing,NLP) - 乌克兰语 - 劳动力市场 - 信息抽取(Information Extraction,IE) - 命名实体识别(Named Entity Recognition,NER) - 结构化数据 数据规模: - 10万至100万条 --- # WorkUA简历数据集 ## 数据集概述 本数据集包含103895条结构化简历条目,采集自乌克兰最大求职平台[Work.ua](https://www.work.ua/resumes/)上的公开候选人简历档案。所有简历均经过爬取、解析、清洗与去重处理,仅供研究使用。 **爬取时间窗口**:2025年7月9日至8月22日。 **适用场景**: - 简历解析与信息抽取 - 乌克兰语自然语言处理(NLP)流水线 - 职位-候选人匹配 - 劳动力市场与薪资分析 - 职业推荐系统 - 文本分类与语义搜索 > **隐私保护**:所有直接个人标识均已移除,未保留候选人全名、档案链接与联系方式,仅保留简历数字`id`用于交叉引用。 --- ## 处理流程 简历首先以HTML格式爬取,随后转换为Markdown格式,结构化字段通过三批次流程提取: | 批次 | 简历数量 | 提取方法 | 描述 | |---|---|---|---| | 标准批次 | 84245 | 正则表达式 | 针对HTML布局规范的结构化简历,直接通过正则表达式从页面文档对象模型(Document Object Model,DOM)中提取`work_experiences`(工作经历)、`educations`(教育经历)、`skills`(技能)、`languages`(语言能力)等字段。 | | 文件批次 | 14397 | Gemini 2.5 Flash | 针对候选人以文件(PDF、DOC等格式)上传的简历,Work.ua仅会渲染质量较低的文本预览,无法使用基于DOM的正则表达式方法。将完整Markdown内容发送至Gemini,并配合严格的JSON Schema提示词(`temperature=0`)以提取所有结构化字段。 | | 扩展批次 | 5253 | Gemini 2.5 Flash | 针对标准简历中,DOM中未包含结构化字段(`educations`、`work_experiences`、`skills`、`languages`、`driver_license`(驾照资质)等)但存在于自由文本`additional_info`(附加信息)字段中的情况,使用Gemini解析出对应字段并填入统一Schema。 | 合并并去重后,最终得到103895条唯一简历。 --- ## 数据文件 **`resumes.ndjson`** — 换行分隔JSON格式,共103895行,18个字段。 ### 字段结构 id 字符串类型 — 源自Work.ua的数字简历ID title 字符串类型 — 候选人求职的职位名称 age Int64类型 — 候选人年龄(27%字段为空) city 字符串类型 — 候选人所在城市 desired_salary Int64类型 — 候选人期望月薪,单位为乌克兰赫里夫纳(UAH,15%字段为空) employment_type 字符串类型 — 例如“повна”(全职)、“неповна”(兼职)(47%字段为空,填写不统一) work_location_preference 字符串类型 — 例如“Дистанційно”(远程办公)、“Офіс”(办公室办公)(71%字段为空,填写不统一) driver_license 布尔类型 — 是否提及驾照资质 creation_date 字符串类型 — 简历爬取日期(格式为YYYY-MM-DD) other_resumes 结构化列表类型 — 候选人的其他简历:包含`title`(职位名称)和`resume_id`(简历ID) veteran 布尔类型 — 候选人自述的退伍军人身份 disability 字符串类型 — 残疾等级:“Перша/Друга/Третя група”(一/二/三级残疾)或为空 work_experiences 结构化列表类型 — 包含`position`(职位名称)、`start_date`(入职日期)、`end_date`(离职日期)、`company`(供职公司)、`city`(工作城市)、`industry`(所属行业)、`responsibilities`(工作职责) languages 结构化列表类型 — 包含`language`(语言名称)、`level`(语言水平) skills 字符串列表类型 — 自由文本技能标签 educations 结构化列表类型 — 包含`institution`(院校名称)、`faculty`(院系)、`city`(院校所在城市)、`level`(学历层次)、`start_year`(入学年份)、`end_year`(毕业年份) additional_educations 结构化列表类型 — 课程与认证信息:包含`institution`(机构名称)、`start_year`(开始年份)、`end_year`(结束年份) additional_info 字符串类型 — 未归入结构化字段的自由文本剩余内容(61%字段为空) --- ## 数据示例 json { "id": "14656003", "title": "Розробник WordPress", "age": 24, "city": "Київ", "desired_salary": 37000, "employment_type": null, "work_location_preference": "Дистанційно", "driver_license": false, "creation_date": "2025-08-17", "other_resumes": [], "veteran": false, "disability": null, "work_experiences": [ { "position": "Middle WordPress / Full-Stack Developer", "start_date": "2022-01-01", "end_date": "2025-01-01", "company": "CullyCully Studio", "city": "Швейцарія", "industry": null, "responsibilities": "Розробка комерційних сайтів та корпоративних сторінок..." } ], "languages": [ {"language": "Українська", "level": "рідна"}, {"language": "Англійська", "level": "середній"} ], "skills": ["WordPress", "WooCommerce", "PHP", "JavaScript"], "educations": [], "additional_educations": [], "additional_info": null } --- ## 已知局限性 | 问题类型 | 详情说明 | |---|---| | **偏好字段空值率高** | `work_location_preference`(71%为空)与`employment_type`(47%为空)由候选人自行填写,填写格式不统一,请勿将空值视为“未指定”。 | | **自报薪资存在误差** | 存在极端值(例如1赫里夫纳、400000赫里夫纳),可能为录入错误,使用前需进行过滤。 | | **年龄异常** | 报告的最大年龄为125岁,使用前需过滤至合理范围。 | | **日期格式不统一** | `work_experiences.start_date`/`end_date`存在多种格式:`"2022-01"`、`"2022-01-01"`、`"Present"`(在职)或为空。 | | **自由文本字段未标准化** | `employment_type`、`languages.level`(语言水平)与`skills`(技能)均为原始自由文本,未进行归一化处理。 | | **提取质量分层** | 约81%的字段通过正则表达式(确定性方法)提取,约14%的字段通过Gemini处理文件类简历,约5%的字段通过Gemini处理附加信息提取,大语言模型(LLM)提取的部分可能存在细微不一致。 | | **技能字段存在噪声** | 混合了技术技能、软技能与个人特质,未应用分类体系。 | | **战争背景数据** | 43.7%的候选人自述为退伍军人身份,数据反映了2025年7-8月乌克兰战时的劳动力市场状况。 | --- ## 伦理考量 - 所有简历均爬取自Work.ua上的**公开可访问**页面。 - 未包含任何联系方式(电话、邮箱、地址)。 - 发布前已移除候选人全名与档案链接。 - 推荐人姓名已移除,且未包含`recommendations`(推荐信息)字段。 - 请勿尝试通过本数据集重新识别个人身份。 - `veteran`(退伍军人身份)与`disability`(残疾等级)等字段包含敏感的自我披露信息,需谨慎处理。 --- ## 语言 主要为**乌克兰语**(`uk`),少量条目包含乌克兰语与英语混合文本,未进行语言过滤。 --- ## 许可协议 [知识共享署名-非商业性使用4.0国际许可协议(Creative Commons Attribution-NonCommercial 4.0 International,CC BY-NC 4.0)](https://creativecommons.org/licenses/by-nc/4.0/) 可免费用于非商业性研究,需注明来源。 --- ## 致谢 - 数据来源:[Work.ua](https://www.work.ua/) - AI提取工具:Google Gemini 2.5 Flash - 数据处理工具:[Polars](https://pola.rs/)

提供机构:
KSE-RESEARCH-Group
二维码
社区交流群
二维码
科研交流群
商业服务