【转】用python编写一个本地论文管理器(paper_manager)

原文作者:Cer_ml

1. 介绍和引入

最近初学NLP相关的深度学习,下了很多论文,数量一多,发现论文管理是个问题。
首先论文数目一多,必须要按类别放到子文件夹下。但是某一篇论文,往往有多个主题。比如说某论文使用word2vec给短文本分类,那这篇论文既可以放在word2vec的目录下,也可以放在短文本的目录下,也可以放在分类的目录下。当你有天想去看了,往往又忘了是放在哪个子目录下了。再比如说,你下载了一些论文,下载的时候你知道这些论文的重要性(引用次数或者对项目的重要性)和紧急性(比如你三天之内都要看完)。但是当你把它放在某个子目录以后,当你有时间去看的时候,你忘了你当时最想看的那篇论文是什么了。
为此,我决定开发一个小工具来帮助我管理我的paper。我的思路是这样的:给每篇论文打上tag,标上重要程度和紧急程度。这样当我没有特定目的的时候,我就可以根据重要程度和紧急程度看小工具推荐的paper;当我想看某方面的paper时,我只需要查询下tag就可以找到相关主题的paper。
OK,有了思路,就可以着手实现了。

2.实现

实现这里不想讲太多,主要是设计程序的思路,源代码在文末给出,都有注释。
首先是图形化界面和命令行的选择,最终选择了命令行,开发速度更快,使用起来更直接。命令行的实现使用python自带的cmd模块实现。为了美化命令行的输出,参考使用了这里的终端输出彩色化和第三方的terminaltables
数据存储选择sqlite,因为有数据的查询/插入/删除/更新操作,用数据库比文件要方便很多;而且sqlite是python自己支持的,不用再安装其他软件,属于轻量级的文件数据库,最适合这个任务。

3.安装

下载github上的源码以后,使用python2.7,只需要:

pip install terminaltables

然后就可以输入:

python Manager.py

启动程序。

4.使用

基本的命令:

^---^ ^---^ ^---^ ^---^ ^---^
rec    recommend the papers according to urgency and importance
all    show all the papers info
tags   show all tags
sbt    search by tags, like (sbt tag1 tg2)
sbn    search by id nums, like (sbn 1 2)
edit    edit one paper info by paper id, like (edit 1)
path    find path by paper id, like (path 1 2)
open    open paper to read by id, like (open 1)
help    help info
quit    exit the manager

5.演示:

a.录入目录

启动程序后,首先按照提示,输入你的paper的根目录。如果输错了,可以把user_set.pkl删掉,重新启动程序即可。我这里程序已经保存路径,所以跳过。

b.输入新paper的数据

每次启动程序后,程序都会去扫描paper的目录(以及子目录),有扫描到新paper就会提示录入新paper的数据。

[图片上传中...(image-bcdca8-1522858290019-11)]

按照提示录入即可,分别是重要性(importance),紧急性(urgency),都是1-5的整数,还有所有tag(用空格隔开),以及这篇论文是不是读过了。
所有扫描到的新论文录入信息以后,就会出现欢迎界面:

image

c.显示所有论文信息

输入:

all

image

d.显示录入的所有tag

tags

image

e.按照tag搜索paper

sbt tag1 tag2

sbt(search by tag)

image

f.按照id号获取论文

sbn num1 num2

image

g.按照id号获取论文路径

path num1 num2

image

h.修改特定paper的info

edit num

image

如果看完了某篇论文,想改read从n为y,也可以直接使用edit命令。不修改的字段直接回车,数据不会丢失。
如:

image

i.获取推荐

rec

image

推荐规则是按照紧急程度降序,相同紧急程度按照重要程度降序,而且是read为n,就是没有标记读过的论文。

j.打开论文

open num

打开指定id的论文(使用系统默认的阅读器)。

k.获取帮助

help

image

l.退出

quit

image.png

6.最后

github源代码地址,喜欢留个star :>
这个工具只是用来方便自己的日常使用,一共只开发了两天的时间,有什么改进意见尽管提,但是不保证去改哦~我要滚回去看paper了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容