five

codeai-dteam/oop

收藏
Hugging Face2025-10-02 更新2024-07-22 收录
下载链接:
https://hf-mirror.com/datasets/codeai-dteam/oop
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集名为Object-Oriented Programming,主要用于评估大型语言模型在面向对象编程任务中的表现。数据集包含431个实例,分为三个难度级别:简单、中等和困难。所有问题均使用Python编写,并在注释和文档字符串中包含英文自然文本。数据集结构包括任务ID、问题描述、规范解决方案、测试列表、测试函数、入口点、测试匹配和测试匹配函数等字段。数据集仅包含测试集,共431个样本。

The Object-Oriented Programming dataset consists of 431 instances categorized into three difficulty levels: Simple-level, Moderate-level, and Difficult-level OOP. It is designed to evaluate the performance of large language models in object-oriented programming tasks. The tasks are written in Python and involve English natural text in comments and docstrings. The dataset structure is presented in a DatasetDict format with specific features such as task_id, question, canonical_solution, test_list, test_function, entry_point, test_matching, and test_match_function. The dataset only has a test split with 431 samples.
提供机构:
codeai-dteam
原始信息汇总

数据集卡片:面向对象编程

数据集描述

数据集概述

  • 数据集名称: OOP benchmark
  • 数据量: 431个实例
  • 难度级别: 简单、中等、困难三个级别
  • 语言: Python

支持的任务和排行榜

  • 无具体描述

数据集结构

python from datasets import load_dataset load_dataset("oop")

DatasetDict({ test: Dataset({ features: [task_id, question, canonical_solution, test_list, test_function, entry_point, test_matching, test_match_function], num_rows: 431 }) })

数据实例

json { task_id: OOP/0, question: First, write a WDS class using the Python language. Then, within the WDS class, create a public function called without_duplicates to implement finding the length of the longest substring in a given string s that does not contain any duplicate characters., test_function: def test_run(content1): return WDS().without_duplicates(content1), test_list: [ assert candidate("abcabcbb")==3, assert candidate("bbbbb")==1, assert candidate("pwwkew")==3], entry_point: test_run, test_matching: assert candidate([["class WDS", "def without_duplicates"]]) == True, test_match_function: def matching_function(content): def run_match(text): for task in text: if task not in str_content: return False return True len_cont = len(content) if len_cont==1 and run_match(content[0]) == True: return True elif (len_cont==2 and run_match(content[0]) == True) or (len_cont==2 and run_match(content[1]) == True): return True else: return False }

数据字段

  • task_id: 数据样本的标识符
  • question: 编程任务的描述
  • test_function: 测试的运行函数
  • test_list: 验证解决方案的测试列表
  • entry_point: 测试的入口点
  • test_matching: 验证解决方案的测试列表
  • test_match_function: 测试的匹配函数

数据分割

  • 测试集: 431个样本

引用信息

