five

midas/ldkp10k

收藏
Hugging Face2022-04-02 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/midas/ldkp10k
下载链接
链接失效反馈
官方服务:
资源简介:
A dataset for benchmarking keyphrase extraction and generation techniques from long document English scientific papers. For more details about the dataset please refer the original paper - [](). Data source - []() ## Dataset Summary ## Dataset Structure ### Data Fields - **id**: unique identifier of the document. - **sections**: list of all the sections present in the document. - **sec_text**: list of white space separated list of words present in each section. - **sec_bio_tags**: list of BIO tags of white space separated list of words present in each section. - **extractive_keyphrases**: List of all the present keyphrases. - **abstractive_keyphrase**: List of all the absent keyphrases. ### Data Splits |Split| #datapoints | |--|--| | Train-Small | 20,000 | | Train-Medium | 50,000 | | Train-Large | 1,296,613 | | Test | 10,000 | | Validation | 10,000 | ## Usage ### Small Dataset ```python from datasets import load_dataset # get small dataset dataset = load_dataset("midas/ldkp10k", "small") def order_sections(sample): """ corrects the order in which different sections appear in the document. resulting order is: title, abstract, other sections in the body """ sections = [] sec_text = [] sec_bio_tags = [] if "title" in sample["sections"]: title_idx = sample["sections"].index("title") sections.append(sample["sections"].pop(title_idx)) sec_text.append(sample["sec_text"].pop(title_idx)) sec_bio_tags.append(sample["sec_bio_tags"].pop(title_idx)) if "abstract" in sample["sections"]: abstract_idx = sample["sections"].index("abstract") sections.append(sample["sections"].pop(abstract_idx)) sec_text.append(sample["sec_text"].pop(abstract_idx)) sec_bio_tags.append(sample["sec_bio_tags"].pop(abstract_idx)) sections += sample["sections"] sec_text += sample["sec_text"] sec_bio_tags += sample["sec_bio_tags"] return sections, sec_text, sec_bio_tags # sample from the train split print("Sample from train data split") train_sample = dataset["train"][0] sections, sec_text, sec_bio_tags = order_sections(train_sample) print("Fields in the sample: ", [key for key in train_sample.keys()]) print("Section names: ", sections) print("Tokenized Document: ", sec_text) print("Document BIO Tags: ", sec_bio_tags) print("Extractive/present Keyphrases: ", train_sample["extractive_keyphrases"]) print("Abstractive/absent Keyphrases: ", train_sample["abstractive_keyphrases"]) print("\n-----------\n") # sample from the validation split print("Sample from validation data split") validation_sample = dataset["validation"][0] sections, sec_text, sec_bio_tags = order_sections(validation_sample) print("Fields in the sample: ", [key for key in validation_sample.keys()]) print("Section names: ", sections) print("Tokenized Document: ", sec_text) print("Document BIO Tags: ", sec_bio_tags) print("Extractive/present Keyphrases: ", validation_sample["extractive_keyphrases"]) print("Abstractive/absent Keyphrases: ", validation_sample["abstractive_keyphrases"]) print("\n-----------\n") # sample from the test split print("Sample from test data split") test_sample = dataset["test"][0] sections, sec_text, sec_bio_tags = order_sections(test_sample) print("Fields in the sample: ", [key for key in test_sample.keys()]) print("Section names: ", sections) print("Tokenized Document: ", sec_text) print("Document BIO Tags: ", sec_bio_tags) print("Extractive/present Keyphrases: ", test_sample["extractive_keyphrases"]) print("Abstractive/absent Keyphrases: ", test_sample["abstractive_keyphrases"]) print("\n-----------\n") ``` **Output** ```bash ``` ### Medium Dataset ```python from datasets import load_dataset # get medium dataset dataset = load_dataset("midas/ldkp10k", "medium") ``` ### Large Dataset ```python from datasets import load_dataset # get large dataset dataset = load_dataset("midas/ldkp10k", "large") ``` ## Citation Information Please cite the works below if you use this dataset in your work. ``` @article{mahata2022ldkp, title={LDKP: A Dataset for Identifying Keyphrases from Long Scientific Documents}, author={Mahata, Debanjan and Agarwal, Naveen and Gautam, Dibya and Kumar, Amardeep and Parekh, Swapnil and Singla, Yaman Kumar and Acharya, Anish and Shah, Rajiv Ratn}, journal={arXiv preprint arXiv:2203.15349}, year={2022} } ``` ``` @article{lo2019s2orc, title={S2ORC: The semantic scholar open research corpus}, author={Lo, Kyle and Wang, Lucy Lu and Neumann, Mark and Kinney, Rodney and Weld, Dan S}, journal={arXiv preprint arXiv:1911.02782}, year={2019} } ``` ``` @inproceedings{ccano2019keyphrase, title={Keyphrase generation: A multi-aspect survey}, author={{\c{C}}ano, Erion and Bojar, Ond{\v{r}}ej}, booktitle={2019 25th Conference of Open Innovations Association (FRUCT)}, pages={85--94}, year={2019}, organization={IEEE} } ``` ``` @article{meng2017deep, title={Deep keyphrase generation}, author={Meng, Rui and Zhao, Sanqiang and Han, Shuguang and He, Daqing and Brusilovsky, Peter and Chi, Yu}, journal={arXiv preprint arXiv:1704.06879}, year={2017} } ``` ## Contributions Thanks to [@debanjanbhucs](https://github.com/debanjanbhucs), [@dibyaaaaax](https://github.com/dibyaaaaax), [@UmaGunturi](https://github.com/UmaGunturi) and [@ad6398](https://github.com/ad6398) for adding this dataset

