ETH Py150 corpus
收藏github2024-03-30 更新2024-05-31 收录
下载链接:
https://github.com/google-research-datasets/eth_py150_open
下载链接
链接失效反馈官方服务:
资源简介:
这是一个可重新分发的ETH Py150语料库子集,专门用于学习和评估源代码的上下文嵌入。该数据集通过追踪每个包含的GitHub仓库的许可证,并仅选择具有特定许可证的文件来构建。数据集分为`dev`、`train`和`eval`三个部分,每个部分包含不同数量的源文件,并提供JSON格式的清单文件,详细记录了每个文件的路径和许可证信息。
This is a redistributable subset of the ETH Py150 corpus, specifically designed for learning and evaluating contextual embeddings of source code. The dataset was constructed by tracking the licenses of each included GitHub repository and selecting only those files with specific licenses. The dataset is divided into three parts: `dev`, `train`, and `eval`, each containing a different number of source files. Additionally, JSON-formatted manifest files are provided, detailing the path and license information for each file.
创建时间:
2020-07-09
原始信息汇总
数据集概述
数据集名称
- 名称: eth_py150_open
数据来源
- 原始数据集: ETH Py150 corpus
- 原始数据集链接: https://www.sri.inf.ethz.ch/py150
数据集介绍
- 介绍论文: Learning and Evaluating Contextual Embedding of Source Code
- 论文发表会议: ICML 2020
- 论文链接: https://proceedings.icml.cc/static/paper_files/icml/2020/5401-Paper.pdf
数据集内容
- 数据选择: 从原始ETH Py150 corpus中选择部分文件,仅包含以下许可证的文件:
- apache-2.0
- lgpl-2.1
- epl-1.0
- isc
- bsd-3-clause
- bsd-2-clause
- mit
- gpl-2.0
- cc0-1.0
- lgpl-3.0
- mpl-2.0
- unlicense
- gpl-3.0
数据集结构
- 分割方式: 数据集分为三个部分:
dev,eval, 和train。 - 分割详情:
dev: 8302个源文件train: 74749个源文件eval: 41457个源文件
使用方法
- 使用说明: 用户需从原始位置下载ETH Py150 repository,并根据提供的manifest文件选择相应的文件路径进行文件保留。
文件规格
- 文件规格: 每个manifest文件包含以下字段:
filepath: 字符串,文件在GitHub上的完整路径。license: 字符串,文件在GitHub上发布的许可证。
搜集汇总
数据集介绍

构建方式
ETH Py150 corpus数据集的构建过程体现了对开源代码的严格筛选与规范化处理。该数据集从GitHub上的Python项目中提取了150,000个文件,并通过追踪每个文件的许可证信息,确保所选文件均符合特定的开源许可证要求。构建过程中,排除了许可证不符合要求、许可证混合使用或应用不当的文件,最终生成了三个JSON格式的清单文件,分别对应开发集、训练集和评估集。
特点
ETH Py150 corpus数据集以其高质量的开源代码文件著称,所有文件均来自GitHub上符合特定开源许可证的Python项目。数据集分为三个部分:开发集、训练集和评估集,分别包含8302、74749和41457个文件。每个文件均附带其原始路径和许可证信息,确保了数据的透明性和可追溯性。这种结构化的设计为研究者和开发者提供了丰富的资源,适用于代码嵌入模型训练与评估。
使用方法
使用ETH Py150 corpus数据集时,用户需从原始ETH Py150仓库下载数据,并根据提供的清单文件筛选出符合要求的文件。清单文件以JSON格式呈现,包含文件的完整路径和许可证信息。用户可根据需求将开发集和训练集合并为单一的训练集,或直接使用评估集进行模型验证。这种灵活的使用方式使得数据集能够适应不同的研究场景,为代码分析与机器学习任务提供了便捷的支持。
背景与挑战
背景概述
ETH Py150语料库由苏黎世联邦理工学院(ETH Zurich)的研究团队于2020年发布,旨在为源代码的上下文嵌入学习与评估提供高质量的数据支持。该数据集收录了150,000个Python源代码文件,源自GitHub上的开源项目,并在ICML 2020会议上首次公开。其核心研究问题聚焦于如何通过大规模代码数据集提升机器学习模型在代码理解、生成和转换等任务中的表现。ETH Py150语料库的发布为代码语义分析、程序合成等领域的研究提供了重要的数据基础,推动了源代码处理技术的进一步发展。
当前挑战
ETH Py150语料库在构建过程中面临多重挑战。首先,数据集的合法性要求严格,研究人员需逐一审查每个GitHub仓库的许可证,确保所选文件符合开源许可条款,这增加了数据筛选的复杂性和工作量。其次,部分仓库因许可证不明确或已从GitHub移除,导致数据丢失,影响了数据集的完整性。此外,数据集的划分与标注也需兼顾多样性与代表性,以确保模型训练的泛化能力。在应用层面,如何有效利用大规模代码数据进行上下文嵌入学习,仍是当前研究的重要挑战,尤其是在处理复杂代码语义和跨项目代码理解时,模型的性能仍有待提升。
常用场景
经典使用场景
ETH Py150 corpus 数据集在源代码分析领域具有广泛的应用,尤其是在代码嵌入模型的训练与评估中。该数据集通过提供大量Python源代码文件,为研究人员构建和测试上下文感知的代码嵌入模型提供了丰富的素材。其经典使用场景包括代码补全、代码搜索以及代码克隆检测等任务,这些任务依赖于对代码语义的深入理解。
解决学术问题
ETH Py150 corpus 数据集解决了源代码分析中的多个关键问题,特别是在代码嵌入模型的训练中。通过提供大量高质量的Python代码文件,该数据集帮助研究人员克服了数据稀缺性和多样性的挑战。此外,其严格的许可证筛选机制确保了数据的合法性和可重复性,为学术研究提供了可靠的基础。
衍生相关工作
ETH Py150 corpus 数据集催生了一系列重要的研究工作,特别是在代码嵌入和代码生成领域。例如,基于该数据集的模型在ICML 2020论文《Learning and Evaluating Contextual Embedding of Source Code》中得到了广泛应用。此外,该数据集还启发了后续关于代码语义理解和代码质量评估的研究,推动了源代码分析领域的发展。
以上内容由遇见数据集搜集并总结生成



