欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PyHubWeekly | 第四期:一款开源免费的学术论文下载工具

程序员文章站 2024-03-22 22:22:58
...

前言

PyHubWeekly每周定期更新,精选GitHub上优质的Python项目/小工具。

我把PyHubWeekly托管到了Github,感兴趣的可以搜索Github项目PyHubWeekly[1],如果喜欢,麻烦给个Star支持一下吧。此外,欢迎大家通过提交issue来投稿和推荐自己的项目~

本期为大家推荐GitHub上5个优质的Python项目,它们分别是:

  • SciencePlots

  • hickory

  • PyPaperBot

  • sweetviz

  • toolz

下面分别来介绍一下上述5个GitHub项目。

SciencePlots

Star:1.4k

SciencePlots[2]是一款用于科学绘图的Python工具包。

当我们看学术期刊、论文时会看到各种各样高大上的图形。会好奇,这么好看的图到底怎么画的?是不是很困难?

的确,现在很多Python绘图工具只是关注图形所表达的数据信息,而忽略了样式。

SciencePlots则弥补了这片空白,它是一款专门针对各种学术论文的科学绘图工具,例如,science、ieee等。

安装

# for latest commit
pip install git+https://github.com/garrettj403/SciencePlots.git

# for lastest release
pip install SciencePlots

使用

SciencePlots的使用非常简单,你只需要指定使用的样式、是否需要网格、背景,它就可以很容易的绘制出你想要的图形。

import matplotlib.pyplot as plt
plt.style.use('science')

PyHubWeekly | 第四期:一款开源免费的学术论文下载工具

hickory

Star:11

hickory[3]是一款调度Python脚本的命令行工具。

当我们开发一个程序,需要它定时被调度、定时执行时,每天定好闹钟,到点手动执行代码显然是不现实的。

你可以选择Docker、k8s这些工具去部署你的定时作业,但是,显然这种方案太了。

hickory就是一种能够轻松实现定时调度Python脚本的工具,很轻量、很简单。

示例

首先,编写一个名为foo.py的Python脚本:

import datetime
import time

stamp = datetime.datetime.now().strftime("%H:%M:%S")
time.sleep(5)

print(f"Foo - {stamp} + 5 seconds")

然后,在命令行下调度它,使它每10分钟执行一次:

hickory schedule foo.py --every=10minutes

这样,它就可以在后台执行,并按时调度。此外,你还可以使用hickory status命令来查看它的状态。

PyPaperBot

Star:12

PyPaperBot[4]是一款可以从谷歌Scholar、Crossref和SciHub下载学术论文的Python工具。

PyPaperBot会尝试从谷歌学术、SciHub、作者相关的链接等不同来源去下载你想要的PDF学术论文,避免你再去逐个网站寻找你想要的论文的困境。

安装

pip install PyPaperBot

使用

你可以通过提供索引关键字、DOI等方式搜索你需要的论文,

python -m PyPaperBot --query="Machine learning" --scholar-pages=3  --min-year=2018 --dwn-dir="C:\User\example\papers"

sweetiviz

Star:943

sweetiviz[5]是一款简单、易用的数据对比、可视化工具。

我们在做大数据相关的项目,例如,计算机视觉、机器学习、数据分析等过程中,经常会用到数据对比,训练集与测试集对比、各个子集之间的对比...

通过人肉逐个去对比显然是不现实的,而且很浅显。

sweetiviz围绕数据对比进行构建,能够深度探索不同数据之间的关系,并输出HTML程序,便于我们对数据有一个全局的把握。

安装

pip install sweetviz

使用

生成对比分析报告,主要会用到3个函数:

  • analyze(...)

  • compare(...)

  • compare_intra(...)

下面通过一段代码来看一下它的使用:

import sweetviz as sv

my_report = sv.analyze(my_dataframe)
my_report.show_html() # Default arguments will generate to "SWEETVIZ_REPORT.html"

然后,它就会生成一个1080p的宽屏HTML报告,可以在浏览器中打开并查看,

PyHubWeekly | 第四期:一款开源免费的学术论文下载工具

toolz

Star:2.9k

toolz[6]是一款包含迭代、字典、函数的工具集合。

迭代、字典、函数,这里面每一类在Python中的使用频率都非常频繁。

我们经常会用到迭代器、字典、函数中的各种各样的功能,但是默认的数组、字典中却没有这些功能,这样我们就不可不再去实现一遍。例如,分组、去重、合并等待。

toolz就提供了这一组方便的工具集合,你不需要去重复实现一些功能就可以使用你意想不到的便利。

安装

pip install toolz

使用

下面就来看一下字计数的示例:

>>> def stem(word):
... """ Stem word to primitive form """
... return word.lower().rstrip(",.!:;'-\"").lstrip("'\"")

>>> from toolz import compose, frequencies, partial
>>> from toolz.curried import map
>>> wordcount = compose(frequencies, map(stem), str.split)

>>> sentence = "This cat jumped over this other cat!"
>>> wordcount(sentence)
{'this': 2, 'cat': 2, 'jumped': 1, 'over': 1, 'other': 1}

这里就用到了组合compose和频率frequencies的功能。


 

 

推荐阅读

或许,这是最强大的一款Python GUI工具

8个小技巧教你提升Python代码质量

5款最强且免费的Python IDE

参考资料
[1]

PyHubWeekly: Jackpopc/PyHubWeekly

[2]

SciencePlots: garrettj403/SciencePlots

[3]

hickory: maxhumber/hickory

[4]

PyPaperBot: ferru97/PyPaperBot

[5]

sweetiviz: fbdesignpro/sweetviz

[6]

toolz: pytoolz/toolz