本数据集用于基准测试面向英文长学术论文的关键词短语(keyphrase)抽取与生成(keyphrase generation)技术。如需了解该数据集的更多细节,请参阅原始论文 - []()。 数据来源 - []() ## 数据集概述 ## 数据集结构 ### 数据字段 - **id**:文档的唯一标识符。 - **sections**:文档中所有章节的列表。 - **sec_text**:每个章节内以空格分隔的单词列表组成的集合。 - **sec_bio_tags**:每个章节内空格分隔单词对应的BIO标注标签(BIO tags)列表组成的集合。 - **extractive_keyphrases**:所有存在于原文中的抽取式关键词短语列表。 - **abstractive_keyphrase**:所有未在原文中出现的生成式关键词短语列表。 ### 数据划分 | 数据划分 | 数据点数量 | |--|--| | 小训练集(Train-Small) | 20,000 | | 中训练集(Train-Medium) | 50,000 | | 大训练集(Train-Large) | 1,296,613 | | 测试集(Test) | 10,000 | | 验证集(Validation) | 10,000 | ## 使用方法 ### 小数据集 python from datasets import load_dataset # 获取小数据集 dataset = load_dataset("midas/ldkp10k", "small") def order_sections(sample): """ 修正文档中各章节的显示顺序,最终顺序为:标题、摘要、正文其余章节 """ sections = [] sec_text = [] sec_bio_tags = [] if "title" in sample["sections"]: title_idx = sample["sections"].index("title") sections.append(sample["sections"].pop(title_idx)) sec_text.append(sample["sec_text"].pop(title_idx)) sec_bio_tags.append(sample["sec_bio_tags"].pop(title_idx)) if "abstract" in sample["sections"]: abstract_idx = sample["sections"].index("abstract") sections.append(sample["sections"].pop(abstract_idx)) sec_text.append(sample["sec_text"].pop(abstract_idx)) sec_bio_tags.append(sample["sec_bio_tags"].pop(abstract_idx)) sections += sample["sections"] sec_text += sample["sec_text"] sec_bio_tags += sample["sec_bio_tags"] return sections, sec_text, sec_bio_tags # 训练集样本示例 print("训练集样本示例") train_sample = dataset["train"][0] sections, sec_text, sec_bio_tags = order_sections(train_sample) print("样本包含的字段: ", [key for key in train_sample.keys()]) print("章节名称: ", sections) print("分词后的文档: ", sec_text) print("文档BIO标注标签: ", sec_bio_tags) print("抽取式/存在于原文的关键词短语: ", train_sample["extractive_keyphrases"]) print("生成式/未在原文出现的关键词短语: ", train_sample["abstractive_keyphrases"]) print(" ----------- ") # 验证集样本示例 print("验证集样本示例") validation_sample = dataset["validation"][0] sections, sec_text, sec_bio_tags = order_sections(validation_sample) print("样本包含的字段: ", [key for key in validation_sample.keys()]) print("章节名称: ", sections) print("分词后的文档: ", sec_text) print("文档BIO标注标签: ", sec_bio_tags) print("抽取式/存在于原文的关键词短语: ", validation_sample["extractive_keyphrases"]) print("生成式/未在原文出现的关键词短语: ", validation_sample["abstractive_keyphrases"]) print(" ----------- ") # 测试集样本示例 print("测试集样本示例") test_sample = dataset["test"][0] sections, sec_text, sec_bio_tags = order_sections(test_sample) print("样本包含的字段: ", [key for key in test_sample.keys()]) print("章节名称: ", sections) print("分词后的文档: ", sec_text) print("文档BIO标注标签: ", sec_bio_tags) print("抽取式/存在于原文的关键词短语: ", test_sample["extractive_keyphrases"]) print("生成式/未在原文出现的关键词短语: ", test_sample["abstractive_keyphrases"]) print(" ----------- ") **输出** bash ### 中数据集 python from datasets import load_dataset # 获取中数据集 dataset = load_dataset("midas/ldkp10k", "medium") ### 大数据集 python from datasets import load_dataset # 获取大数据集 dataset = load_dataset("midas/ldkp10k", "large") ## 引用信息 若您在研究工作中使用本数据集,请引用以下文献: @article{mahata2022ldkp, title={LDKP: A Dataset for Identifying Keyphrases from Long Scientific Documents}, author={Mahata, Debanjan and Agarwal, Naveen and Gautam, Dibya and Kumar, Amardeep and Parekh, Swapnil and Singla, Yaman Kumar and Acharya, Anish and Shah, Rajiv Ratn}, journal={arXiv preprint arXiv:2203.15349}, year={2022} } @article{lo2019s2orc, title={S2ORC: The semantic scholar open research corpus}, author={Lo, Kyle and Wang, Lucy Lu and Neumann, Mark and Kinney, Rodney and Weld, Dan S}, journal={arXiv preprint arXiv:1911.02782}, year={2019} } @inproceedings{ccano2019keyphrase, title={Keyphrase generation: A multi-aspect survey}, author={c{C}}ano, Erion and Bojar, Ondv{r}}ej}, booktitle={2019 25th Conference of Open Innovations Association (FRUCT)}, pages={85--94}, year={2019}, organization={IEEE} } @article{meng2017deep, title={Deep keyphrase generation}, author={Meng, Rui and Zhao, Sanqiang and Han, Shuguang and He, Daqing and Brusilovsky, Peter and Chi, Yu}, journal={arXiv preprint arXiv:1704.06879}, year={2017} } ## 贡献致谢 感谢[@debanjanbhucs](https://github.com/debanjanbhucs)、[@dibyaaaaax](https://github.com/dibyaaaaax)、[@UmaGunturi](https://github.com/UmaGunturi)与[@ad6398](https://github.com/ad6398)为本数据集的收录提供支持。
提供机构:
midas
原始信息汇总

