美文网首页
Python-103 获取文献列表和输出词云 2021-03-

Python-103 获取文献列表和输出词云 2021-03-

作者: RashidinAbdu | 来源:发表于2021-06-18 21:57 被阅读0次
  • 下载文献列表并输出worldcloud:
#python -m ensurepip

from Bio import Entrez
from Bio import Medline
import csv
import numpy as np
from PIL import Image #pip install pillow
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator #pip install wordcloud

import matplotlib.pyplot as plt

#获取
# 参数设置
Entrez.email = "abc@zju.edu.cn"
Entrez.max_tries=6
Entrez.sleep_between_tries = 500
Entrez.api_key="1620334c97028769f1779fa9078fac18f108"
# 搜索
paper_counts =1000
serch_term = 'Lachnospiraceae'#对excel提取的词进行搜索
hd_esearch = Entrez.esearch(db="pubmed", term=serch_term,retmax=paper_counts, usehistory="y")
read_esearch = Entrez.read(hd_esearch)
hd_esearch.close()
eftech_id_list = read_esearch["IdList"]
efetch_step = 1000
articleInfo = []
wordcloud_abstract =""
wordcloud_keywords =""
wordcloud_jounals  =""

for efetch_start in range(0, paper_counts, efetch_step):
    print("Download records %i to %i" % (efetch_start + 1, int(efetch_start+efetch_step)))
    flag = False
    n=2
    while (flag != True):
         head_efetch = Entrez.efetch(db="pubmed", id=eftech_id_list, rettype="medline", retmode="text", retstart=efetch_start, retmax=efetch_step)
         records = Medline.parse(head_efetch)
         records = list(records)
         if ("TI" in records[0]):
              # print(records[0].get("TI"))
              # print("success")
              flag = True
              for record in records:
                   # print(record)
                   # print("title:", record.get("TI", "?"))
                   # print("authors:", record.get("AU", "?"))
                   # print("source:", record.get("SO", "?"))
                   temp_dict = {u'pubmed_id':record.get("PMID", "?"),
                                       u'journal':record.get("JT", "?"),
                                       u'title':record.get("TI", "?"),
                                       u'keywords':str(record.get("OT", "?")).replace(']','').replace('[','').replace("'", ""),
                                       u'abstract':record.get("AB", "?"),}
                   wordcloud_abstract = wordcloud_abstract +"\n"+record.get("AB", "?")
                   wordcloud_keywords = wordcloud_keywords + "\t"+str(record.get("OT", "?")).replace(']','').replace('[','').replace("'", "")
                   wordcloud_jounals =  wordcloud_jounals +"\n"+record.get("JT", "?")
                   # print(temp_dict)
                   articleInfo.append(temp_dict.copy())
                   # print(articleInfo)
                   temp_dict.clear()

         else:

              print(" fatal error", "第", n, "次尝试")
         n = n + 1

# print(articleInfo)
# print(wordcloud_abstract)

# journal wordcloud
text_journal = wordcloud_jounals
wordcloud_jounals_plt = WordCloud().generate(text_journal)
plt.figure(figsize=(20,30))
plt.imshow(wordcloud_jounals_plt, interpolation='bilinear')
plt.axis("off")
plt.savefig('C:\\Users\\Mr.R\\Desktop\\1\\'+serch_term+"_"+"journals"+".png", dpi=300, bbox_inches='tight')

# abstract wordcloud
text_abstract = wordcloud_abstract
wordcloud_abstract_plt = WordCloud().generate(text_abstract)
plt.figure(figsize=(20,30))
plt.imshow(wordcloud_abstract_plt, interpolation='bilinear')
plt.axis("off")
plt.savefig('C:\\Users\\Mr.R\\Desktop\\1\\'+serch_term+"_"+"abstract"+".png", dpi=300, bbox_inches='tight')


file_name = 'C:\\Users\\Mr.R\\Desktop\\1\\' + serch_term +"4.csv"
field_names = ['pubmed_id', 'title','keywords','journal','abstract','year']
with open(file_name, 'w') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames = field_names)
    writer.writeheader()
    writer.writerows(articleInfo)

image.png image.png

相关文章

  • Python-103 获取文献列表和输出词云 2021-03-

    下载文献列表并输出worldcloud:

  • iOS蓝牙、usb、文件分享行为调研

    一:蓝牙开关状态调研 1.可以获取到附近蓝牙设备的信息,获取不到连接状态和历史连接列表 2.可以获取到当前音频输出...

  • 【python基础】7-列表

    列表变量赋值 列表切片和修改 列表拷贝 列表方法和混杂 循环 列表推导式 获取列表作为用户输入 从列表中获取随机元...

  • iOS 获取字体的

    获取字体方法 先获取字体名字列表 然后获取对应的具体名字(以苹果方为列子) 输出结果为 ["PingFangSC-...

  • Runtime快速上手(1)

    依照惯例跳过Runtime的介绍,这里只介绍Runtime的基本用法和简单应用例子。 一、获取属性列表 输出结果:...

  • Android获取所有依赖库

    Android获取所有依赖库 命令方式 gradle :app:dependencies输出列表展示了所有conf...

  • 招标小程序接口文档

    一、搜索 1、搜索 2、获取热门搜索关键词 二、招标、中标 1、城市列表 2、招标公告列表 3、中标公告列表 4、...

  • python requests爬取必应学术

    利用爬虫技术爬取文献,可以获取到必应学术上文献的文献名、作者、摘要、期刊等和参考文献和引证文献。虽然直接在必应上搜...

  • 04数据输出,A2-按地区分组输出客户列表

    需求分析: 1、具体需求 本《按地区分组输出客户列表》有如下需求: 从客户表获取数据后,按地区进行分组; 客户列表...

  • python 文件路径处理

    获取文件名os.path.basename 输出 获取文件路径 输出 获取文件后缀 输出 将文件路径和路径名拼接 ...

网友评论

      本文标题:Python-103 获取文献列表和输出词云 2021-03-

      本文链接:https://www.haomeiwen.com/subject/ldceqltx.html