基于Python语言的学术论文数据挖掘与分析——以医疗人工智能相关学术论文为例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

22 新媒体研究 nmrmagz@
MEDIA TECHNOLOGY 媒体技术
关键词、基金的属性也进行拆分 ,写入相应的表进 行保存。见表 2。
表 2 机构、关键词、基金拆分表格
表名
描述t_auຫໍສະໝຸດ hor作者t_orgm
机构
t_keyword
关键词
t_fund
基金
1.6 数据统计 使用 Python 的 pymysql 模块读取 MySQL 的表 ,
据挖掘及分析 ,寻找热门选题 ,指导期刊的选题策 划。在已有的研究中 ,期刊编辑领域利用 Python 来进行数据挖掘及分析的报道较少 ,本文提出利用 Python 语言对近年来的热点话题医疗人工智能相关 的学术论文进行挖掘和分析 ,为期刊编辑从事学术 研究提供新思路。
1 研究方法
1.1 系统架构 基于 Python 3.7 的医疗人工智能相关学术论
利 用 中 国 知 网 数 据 库(https://ki. net)对医疗人工智能相关题材发文情况进行大数 据挖掘和数据分析。本文从中国知网数据库旧版入
基金项目:广东省卫生厅项目(A2020624)。 作者简介:刘焕英,广州市第一人民医院《广州医药》编辑部。
nmrmagz@ 新媒体研究 21
第 5 步 :在循环完当前检索结果页后 ,便进入 下一页 ,方法如下 :
# 循环结果集页面 for i in range(fpage,lpage):
# 当前页 if i == 1:
url =
str(driver.find_element_by_id(’Page_next’). get_attribute(’href’)).replace(’curpage= 2’,’curpage=1’)
第 4 步 :循环每行把【作者】、【机构】、【关键 词】、【基金】、【分类】 存放在具体页面中 ,并使用 Selenuim 元 素 的 click() 进 入 具 体 页 面 ,并 使 用 find_element_by_class_name 与 find_elements_ by_xpath 获取以上信息。
select substr(publishdate,1,4) as publish_year, count(*) as cnt from t_article group by substr(publishdate,1,4)
)x group by x.publish_year order by 1; # 挂了 m 个关键字的文章有 n 篇 select x.keyword_cnt, count(x.subject) as subject_cnt from ( select subject, count(keyword) as keyword_cnt from t_keyword where publishdate is not null group by subject ) x group by x.keyword_cnt order by 2 desc; # 挂了 m 个基金的文章有 n 篇 select x.fund_cnt, count(x.subject) as subject_cnt from ( select subject,count(fund) as fund_cnt from t_fund group by subject )x group by x.fund_cnt order by 2 desc; # 挂了 m 个分类的文章有 n 篇 select x.catalog_cnt, count(subject) as subject_cnt from ( select subject,count(catalog) as catalog_ cnt from t_catalog group by subject )x group by x.catalog_cnt order by 2 desc; # 不同分类的文章有 n 篇 select catalog ,count(subject) as subject_cnt from t_catalog group by catalog order by 2 desc; # 不同作者的文章有 n 篇 select a.author, count(subject) as subject_cnt from t_author a group by 1 order by 2 desc; # 不同机构的文章有 n 篇 select n, count(subject) as subject_ cnt from t_orgn a group by 1 order by 2 desc; # 不同关键词的文章有 n 篇 select a.keyword, count(*) as cnt from t_keyword a group by 1 order by 2 desc; # 不同杂志的文章有 n 篇 select a.magazine, count(subject) as
图 1 Python 数据挖掘与分析系统架构图
1.3 数据挖掘 从网页挖掘文献元数据步骤如下 : 第 1 步 :首 先 使 用 Selenuim 的 webdriver.
get 方 法 进 入 中 国 知 网 首 页 ,然 后 使 用 Selenuim 的 element 元素的 send_keys 自动输入【账号】与 【密码】,并使用 click 方法以实现自动点击以登录 系统。
2021年第5期 NEW MEDIA RESEARCH
口 ,在“期刊”类目下进行“高级检索”,检索条 件 为“ 全 文 = 人 工 智 能 + 医 疗 / 医 学 / 医 院 / 健 康 / 中医 ;时间 =2010-2019 ;来源 = 全部期刊“。(数 据采集时间为 2020 年 5 月 10 日)
能相关学术论文的数据挖掘及分析系统 ,对医疗人工智能相关学术论文的作者、机构、关键词、发表刊物等进
行了统计分析 ,揭示海量文章的内容特征 ,提升编辑的检索效率。
关键词 Python 语言 ;数据挖掘 ;医疗人工智能 ;学术论文 ;期刊编辑
中图分类号 G232.1
文献标识码 A
文章编号 2096-0360(2021)05-0021-06
MEDIA TECHNOLOGY 媒体技术
基于Python语言的学术论文数据挖掘与分析
——以医疗人工智能相关学术论文为例
刘焕英
摘 要 Python 语言是数据挖掘领域最热门的语言 ,具有较好的解释性及交互性 ,且拥有强大的科学计算能力 ,
能对大量科研人员成果数据进行挖掘和分析 ,从而获得有用的价值。文章借助 Python 语言 ,搭建了医疗人工智
第 2 步 :首先使用 Selenuim 的 webdriver.get 方法进入中国知网期刊的高级检索页 ,然后使用 Selenuim 的 element 元 素 的 send_keys、select_ by_value 自动输入【人工智能】、【逻辑关系 and】、 【医疗 / 医学 / 医院 / 健康 / 中医】click 方法以实 现自动点击以进行检索。
并使用 Python 调用 MySQL 的 SQL 查询语言进行统计, 统计方法如下 :
# 获取文章开始、结束时间及文章总数 select substr(min(publishdate),1,4) as start_year, substr(max(publishdate),1,4) as stop_year, count(*) as cnt from t_article; # 获取总的不同杂志数量 select count(distinct magazine) as cnt from t_article; # 获取总的引用次数 select sum(reference) as rfr_sum from t_ article; # 获取总的下载次数 select sum(download) as dl_sum from t_ article; # 挂了 m 个作者的文章有 n 篇 select x.author_cnt, count(x.subject) as subject_cnt from ( select subject, count(author) as author_ cnt from t_author group by subject ) x group by x.author_cnt order by 2 desc; # 挂了 M 个机构的文章有 N 篇 select n_cnt, count(x.subject) as subject_cnt from ( select subject, count(orgn) as orgn_cnt from t_orgn group by subject ) x group by n_cnt order by 2 desc; # 某一年的文章发表数量 select x.publish_year, sum(cnt) as sum_ cnt from (
DOI:10.16604/ki.issn2096-0360.2021.05.007
随着互联网技术的快速发展 ,大数据时代的来 临 ,数据规模巨大 ,但数据存在多样性、价值密度 低及关系复杂等特点。如何从海量的信息中获得有 价值的信息变得越来越困难。近年来逐渐兴起的数 据挖掘与分析可以很好地解决这个问题。数据挖掘 技术通过多种复杂的算法在大量的元数据中发现数 据间潜在的规律及有价值的信息。近年来在金融、 医疗、社交及电信领域取得了显著成果 ,而在期刊 出版领域应用较少。在已有的报道中 ,有编辑提出 把数据挖掘应用在网络投稿系统中 ,可以对稿件进 行分类送审、向作者定向征稿及相似文献推荐、对 投稿流程及投稿系统进行质量评价及促进系统的改 进 [1]。也已有编辑部利用数据挖掘为期刊的选题策 划、学者选择、专题策划、稿件筛选等提供更精准 的数据依据 ,为期刊决策提供参考 。 [2-5]
文的信息挖掘分析系统 ,利用 Selenuim 来获取相 关的期刊论文 ,将数据清理并分析后进行结果输出。 该系统主要分为三个模块 ,第一个模块是数据获取 , 从中国知网选取相关的文本信息 ,其中包括作者、 机构 ,关键词、期刊、发表时间、下载及被引用次 数等信息。第二个模块是数据清洗及提取 ,把通知、 办法、条例等非学术论文的文章删除。第三个模块 是数据统计分析 ,提取清理后的元数据 ,并对元数 据统计分析。见图 1。 1.2 数据来源
等非学术论文删除 ,方法如下 : delete from t_article where author is
null or trim(author) = ’’; 1.5 数据预处理
由于作者、机构、关键词、基金与分类信息中 含有多个属性 ,例如多名作者、多个关键词 ,需要 使 用 Python 的 split 函 数 把 这 1 行 数 据 拆 分 成 2 行或多行数据 ,然后使用 Python 的 pymysql 模块 写入 MySQL,以利于我们接下来的统计。同理把机构、
同理 ,在进入下一页面时 ,使用方法获取上述 数据 ,基本思路如下 :循环检索结果 -> 循环每页 -> 循环每行 ( 获取【主题】、【刊名】、【发表时间】、【被 引】、【下载】)-> 进入每行具体页面 ( 获取【作者】、 【机构】、【关键词】、【基金】、【分类】)
第 6 步 :获取上述信息后 ,便可以入库 ,在这 里我们使用的数据库系统是 MySQL 5.7。
第 3 步 :使用 Selenuim 元素的 find_element_ by_class_name 获检索结果 <table> 标签后 ,然后 使用 find_elements_by_tag_name 获取每行的 <tr> 与 <td> 的 标 签 ,分 别 使 用、find_element_by_ class_name 与 find_elements_by_xpath 方 法 获 取 文章的【主题】、【刊名】、【发表时间】、【被引】、【下 载】信息。
# 第N页 else:
url = str(driver.find_element_by_id(’Page_ next’).get_attribute(’href’)). replace(’curpage=2’,’curpage=’+ str(i) )
# 进入检索结果集分页 driver.get(url)
在 相 关 的 研 究 中 ,编 辑 们 更 多 的 是 利 用 HADOOP、ROST News Analysis Tool 4.5 等数据挖 掘工具 ,这些工具计算力及交互性不够强大。本文 参考谭春林 [6] 的数据挖方法 ,利用 Python 语言进 行数据挖掘及分析。Python 语言是数据挖掘领域 最热门的语言 ,具有较好的解释性及交互性 ,且拥 有强大的科学计算能力 ,能对大量科研人员成果数 据进行挖掘和分析 ,从而获得有用的价值。而期刊 编辑可利用 Python 对某一领域的发文情况进行数
t_article 字段信息如表 1 所示。
表 1 t_article 字段信息
列名
描述
Subject
主题
Author
作者
Orgn
机构
Publishdate
发表时间
Magazine
杂志
Reference
引用
Download
下载
Keyword
关键词
Fund
基金
Catalog
分类
1.4 数据清洗 把作者为空的文章 ,例如 :通知 ,办法、条例
相关文档
最新文档