数据集概述

数据集目的

用于评估从长篇英文科学论文中提取和生成关键词的技术。

数据集结构

数据字段
  • id: 文档的唯一标识符。
  • sections: 文档中所有部分的列表。
  • sec_text: 每个部分中单词的列表,以空格分隔。
  • sec_bio_tags: 每个部分中单词的BIO标签列表,以空格分隔。
  • extractive_keyphrases: 当前存在的所有关键词列表。
  • abstractive_keyphrase: 当前不存在的所有关键词列表。
数据分割
分割 数据点数量
Train-Small 20,000
Train-Medium 50,000
Train-Large 1,296,613
Test 10,000
Validation 10,000

使用方法

  • Small Dataset: 示例代码展示了如何加载和处理小型数据集。
  • Medium Dataset: 示例代码展示了如何加载中型数据集。
  • Large Dataset: 示例代码展示了如何加载大型数据集。

引用信息

  • Mahata, Debanjan et al. "LDKP: A Dataset for Identifying Keyphrases from Long Scientific Documents." arXiv preprint arXiv:2203.15349 (2022).
  • Lo, Kyle et al. "S2ORC: The semantic scholar open research corpus." arXiv preprint arXiv:1911.02782 (2019).
  • Çano, Erion and Bojar, Ondřej. "Keyphrase generation: A multi-aspect survey." 2019 25th Conference of Open Innovations Association (FRUCT) (2019).
  • Meng, Rui et al. "Deep keyphrase generation." arXiv preprint arXiv:1704.06879 (2017).
