diff --git a/src/workrb/tasks/__init__.py b/src/workrb/tasks/__init__.py index 7e1a35a..a68dd2e 100644 --- a/src/workrb/tasks/__init__.py +++ b/src/workrb/tasks/__init__.py @@ -11,7 +11,11 @@ from .ranking.job2skill import ESCOJob2SkillRanking from .ranking.jobnorm import JobBERTJobNormRanking from .ranking.skill2job import ESCOSkill2JobRanking -from .ranking.skill_extraction import HouseSkillExtractRanking, TechSkillExtractRanking +from .ranking.skill_extraction import ( + HouseSkillExtractRanking, + SkillSkapeExtractRanking, + TechSkillExtractRanking, +) from .ranking.skill_similarity import SkillMatch1kSkillSimilarityRanking from .ranking.skillnorm import ESCOSkillNormRanking @@ -31,5 +35,6 @@ "JobBERTJobNormRanking", "HouseSkillExtractRanking", "TechSkillExtractRanking", + "SkillSkapeExtractRanking", "SkillMatch1kSkillSimilarityRanking", ] diff --git a/src/workrb/tasks/ranking/__init__.py b/src/workrb/tasks/ranking/__init__.py index 4e0dc62..28ecd54 100644 --- a/src/workrb/tasks/ranking/__init__.py +++ b/src/workrb/tasks/ranking/__init__.py @@ -24,5 +24,6 @@ "HouseSkillExtractRanking", "JobBERTJobNormRanking", "SkillMatch1kSkillSimilarityRanking", + "SkillSkapeExtractRanking", "TechSkillExtractRanking", ] diff --git a/src/workrb/tasks/ranking/skill_extraction.py b/src/workrb/tasks/ranking/skill_extraction.py index e0fb9b1..543219a 100644 --- a/src/workrb/tasks/ranking/skill_extraction.py +++ b/src/workrb/tasks/ranking/skill_extraction.py @@ -6,7 +6,11 @@ from workrb.data.esco import ESCO from workrb.registry import register_task from workrb.tasks.abstract.base import DatasetSplit, LabelType, Language -from workrb.tasks.abstract.ranking_base import RankingDataset, RankingTask, RankingTaskGroup +from workrb.tasks.abstract.ranking_base import ( + RankingDataset, + RankingTask, + RankingTaskGroup, +) from workrb.types import ModelInputType @@ -201,3 +205,41 @@ def citation(self) -> str: year = {{2022}}, } """ + + +@register_task() +class SkillSkapeExtractRanking(BaseESCOSkillExtractRanking): + """Skill Extraction from SkillSkape Ranking Task.""" + + orig_esco_version = "1.1.0" + + def __init__(self, esco_version: str = "1.1.0", **kwargs): + self.esco_version = esco_version + super().__init__(hf_name="jjzha/skillskape", **kwargs) + + @property + def name(self) -> str: + """Skill extraction SkillSkape task name.""" + return "Skill Extraction SkillSkape" + + @property + def description(self) -> str: + """Skill extraction from SkillSkape task description.""" + return "Extract skills from text descriptions." + + @property + def citation(self) -> str: + """Skill extraction SkillSkape task citation.""" + return """@inproceedings{magron-etal-2024-jobskape, + title = {{JobSkape: A Framework for Generating Synthetic Job Postings to Enhance Skill Matching}}, + author = {{Magron, Antoine and Dai, Anna and Zhang, Mike and Montariol, Syrielle and Bosselut, Antoine}}, + editor = {{Hruschka, Estevam and Lake, Thom and Otani, Naoki and Mitchell, Tom}}, + booktitle = {{Proceedings of the First Workshop on Natural Language Processing for Human Resources (NLP4HR 2024)}}, + month = {{mar}}, + year = {{2024}}, + address = {{St. Julian's, Malta}}, + publisher = {{Association for Computational Linguistics}}, + url = {{https://aclanthology.org/2024.nlp4hr-1.4/}}, + pages = {{43--58}} +} +""" diff --git a/tests/test_task_loading.py b/tests/test_task_loading.py index 6f21066..fe5baac 100644 --- a/tests/test_task_loading.py +++ b/tests/test_task_loading.py @@ -13,6 +13,7 @@ HouseSkillExtractRanking, JobBERTJobNormRanking, SkillMatch1kSkillSimilarityRanking, + SkillSkapeExtractRanking, TechSkillExtractRanking, ) from workrb.tasks.abstract.base import DatasetSplit, Language, TaskType @@ -43,6 +44,7 @@ def test_ranking_tasks_init_en_splits(): ("JobNormRanking", JobBERTJobNormRanking), ("SkillExtractHouseRanking", HouseSkillExtractRanking), ("SkillExtractTechRanking", TechSkillExtractRanking), + ("SkillExtractSkillSkapeRanking", SkillSkapeExtractRanking), ("SkillSimilarityRanking", SkillMatch1kSkillSimilarityRanking), ]