1.医院论文查询
检索关键词包括语言为英文,时间(最好提前半年以免遗漏),医院名称(包括多个名称,可能命名不规范)
(eng[Language]) AND (((((("Third Clinical Institute"[Affiliation]) AND Wenzhou Medical University[Affiliation])) AND ("2019/01/01"[Date - MeSH] : "3000"[Date - MeSH]))) OR ((wenzhou people's hospital[Affiliation]) AND ("2019/01/01"[Date - MeSH] : "3000"[Date - MeSH])))
文件下载保存为nbib格式用jiabef可以直接导入。
image.png存在问题:
1.医院命名不规范
2.查不全
3.缺SCI指数
4.存在混肴
2.期刊SCI指数列表
import requests
import pandas as pd
import json
i=1
url='http://www.meddata.com.cn/api/journal/list?token=f7c285bdb2bbbce11caff5c422c4dbba&searchWorld=&searchValue=&sortWorld=106&sortType=-1¤t='+str(i)+'&size=10000'
req=requests.get(url)
df=pd.DataFrame(json.loads(req.text))
ndf=pd.DataFrame(df.loc['records'].responseData)
for j in range(2,5):
url='http://www.meddata.com.cn/api/journal/list?token=f7c285bdb2bbbce11caff5c422c4dbba&searchWorld=&searchValue=&sortWorld=106&sortType=-1¤t='+str(j)+'&size=10000'
req=requests.get(url)
df=pd.DataFrame(json.loads(req.text))
ndf=ndf.append(df.loc['records'].responseData,ignore_index=True)
ndf.to_excel('SCI.xlsx')
从pubmed下载的数据,都具备 nlm-id,可以作为唯一ID进行匹配。ISBN会有多个。
pubmed的速度非常慢。
3. 数据处理
3.1 建立nlm-id 和 SCI指数对应哈希
3.2 处理nbib文件
数据包含混肴信息,需要进行清理,确定第一作者单位是本院。
但是排在第一的可能是通讯作者,和论文中的第一单位并不一定一致。
https://www.ncbi.nlm.nih.gov/pubmed/31426842
Abstract格式有单位排名第一信息可以获取进行分析
最简单的方法还是直接在pubmed页码上进行人工查对。
use Encode;
use HTML::Entities;
use WWW::Mechanize;
use HTTP::Cookies;
my $cookie_jar = HTTP::Cookies->new;
my $mech=WWW::Mechanize->new(
cookie_jar =>$cookie_jar
);
$mech->agent('User-Agent=Mozilla/5.0 (Windows NT 6.1; rv:64.0) Gecko/20100101 Firefox/64.0');
open (FILE,"citations.nbib");#utf8编码
binmode(FILE, ":utf8");
open (FILEnew,">citationscheck.nbib");#utf8编码
binmode(FILEnew, ":utf8");
@line=<FILE>;
$content=join('',@line);
@pmid=split(/\n\n/,$content);
foreach $pmid (@pmid)
{
while($pmid=~m#([A-Z]{2,4})\s*-\s*(.+)#ig)
{
#print "$1 $2\n";
my $a=$1;
my $b=$2;
if($a eq 'PMID')
{
$url="https://www.ncbi.nlm.nih.gov/pubmed/".$b;
$mech->get($url);
my $content=$mech->content;
if ($content =~m#<dt>1</dt><dd>([^<]*)wenzhou people's hospital([^<]*)#i or ($b =~m#<dt>1</dt><dd>([^<]*)Third Clinical Institute([^<]*)#i and $b =~m#<dt>1</dt><dd>([^<]*)Wenzhou Medical University([^<]*)#i ))
{
print $b;
print "find hospital\n";
print FILEnew "$pmid\n\n";
}
last;
}
}
}
#print $pmid[1];
3.3 jabref 导入数据,保存为BIB文件。
"C:\Program Files\JabRef\jabref.exe" -o "e:\sci\citationnew.bib" -n true -i "e:\sci\citationsnew.nbib"
数据导入不充分,但是包括了nlm-id信息。
3.4 添加SCI-Index 信息
%sci_index=()
open (FILE,"hospital2.bib");#utf8编码
binmode(FILE, ":utf8");
open (FILEnew,">hospital2new.bib");#utf8编码
binmode(FILEnew, ":utf8");
while(<FILE>)
{
my $line=$_;
# nlm-id = {101589542},
if($line=~m#nlm(?:\S+?)id\s*=\s*\{([^}]+)\}#)
{
#print("now $1\n");
#print($sci_index{$1});
print(" nlm-id = {$1},\n sci-index = {$sci_index{$1}},\n");
$line=" nlm-id = {$1},\n sci-index = {$sci_index{$1}},\n";
}
print FILEnew $line;
}
close FILE;
close FILEnew;
4.4 信息导出
jabref可以自定义导出格式,生成各种形式。
"C:\Program Files\JabRef\jabref.exe" -o "e:\sci\sci2.html",tablesci -n true "E:\sci\sci2019.bib"
image.png5.在线工具
http://www.mypubmedid.com/WebPortal/Manage/SearchSenior
总结
医院SCI论文统计可以通过pubmed进行检索,由于单位检索包括了所有作者单位,还需要人工进行审核。
由于单位命名的不准确性,编程自动校验容易遗漏。
pubmed选择Fromat Abstract,在页面进行浏览非常方便,快速确定第一单位本院论文。
Latin American Journal of Pharmacy这个杂志非常奇怪,pubmed没有收录,可能要SCI检索。
网友评论