five

starcoder2-documentation

收藏
Hugging Face2024-08-23 更新2024-12-12 收录
下载链接:
https://huggingface.co/datasets/SivilTaram/starcoder2-documentation
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集是一个全面的爬取文档和与代码相关的资源的集合,来源于各种包管理平台和编程语言文档站点。它聚焦于流行的库、免费编程书籍和其他相关材料,旨在促进软件开发、编程语言趋势和文档分析的研究。数据集包括项目名称、来源平台、编程语言和内容等字段。该数据集涵盖多种语言和文档类型,用于分析编程语言文档的趋势、研究软件开发资源、训练大型语言模型以及理解编程文档的结构和可访问性。
创建时间:
2024-08-23
原始信息汇总

数据集概述

数据集详情

概览

该数据集包含从各种包管理平台和编程语言文档站点爬取的文档和代码相关资源的全面集合。它专注于流行的库、免费编程书籍和其他相关材料,便于软件开发、编程语言趋势和文档分析的研究。

数据字段

  • project (string): 每个平台上的项目名称或标识符。
  • source (string): 文档数据来源的平台。
  • language (string): 与项目相关的编程语言。
  • content (string): 每个文档的文本内容,以Markdown格式编排。

数据来源

  1. 包管理器:

    • npm: Node.js包管理器。
    • PyPI: Python包索引。
    • Go Packages: Go编程语言包。
    • Packagist: PHP包仓库。
    • Rubygems: Ruby包管理器。
    • Cargo: Rust包管理器。
    • CocoaPods: Swift和Objective-C Cocoa项目的依赖管理器。
    • Bower: 前端包管理器。
    • CPAN: 综合Perl存档网络。
    • Clojars: Clojure库仓库。
    • Conda: 数据科学和科学计算的包管理器。
    • Hex: Elixir编程语言的包管理器。
    • Julia: Julia编程语言的包管理器。
  2. 文档网站:

    • 精心挑选的编程相关网站列表,包括Read the Docs和其他知名资源。
  3. 免费编程书籍:

    • 来自Free Programming Books项目的资源,推广各种语言的免费编程电子书。

数据收集过程

  1. 库检索:

    • 使用libraries.io识别上述平台中最流行的库,并将其作为搜索查询以获取相应的主页。
  2. 文档提取:

    • 主页链接: 从检索到的主页链接爬取文档文件。如果没有找到专门的文档,则使用包管理平台上的README或等效文件。
    • 处理策略: 对于通过主页链接获得的文档,采用与网站爬取相同的处理策略,确保一致的格式和提取质量。
    • 优先级: 对于托管在PyPI和Conda上的库,优先考虑Read the Docs上的文档。
  3. PDF提取:

    • 对于R语言文档,使用pdftotext库从CRAN上托管的所有PDF中提取文本,有效保留格式。
    • 对于LaTeX包,从CTAN过滤文档、教程和使用指南PDF,排除图像密集型PDF,并使用Nougat神经OCR工具转换为Markdown。
  4. 网络爬取:

    • 从精心挑选的网站列表中收集代码文档,通过初始URL进行探索,完整URL列表可在StarCoder2论文中找到。
    • 使用动态队列存储同一域内的URL,随着爬取过程中新链接的发现而扩展。
    • 过程聚焦于(1)内容提取和(2)内容拼接:
      • 内容提取: 使用trafilatura库将HTML页面转换为XML,消除冗余导航元素。
      • 内容拼接: 对不同HTML页面提取的内容进行近似重复检查,使用minhash局部敏感哈希技术,应用0.7的阈值以确保保留唯一内容。
  5. 免费教科书:

    • 数据集包括从Free Programming Books Project收集的免费编程书籍。提取带有PDF扩展的链接,并下载所有可用的PDF,使用pdf2text库进行文本提取。
  6. 语言识别:

    • 采用双重方法识别每个文档的主要编程语言:
      • 预定义规则: 当文档来源明确对应特定编程语言时应用。
      • Guesslang库: 在对应关系不明确时使用。

数据集特征

  • 涵盖语言: 英语、中文、日语、西班牙语等。
  • 文档类型:
    • 代码文档文件
    • PDF文档
    • HTML页面
    • 电子书
  • 包含编程语言:
    • Python
    • JavaScript
    • Rust
    • R
    • Go
    • PHP
    • Ruby
    • Haskell
    • Objective-C
    • SQL
    • YAML
    • TeX
    • Markdown
    • 及其他...

使用案例

  • 分析编程语言文档的趋势。
  • 研究跨多个平台的软件开发资源。
  • 在文档数据集上训练大型语言模型,以更好地理解编程语言。
  • 理解编程文档的结构和可访问性。

引用