@inproceedings{wang2024oop, title={OOP: Object-Oriented Programming Evaluation Benchmark for Large Language Models}, author={Shuai Wang and Liang Ding and Li Shen and Yong Luo and Bo Du and Dacheng Tao}, year={2024}, booktitle={Findings of the Association for Computational Linguistics: ACL 2023}, url={https://arxiv.org/abs/2401.06628}, }

搜集汇总
数据集介绍
main_image_url
构建方式
在面向对象编程领域,评估大型语言模型的代码生成能力需要严谨且均衡的基准测试。MultiOOP基准测试的构建源于对现有单语言基准的扩展与系统化增强。研究团队选取了涵盖Python、PHP、C++、C#、Java和JavaScript六种主流编程语言的267个核心任务,通过自动化翻译框架将其转化为多语言设置,从而确保了任务语义在不同语言间的一致性。每个任务均配备了自然语言描述的问题陈述、规范的参考解决方案以及用于验证功能正确性的测试用例列表。此外,数据集引入了专门设计的匹配测试,用以量化模型对类定义、方法封装等面向对象核心概念的理解,并定义了pass@o这一针对性评估指标。整个构建过程旨在创建一个公平、全面且可复现的评估环境。
特点
MultiOOP基准测试的显著特征在于其多语言覆盖与面向对象概念的深度聚焦。该数据集囊括了六种流行编程语言,每种语言下包含267个独立任务,总计1602个样本,有效缓解了以往基准测试中存在的语言分布失衡问题。其任务设计精心划分了三个难度层级,从简单的类与对象操作到复杂的继承与多态应用,系统性地考察模型的能力谱系。数据集不仅提供用于验证代码功能正确性的标准测试断言,还创新性地集成了结构匹配测试,能够检验生成代码是否严格遵循了问题所要求的特定类名、方法签名等面向对象约束。这种双重验证机制,结合专门为面向对象理解设计的pass@o评估指标,使得该基准能够对模型的核心编程概念掌握程度进行更精细、更鲁棒的度量。
使用方法
为利用MultiOOP基准评估大型语言模型的代码生成性能,研究者可通过Hugging Face的datasets库便捷加载数据集。使用`load_dataset("codeai-dteam/oop")`指令即可获取结构化的测试集,其中每个样本均包含任务描述、参考答案及测试函数。评估流程通常涉及将自然语言问题描述输入待测模型以生成代码,随后利用数据集内嵌的`test_function`与`test_list`执行功能测试,验证代码是否通过所有断言。同时,可调用`test_match_function`对生成代码的结构进行概念匹配检验,判断其是否符合指定的面向对象范式。最终,综合功能测试通过率与概念匹配结果,可计算得到模型在通用`pass@k`及专用`pass@o`指标上的表现,从而全面衡量其在多语言环境下面向对象编程的生成与理解能力。
背景与挑战
背景概述
在人工智能与软件工程交叉领域,面向对象编程(OOP)作为现代软件开发的核心范式,其自动化代码生成能力评估长期面临单一语言覆盖的局限。MultiOOP基准数据集由研究人员于2024年创建,旨在构建一个涵盖Python、PHP、C++、C#、Java和JavaScript六种流行语言的多语言评估框架。该数据集通过扩展既有单语言基准,系统性地设计了267项任务,总计1602个独特样本,并引入专门的pass@o度量以量化大语言模型对封装、继承、多态等核心OOP概念的理解深度。这一工作为代码智能研究提供了公平、稳健的评估标准,显著推动了跨语言代码生成模型的比较与优化。
当前挑战
该数据集致力于解决多语言环境下面向对象代码生成的评估挑战,其核心在于如何精准衡量模型对抽象类、接口设计、依赖注入等高级OOP范式的掌握程度,而非仅关注语法正确性。在构建过程中,研究者需克服编程语言间语义差异与语法异构性,确保任务在不同语言中保持概念一致性;同时,设计自动化测试框架以增强测试用例覆盖,并定义pass@o这一新颖指标,以区分模型对功能实现与面向对象设计原则的遵循能力,这要求对多语言编译、执行环境及OOP理论有深度融合的理解。
常用场景
经典使用场景
在面向对象编程与智能代码生成领域,MultiOOP数据集作为多语言基准测试工具,其经典使用场景在于系统评估大型语言模型对核心面向对象概念的理解与生成能力。该数据集通过涵盖Python、PHP、C++、C#、Java和JavaScript六种流行语言,并设计三个难度层级的任务,为研究者提供了跨语言、多层次的标准化测试环境。其自动化测试框架与专门设计的pass@o指标,使得模型在类定义、方法封装、继承与多态等面向对象特性上的表现得以量化,成为衡量代码生成模型泛化性与鲁棒性的关键基准。
实际应用
在实际应用层面,MultiOOP数据集为开发更可靠、跨语言的代码辅助工具提供了关键验证基础。集成开发环境中的智能代码补全、自动化代码重构以及教育平台中的编程练习生成等功能,均可借助该数据集进行多语言能力校准。其涵盖的简单、中等与困难三级任务,能够模拟从基础类设计到复杂系统建模的真实开发场景,帮助工具开发者优化模型在不同语言与难度下的生成质量,最终提升软件开发效率与代码可维护性。
衍生相关工作
围绕MultiOOP数据集,已衍生出一系列聚焦于多语言代码生成与评估的经典研究工作。这些工作不仅利用该基准进行了大规模模型的能力对比分析,还进一步扩展了其评估框架,例如结合静态分析工具增强代码语义验证,或探索跨语言迁移学习对面向对象概念掌握的影响。相关成果推动了如CodeLlama、DeepSeek-Coder等模型在多语言环境下的迭代优化,并为构建更细粒度的编程概念评估数据集提供了方法论借鉴。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作