对于这个问题,我们有两个解决方案:自己写代码解决和IEEE自带的高级搜索。
目录
一.问题描述
在IEEE搜索时,查找关键词时,若选择相关度
搜索后的文章是语义上较为接近的,但可能被引用量很低,对想要阅读经典的高引用文章的同学不太友好;若选择
可能搜索出来的结果引用量很高,但可能拆了我们的关键词,如我们搜索自监督学习(self-supervised learning),选择相关度,出来的第一个
不是高引用文章;选择高引用,出来的第一个是这玩意,好像和自监督学习没啥关系~
二.高级搜索
对于这种问题,有的同学说了,可以使用高级搜索
于是我们实验了一下,先不带and,康康啥情况
第一页都是自监督学习,不拆分关键词完成~
但是我们满怀着高兴的心情点了一下
第一篇又变成了这个,让人非常的高兴(doge)
但如果我们把不想拆的关键词写到高级搜索and的两边
第一篇又是这个,满足了要求
但是一旦点了
他,又来了!!
所以高级搜索只能解决一部分问题,要想不拆关键词,还想要高引用,只能自己动手啦~
三.自己动手,丰衣足食
我们要做的就是导出搜索结果,使用pandas洗数据,然后......就没有然后了(doge)
一.导出数据
点这玩意儿
然后download
如果下载有问题,emmmm,我就不知道啦(狗头保命)
不过这种小几百个的没啥问题,下载完了大概这样
打开这个文件,上pandas,为了方便,把文件改名为ssl.csv(与某协议重名了)
import pandas as pd
import numpy as np
frame = pd.read_csv('ssl.csv')
print(frame.head())
print(frame.columns)
出来了我们的columns
我们惊奇地发现,'Document Title','Author Affiliations','Article Citation Count', 'Patent Citation Count','Reference Count'正好是我们想要的,文档名,作者影响因子,被文章和专利引用数量和相关性。那还客气啥
head_picked_columns = ['Document Title','Author Affiliations','Article Citation Count', 'Patent Citation Count','Reference Count']
frame = frame[head_picked_columns]
后面的代码是对于self-supervised learning的搜索
a = 'self-supervised'
b = 'learning'
match_list_index = []
for i in frame.index:
title = frame['Document Title'][i]
title = title.lower()
if (a in title) and (b in title):
match_list_index.append(i)
result = frame.loc[match_list_index,:]
如果只想要不拆关键词,把result print一下就行啦~
但是对于追求完美的同学们,还要继续写有关引用的呀,我们希望对两个引用写一个排序
result['Article Citation Count'].fillna(0,inplace = True) #没有的话是nan,当然用0来填坑
result['Patent Citation Count'].fillna(0,inplace = True)
citation_count = result.sort_values(by = 'Article Citation Count')
citation_count['citation_sort'] = [i for i in range(len(citation_count.index))]
patent_citation_count = citation_count.sort_values(by = 'Patent Citation Count')
patent_citation_count['patent_citation_sort'] = [i for i in range(len(citation_count.index))]
出结果
reference_count = patent_citation_count
reference_count['all_sort'] = reference_count['patent_citation_sort'] + reference_count['citation_sort']
result = reference_count.sort_values(by = 'all_sort',ascending = False)
document_title = result['Document Title']
print(document_title.head())
如果不写head,使用print大法的话
结果是这个,看着不错
-----------------------------分隔线-----------------------------------------
结语:本文中,我们使用pandas洗了导出数据,拿到了我们想要的结果
所以对于这个问题,两个解决方案
1.高级搜索,非常简单,但在按下载量排序那边翻车啦
2.自己导出数据然后数据清洗,虽然麻烦,但有效果
申明:虽然我比较菜,但代码是我自己写的啦,转的话加本文链接吧,喜欢的话点个免费的赞吧(白嫖怪震怒)