bibtex @article{DBLP:journals/corr/abs-2402-19173, author = {Anton Lozhkov and Raymond Li and Loubna Ben Allal and Federico Cassano and Joel Lamy{-}Poirier and Nouamane Tazi and Ao Tang and Dmytro Pykhtar and Jiawei Liu and Yuxiang Wei and Tianyang Liu and Max Tian and Denis Kocetkov and Arthur Zucker and Younes Belkada and Zijian Wang and Qian Liu and Dmitry Abulkhanov and Indraneil Paul and Zhuang Li and Wen{-}Ding Li and Megan Risdal and Jia Li and Jian Zhu and Terry Yue Zhuo and Evgenii Zheltonozhskii and Nii Osae Osae Dade and Wenhao Yu and Lucas Krau{ss} and Naman Jain and Yixuan Su and Xuanli He and Manan Dey and Edoardo Abati and Yekun Chai and Niklas Muennighoff and Xiangru Tang and Muhtasham Oblokulov and Christopher Akiki and Marc Marone and Chenghao Mou and Mayank Mishra and Alex Gu and Binyuan Hui and Tri Dao and Armel Zebaze and Olivier Dehaene and Nicolas Patry and Canwen Xu and Julian J. McAuley and Han Hu and Torsten Scholak and S{{e}}bastien Paquet and Jennifer Robinson and Carolyn Jane Anderson and Nicolas Chapados and et al.}, title = {StarCoder 2 and The Stack v2: The Next Generation}, journal = {CoRR}, volume = {abs/2402.19173}, year = {2024}, url = {https://doi.org/10.48550/arXiv.2402.19173}, doi = {10.48550/ARXIV.2402.19173}, eprinttype = {arXiv}, eprint = {2402.19173}, timestamp = {Tue, 06 Aug 2024 08:17:53 +0200}, biburl = {https://dblp.org/rec/journals/corr/abs-2402-19173.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} }

搜集汇总
数据集介绍
main_image_url
构建方式
该数据集通过从多个包管理平台和编程语言文档网站爬取文档和代码相关资源构建而成。首先,利用libraries.io识别各平台上的热门库,并通过其主页链接获取文档。对于R语言和LaTeX包的文档,分别使用pdftotext和Nougat工具进行文本提取和转换。此外,通过动态队列技术从精选的网站列表中爬取代码文档,并使用trafilatura库将HTML页面转换为XML格式,确保内容提取的准确性和一致性。最后,通过Free Programming Books项目收集免费编程书籍,并使用pdf2text库进行文本提取。
特点
该数据集涵盖了多种编程语言的文档,包括Python、JavaScript、Rust等,并包含多种文档类型,如代码文档、PDF文档、HTML页面和电子书。数据集的语言覆盖广泛,包括英语、中文、日语和西班牙语等。其独特之处在于通过双重的语言识别方法(预定义规则和Guesslang库)确保文档语言的准确性,并通过minhash局部敏感哈希技术进行近重复内容检测,确保数据的唯一性和高质量。
使用方法
使用该数据集时,可通过Hugging Face的datasets库加载数据。具体操作为调用`load_dataset`函数,传入数据集名称`SivilTaram/starcoder2-documentation`即可。数据集包含四个主要字段:`project`(项目名称)、`source`(数据来源平台)、`language`(编程语言)和`content`(文档内容)。该数据集适用于编程语言趋势分析、软件开发资源研究以及大语言模型的预训练,能够为编程文档的结构和可访问性研究提供丰富的数据支持。
背景与挑战
背景概述
starcoder2-documentation数据集是StarCoder2模型预训练过程中使用的代码文档数据集,隶属于the-stack-v2-train-extras项目的一部分。该数据集由多个包管理平台和编程语言文档网站爬取而来,涵盖了流行的库、免费编程书籍及其他相关资源。其核心研究问题在于通过大规模文档数据支持编程语言趋势分析、软件开发资源研究以及文档结构分析等领域的研究。该数据集由Anton Lozhkov等研究人员于2024年发布,旨在为大型语言模型提供高质量的编程文档训练数据,推动编程语言理解与文档自动化的研究进展。
当前挑战
starcoder2-documentation数据集在构建与应用中面临多重挑战。首先,数据来源的多样性与复杂性使得文档格式的统一化处理成为难题,尤其是在HTML、PDF等不同格式的转换过程中,如何保留原始文档的结构与语义信息至关重要。其次,数据爬取过程中需应对动态网页内容、反爬虫机制以及多语言支持的挑战,确保数据的完整性与代表性。此外,文档的语言识别与去重问题也需解决,特别是在多语言环境下,如何准确识别编程语言并避免重复内容的引入。最后,数据集的规模与质量平衡问题亦不容忽视,如何在保证数据多样性的同时,避免低质量或无关内容的干扰,是构建高质量数据集的关键挑战。
常用场景
经典使用场景
在软件开发和编程语言研究领域,starcoder2-documentation数据集被广泛用于分析编程语言文档的趋势和结构。该数据集包含了从多个包管理平台和编程语言文档网站爬取的文档和代码相关资源,涵盖了流行的库、免费编程书籍等材料。研究人员可以通过这些数据深入探讨不同编程语言的文档风格、内容组织方式以及开发者的使用习惯,从而为编程语言的设计和优化提供数据支持。
实际应用
在实际应用中,starcoder2-documentation数据集被用于训练和优化大型语言模型,特别是那些专注于编程语言理解和生成的模型。通过使用该数据集,开发者可以构建更智能的代码生成工具、文档自动生成系统以及编程语言学习平台。此外,该数据集还被广泛应用于编程教育资源开发,帮助教育者设计更有效的编程课程和教材。
衍生相关工作
starcoder2-documentation数据集衍生了许多相关的研究工作。例如,基于该数据集的研究成果被用于改进编程语言模型的预训练过程,提升了模型在代码生成和文档理解任务中的表现。此外,该数据集还催生了一系列关于编程语言文档自动生成和优化的研究,推动了编程语言工具链的进一步发展。这些工作不仅扩展了数据集的应用范围,也为编程语言研究领域提供了新的研究方向。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作