搜集汇总
数据集介绍
main_image_url
构建方式
在科学文献挖掘领域,关键短语提取与生成是信息检索与知识组织的重要基石。midas/ldkp10k数据集专为长文档英文科学论文的关键短语提取与生成任务而构建,其数据源自S2ORC学术语料库,涵盖海量经过结构化处理的论文全文。该数据集通过精细的标注流程,将每篇文档划分为标题、摘要及正文各章节,并对每个章节中的词汇赋予BIO(Begin-Inside-Outside)标签,以精准标识关键短语的边界。此外,数据集不仅收录了文档中显式出现的抽取式关键短语,还包含了基于文档语义归纳的生成式关键短语,从而为监督学习与评估提供多维度标注信息。数据划分上,提供了小、中、大三种规模的训练子集,分别包含2万、5万及近130万条样本,并配有各1万条的验证与测试集,以适应不同计算资源与研究需求。
特点
该数据集的核心特色在于其对长文档结构的深度解构与多粒度标注。与常规短文本关键短语数据集不同,midas/ldkp10k保留了论文的章节层次信息,使模型能够学习到关键短语在不同语篇位置(如标题、摘要、正文)的分布规律。每个样本以结构化字段呈现,包括章节名称列表、各章节的分词文本及其对应的BIO标签序列,这为序列标注类模型提供了天然的输入格式。尤为突出的是,数据集同时提供了抽取式(present)与生成式(absent)两种关键短语,前者为文档中实际出现的短语,后者则要求模型基于上下文推断出未显式提及但语义相关的短语,从而全面评估模型的提取与生成双重能力。这种双任务设计使其成为衡量模型在科学文献理解与知识凝练方面性能的基准。
使用方法
使用该数据集时,可通过HuggingFace Datasets库便捷加载,根据需求选择'small'、'medium'或'large'配置以获取对应规模的子集。加载后的每个样本包含id、sections、sec_text、sec_bio_tags、extractive_keyphrases及abstractive_keyphrase六个字段。为恢复文档的自然阅读顺序,建议调用order_sections函数将章节重新排列为标题、摘要及正文章节的规范次序。随后,可直接利用sec_text与sec_bio_tags构建序列标注任务,或结合extractive_keyphrases与abstractive_keyphrase进行多任务学习。该数据集适用于训练基于Transformer的序列标注模型(如BERT-BiLSTM-CRF)或生成式模型(如BART、T5),并支持在验证与测试集上进行标准的关键短语抽取与生成评估。
背景与挑战
背景概述
在科学文献日益增长的背景下,从长文档中自动抽取和生成关键短语成为自然语言处理领域的重要研究方向。LDKP10k数据集由Debanjan Mahata等研究人员于2022年创建,旨在为长文档英文科学论文的关键短语抽取与生成技术提供标准化基准。该数据集源自Semantic Scholar开放研究语料库(S2ORC),包含超过130万篇文档的大规模训练集以及各1万篇的验证与测试集。其核心研究问题在于如何从结构复杂的学术文本中精准识别显式关键词并生成隐式关键词,从而推动关键短语技术在信息检索、知识管理及学术分析等领域的应用。
当前挑战
LDKP10k数据集面临多重挑战。首先,长文档关键短语抽取需应对文本跨度大、结构复杂(如包含标题、摘要、正文等多部分)的领域问题,传统短文本方法难以直接迁移。其次,构建过程中需解决标注一致性难题,特别是为每篇文档的每个词分配BIO标签以区分关键短语边界,同时确保显式与隐式关键短语的完整性。此外,大规模语料的处理要求高效的自动化流程,而不同科学领域的术语多样性进一步增加了模型泛化的难度。这些挑战共同制约了关键短语技术在学术场景中的实际效能。
常用场景
经典使用场景
在自然语言处理与科学文献挖掘领域,midas/ldkp10k数据集被广泛用于基准测试长文档英文科学论文的关键词提取与生成技术。其经典使用场景包括从学术论文的标题、摘要及正文各章节中,通过序列标注(BIO标签)与生成式方法,同时捕捉文档内出现的现有关键词(extractive keyphrases)与未出现的抽象关键词(abstractive keyphrases),从而全面评估模型对长文本语义结构的理解与关键信息凝练能力。
解决学术问题
该数据集系统性地解决了长文档关键词提取与生成任务中训练语料匮乏的瓶颈问题,尤其针对现有数据集多聚焦于短文本或单一类型关键词的局限。通过提供大规模、多粒度标注的语料(涵盖训练集、验证集与测试集,最大规模达129万余篇),它使研究者能够深入探索文档结构感知、跨段落语义聚合以及现有关键词与抽象关键词联合建模等前沿课题,推动了关键词生成领域从浅层匹配向深层语义理解的范式演进。
衍生相关工作
基于midas/ldkp10k数据集,衍生出一系列具有影响力的经典工作。例如,Mahata等人(2022)提出了LDKP基准框架,系统对比了多种序列标注与生成模型在长文档关键词任务上的性能;同时,该数据集被用于验证基于Transformer架构的端到端关键词生成模型(如KeyBART、SciBERT-based模型)的鲁棒性,并启发了针对长文档的层次化注意力机制与结构化编码方法的研究,进一步拓展了关键词技术在大规模学术语料中的应用边界。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务