原文地址:http://www.cnblogs.com/lessmore/category/1009890.html 转载请保留本行,欢迎交流。

目录:

  1. 第一篇:综述
  2. 第二篇:数据集、实现代码介绍
  3. 第三篇:特征设计
  4. 第四篇:候选词生成(上)
  5. 第五篇:候选词生成(下)
  6. 第六篇:性能比较

这一篇博客将介绍我的关键词提取系统使用的数据集,和我实现的代码结构,如果读者希望在阅读博客的同时查看数据、运行代码,这将是一个很好的指南。

2.1 数据集介绍

本文中用于训练、测试的数据来自于SemEval 2017 Task 10。共有500篇来自计算机科学、材料科学和物理学等领域的论文,每篇包含选用的部分段落和关键词标注信息。其中350篇用作训练集,剩余150篇用作测试集。每篇论文选段均为200词左右纯文本,不包括标题、摘要等结构信息,对测试集进行简单统计,每篇标注的关键词约20个。可以看出,数据集具有以下特点,文本长度较短,但是标注的关键词数量远远高于通常值,这对机器学习有利于获得更好的结果。这里有两张文本和对应关键词标注的截图,可以得到直观的感受。

大家可以从SemEval 2017 Task 10 的官方网站得到更多关于数据集的信息。

2.2 实现代码介绍

我的系统对于实现关键词提取,采取两个步骤,首先生成候选词,然后在候选词上用分类模型选出关键词。我们在生成候选词阶段采用了两种方法,提取名词短语和CRF 标注方法,并在第六章比较了两者的性能。

代码再这里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训练的词向量数据

具体代码细节在这一系列文章中都不会再涉及,如果需要跑结果代码应该很好懂。

这篇文章介绍了我们实现的关键词提取系统使用的数据集和实现代码结构。接下来将介绍特征设计,候选词生成等内容。

转载于:https://www.cnblogs.com/lessmore/p/ke2_dataset_code.html

【关键词提取】第二篇:数据集、实现代码介绍相关推荐

  1. python--jieba分词、词性标注、关键词提取、添加自定义词典完整代码示例

    jieba 是目前最好的 Python 中文分词组件,它主要有以下 3 种特性: 支持 3 种分词模式:精确模式.全模式.搜索引擎模式 支持繁体分词 支持自定义词典 1 分词   可使用 jieba. ...

  2. 自然语言处理之——关键词提取(一)

    一. 摘要 本次的分享中,我们将了解目前较常用的关键词提取技术.关键词是代表文章重要内容的一组词.在文本的分类聚类.自动摘要等方面有着重要的作用.还可以让人们更直观便捷的浏览文本信息.在现实的常用文本 ...

  3. KeyBert、TextRank等九种本文关键词提取算法(KPE)原理及代码实现

    关键词提取 (Keyphrase Extraction,KPE) 任务可以自动提取文档中能够概括核心内容的短语,有利于下游信息检索和 NLP 任务.当前,由于对文档进行标注需要耗费大量资源且缺乏大规模 ...

  4. Tessent专栏第二篇:Tessent Shell ETChecker介绍(1续)

    系列文章目录 前言 1. Tessent Shell ETChecker与传统ETChecker的对比 1.1 工具比较 1.1.1 TS-ETChecker支持的功能 1.1.2 TS-ETChec ...

  5. java学习 类变量 类方法_这篇文章主要介绍了JAVA类变量及类方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下类变量(...

    这篇文章主要介绍了JAVA类变量及类方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 类变量(static) 类变量是该类的所有对象共 ...

  6. matlab实现鬼波信号压制算法  代码实践--第二篇 频率-波数域鬼波压制

    第二篇  matlab实现频率-波数域鬼波压制方法 本篇用来介绍频率-波数域鬼波压制的实现思路和压制效果 算法实现思路见2.3节,除了文中代码外,需配置鬼波压制算法工具包(https://downlo ...

  7. Tessent专栏第二篇:Tessent Shell ETChecker介绍(1)

    目录 前言 1. Tessent Shell ETChecker与传统ETChecker的对比 1.1 工具比较 1.1.1 TS-ETChecker支持的功能 1.1.2 TS-ETChecker和 ...

  8. PE结构详解(加壳脱壳必备知识)第二篇·存储地址介绍

    昨天分享了一篇PE结构详解(加壳脱壳必备知识),本篇是上一篇续篇,主要介绍关于PE结构的三种存储地址 VA.RVA.FILEOFFSET及转换方式,希望对你有所帮助. 一.关于VA.RVA.FILEO ...

  9. B站黑马测试第二篇P206视频数据库SQL语句‘关联查询_数据准备‘代码

    drop table if exists category; create table category( id int unsigned primary key auto_increment, ty ...

最新文章

  1. [转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
  2. R语言基于多字段(多数据列、multiple columns)对dataframe的行数据进行排序(Ordering rows)实战:使用R原生方法、data.table、dplyr等方案
  3. Java中Set集合是如何实现添加元素保证不重复的?
  4. 交流伺服系统设计指南_交流设计
  5. python中nlp的库_用于nlp的python中的网站数据清理
  6. C#对象初始化的探讨
  7. java按字节截取字符串牛客网_字符串计数
  8. 协议 - 收藏集 - 掘金
  9. ASP.NET 验证控件总结
  10. spark 算子实例
  11. arduino:废旧光驱DIY激光雕刻机(完善中……)
  12. 语言学句法分析树形图怎么画_哇,好大一棵树! 如何优雅地画句法树形图 丨语言学午餐...
  13. TCP AIMD Algorithm (copy)
  14. 中国生物农药市场投资前景及“十四五”规划建议报告2022-2028年
  15. uva10827 - Maximum sum on a torus(最大子矩阵和变形)
  16. 【原创】十年可以做什么?
  17. js实现360度图片旋转
  18. 分析师不死心 仍坚信微软终将成功并购雅虎
  19. 曲率发动机和反重力装置原理
  20. [视觉概述] 机器视觉应用方向、项目流程及学习思路总结

热门文章

  1. 小程序更换域名后发现图片显示不出来的问题解决方法
  2. react 访问后端_react前端用nginx怎么配置跨域访问后端restful api?
  3. win7磁盘清理_为什么要清理磁盘碎片,win7电脑怎么清理磁盘碎片
  4. eclipse maven打包_maven的通俗易懂的用法
  5. python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化
  6. Qt工作笔记-依赖于QAbstractTableModel实现自定义TableModel
  7. 认识死锁之生产者与消费者
  8. C++ STL string的输出
  9. Opencv 图片缩小尺寸原理
  10. delay在java中有什么用_java中DelayQueue的使用