数据集、实现代码介绍第三篇:候选词生成
优采云 发布时间: 2021-07-21 00:11数据集、实现代码介绍第三篇:候选词生成
内容:第1部分:概述第2部分:数据集和实现代码介绍第3部分:特征设计第4部分:候选词生成(第1部分)第5部分:候选词生成(第2部分)第6部分:性能比较
这篇博客将介绍我的关键词提取系统使用的数据集以及我实现的代码结构。如果读者想在阅读博客的同时查看数据并运行代码,这将是一个很好的指南。
2.1 数据集介绍
本文用于训练和测试的数据来自SemEval 2017 Task 10。共有500篇来自计算机科学、材料科学和物理领域的论文,每篇都收录精选段落和关键词注释信息。其中,350个用作训练集,其余150个用作测试集。每篇论文的选定段落为纯文本约200字,不包括标题和摘要等结构信息。在测试集上进行简单的统计。每篇论文都标有大约 20 个关键词。可以看出,数据集具有以下特点,文本长度较短,但关键词注解的数量远高于通常值,有利于机器学习获得更好的结果。下面是关键词对应的两个文字和截图,可以直观感受一下。
您可以从 SemEval 2017 Task 10 的官方网站 获取有关数据集的更多信息。
2.2 实现代码介绍
我的系统需要两步实现关键词提取。首先生成候选词,然后使用分类模型在候选词上选择关键词。我们在候选词生成阶段使用了两种方法,名词短语提取和CRF标注方法,并在第6章比较了两者的性能。
这里的代码src是在python 3中实现的,使用了NLTK、sklearn等库,部分数据没有收录,比如词向量和训练数据。
代码内容及各文件含义解释如下:
根目录:
--main.py 运行文件
--ekrsy/ 代码文件夹
----init.py
----base.py 实现了 Document 和 KeyPhrase 两个类
----feature.py 实现了各种提取特征的函数
----util.py 封装了一些工具方法
----glove.py 封装了从文件中读取词向量的借口
----test.py 一些测试方法
----log.py 定义日志格式
----crf_tool.py 实现CRF++注解数据转换和注解调用模型
----candidate.py 实现提取候选词的功能
----model.py 实现各种分类模型
----corpus.py 包文档集类
--data/ 放置使用的数据文件
----train/训练数据集
----dev/测试数据集
----crf/crf 使用CRF++标记配置文件
----extern_resource/外部资源数据
------freq 维基百科英文文章计算词频
------idf 维基百科计算的逆文档频率
------ieee IEEE texonomy 分类列表
------glove.6B.50d.txt GLOVE训练词向量数据
文章本系列不涉及具体代码细节。如果您需要运行生成的代码,它应该很容易理解。
这个文章介绍了我们关键词提取系统使用的数据集和实现代码结构。接下来,我们将介绍特征设计和候选词生成。