这是本文档旧的修订版!
代码语料小组目标
关注代码语料的处理,包括github、gitlab等各大代码仓库的最新代码、commit数据、issue数据等的爬取和清洗。
小组任务
1. github issues信息获取
2. github commits信息获取
3. 其他代码托管平台调研
小组成果
github仓库元信息下载:https://github.com/washing1127/publicRepos_mnbvc
github仓库代码下载+语料提取:https://github.com/imgingroot/github_downloader_mnbvc
运行前准备:在剩余空间较大的盘符中新建文件夹,将运行脚本和repos_list.txt文件放入新建的文件夹中;
运行: - windows: 双击运行脚本文件“run.exe”即可开始运行。 - macOS: 命令行输入 `sudo ./run`,点击回车即可。需要输入电脑密码。 - linux:1. 安装依赖`pip install -r requirements.txt`;2. 运行脚本`python3 run.py`;
运行中:程序会首先创建output文件夹,并在其中创建zips文件夹和jsonl文件夹。然后依照运行逻辑下载代码下载仓库的zip文件到zips文件夹下,再将其解压。解压后再提取其中的代码语料到jsonl文件夹下的jsonl文件中中,随后删除下载过的zip文件。jsonl文件每达到500M会打包成zip文件,打包后文件大小约为50M~100M。同时如果下载过程中会有一些已知的错误问题,会被记录到output文件夹下的error.log文件中,不用在意,最后将这个文件和jsonl文件夹下的所有文件一同返回给项目负责人即可。
其他说明:此外,运行是还会在运行脚本统计文件夹下创造.done文件。该文件是记录已经完全处理过的仓库,以防止重复处理的。正常运行时不可更改或删除,如果下载过程中遇到非程序错误的意外操作,需要重新下载的话,可以将output文件夹和这个.done文件一起删除,重新双击脚本运行即可。
代码仓库语料提取:https://github.com/LinnaWang76/githubcode_extractor_mnbvc
googleSourceCode下载:https://github.com/washing1127/googleOpenSourceCode_mnbvc
年度工作总结
2024
数据与语料任务总结
项目开展情况
截至2024年末,MNBVC代码语料组共在8个大型泛代码类平台上成功开展25项分布式爬虫工作、代码语料的提取、打包系列任务和教科书中代码数据识别任务。
其中平台包括GitHub、Google Source、BitBucket、Notabug、Savannah、sr.ht等共6个代码托管平台和Stack Overflow、LeetCode这2个代码相关平台,此外SourceForge经组员前期调研未成功放弃爬虫获取。
爬虫项目包括了在8个代码平台的调研工作和元信息/仓库数据/clone地址的获取方面的共19项任务,GitHub上Code、Commit、Issues部分和BitBucket、Savannah等平台的Code Review方面的共5项任务,Google Source的Code部分、Notabug的数据提取方面的共2项任务,以及sr.ht的代码语料提取任务。
总共27.85TB的纯文本数据,包括代码、配置文件等数据。
项目变动情况
GitHub
截至2024年初,GitHub的Code部分已由washing和water完成平台调研,washing完成了元信息获取,water完成了仓库数据获取代码并由washing进行了Code Review,并进展到了数据下载的阶段;棒负责的Commits和Issues尚未开始,清泠负责Commit获取Code Review,zhange则负责Issues获取Code Review。
2024年,棒完成了GitHub的Commits和Issues的爬虫Coding,3月份washing将组长工作交给子轩。
Commit获取于3月份由清泠移交wxid_salb74o1i4jh21,再于6月份移交纳凉nado完成了编写,于9月份进入Code Review阶段由Ashuy负责,随后交由金子yc进行二次Code Review。
Issues的Code Review工作在3月份由zhange移交智,在5月中旬移交给Jacky咏杰并于6月初完成,在9月初交由八大山人打包验证。
BitBucket
url地址集:https://github.com/L1aoXingyu/bitbucket_download_mnbvc/releases/tag/v0.1
爬虫代码:https://github.com/knediny/bitbucket_crawl_mnbvc
截至2024年初,BitBucket项目已经完成的工作如下:廖星宇完成了平台调研和仓库数据获取代码,并由智完成了Code Review,廖星宇和washing完成了仓库数据获取测试。
2024年BitBucket的工作进入了获取仓库Git clone 地址以提取语料的阶段,由whyseu 完成了clone地址获取,washing对此进行了核验并确认url获取完毕,整合的url地址集v0.1上传到了Github,5月中旬至6月,Jacky咏杰和blue进行了对BitBucket的clone地址爬虫代码的编写以及分布式改造,并将爬虫代码上传至Github,9月份完成了所有数据爬取工作。
Savannah
Savannah的代码还剩下code review的工作,由林夕到王颢,未有进一步反馈随后再转交。
其他爬虫和数据获取情况
专利网爬虫:https://github.com/X-233/wipo_mnbvc
chinaxiv全量爬虫代码:https://github.com/flychen59/chinaxivCrawler_mnbvc
在今年6月份,代码语料小组确立了查找新的非开源语料的方向,并在6月中旬前确立了专利网的爬取任务,于6月末分配给Jacky咏杰,随后转交张林,在9月份爬完所有ipc分类目录,修改代码为本地文件读取,目前由金子yc负责Code Review工作。
10月中旬起,Jacky咏杰负责huggingface的Issues数据获取。
项目完成情况
在8个泛代码平台中,Notabug、Overflow、LeetCode等3个平台的所有爬虫任务工作已完成。而在MNBVC代码语料组的26项爬虫任务中,已完成的有19项,包括前述对于8个平台的调研和基本数据爬取下载;目前还待着手或正在进行中的工作有7项,包括数据提取获取方面的4项任务:GitHub的Code部分的仓库数据获取、Google Source的Code部分的数据提取、BitBucket仓库Git clone 地址下载、sr.ht的代码语料提取,和Code Review方面的3项任务GitHub的Commit获取和Issues获取、Savannah的Code Review。
在非爬虫任务中,代码语料提取、打包工作均已完成,而教科书中代码数据识别已完成了Coding部分,Code Review的工作尚未完成。