专栏名称: Python开发者
人生苦短,我用 Python。伯乐在线旗下账号「Python开发者」分享 Python 相关的技术文章、工具资源、精选课程、热点资讯等。
目录
相关文章推荐
Python开发者  ·  成人玩偶 + ... ·  2 天前  
Python爱好者社区  ·  DeepSeek彻底爆了! ·  2 天前  
Python爱好者社区  ·  DeepSeek 被放弃了,阿里牛逼! ·  昨天  
Python爱好者社区  ·  付费上班终于成为了现实。 ·  昨天  
Python爱好者社区  ·  吴恩达,yyds ·  3 天前  
51好读  ›  专栏  ›  Python开发者

用 python 编写一个本地论文管理器

Python开发者  · 公众号  · Python  · 2016-12-17 23:10

正文

(点击 上方公众号 ,可快速关注)


来源:Cer_ml

链接:www.jianshu.com/p/768db1472042


1. 介绍和引入


最近初学NLP相关的深度学习,下了很多论文,数量一多,发现论文管理是个问题。


首先论文数目一多,必须要按类别放到子文件夹下。但是某一篇论文,往往有多个主题。比如说某论文使用word2vec给短文本分类,那这篇论文既可以放在word2vec的目录下,也可以放在短文本的目录下,也可以放在分类的目录下。当你有天想去看了,往往又忘了是放在哪个子目录下了。再比如说,你下载了一些论文,下载的时候你知道这些论文的重要性(引用次数或者对项目的重要性)和紧急性(比如你三天之内都要看完)。但是当你把它放在某个子目录以后,当你有时间去看的时候,你忘了你当时最想看的那篇论文是什么了。


为此,我决定开发一个小工具来帮助我管理我的paper。我的思路是这样的:给每篇论文打上tag,标上重要程度和紧急程度。这样当我没有特定目的的时候,我就可以根据重要程度和紧急程度看小工具推荐的paper;当我想看某方面的paper时,我只需要查询下tag就可以找到相关主题的paper。

OK,有了思路,就可以着手实现了。


2.实现


实现这里不想讲太多,主要是设计程序的思路,源代码在文末给出,都有注释。


首先是图形化界面和命令行的选择,最终选择了命令行,开发速度更快,使用起来更直接。命令行的实现使用python自带的cmd模块实现。为了美化命令行的输出,参考使用了这里(http://blog.csdn.net/qianghaohao/article/details/52117082)的终端输出彩色化和第三方的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







请到「今天看啥」查看全文