Skip to content

CLI tool for exploring arXiv (inspired by karpathy's brilliant ArXiv Sanity Preserver)

License

Notifications You must be signed in to change notification settings

knguyenanhoa/cli-arxiv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cli-arxiv

CLI tool for exploring arXiv (inspired by karpathy's brilliant ArXiv Sanity Preserver)

The script will create data/pdf/, data/to-read/, data/txt/ and data/summary/ directories to hold files downloaded from arXiv. I am also aware that this is a rather stupid way to implement a datastore but DBs seem a bit over the top. Text from PDFs are auto-converted on downloaded and are used to suggest future articles to the user. Downloading articles is idempotent.

It uses tfidf with cosine similarity to recommend articles to you. Frequency sum ranking from the tfidf matrix is also implemented and can be switched to by editing the ml/main_ml.py file (set metric="sum_freq"). Please do add other algorithms as you see fit.

If you'd like to alter this code for any reason, please fork it because I will be pushing to this repo from time to time. Cheers!

INSTALL

  • Clone the repo (it uses python 3).
  • Install dependencies.
pip install -r requirements.txt
  • Start the script.
python main.py

ISSUES

  • There may be a few seconds of network delay when browsing new articles for the first time as the script has to go fetch the article list from arXiv. The same holds for first-time article downloads. The script does cache article lists for a while before asking arXiv for an updated list. It's currently not possible to force a refresh of the list ad hoc.
  • I should've used an available arXiv API wrapper.

DISCLAIMER

  • This script hits the arXiv web API to function so please do not alter it to spam the arXiv site (though I don't think one can meaningfully impact their servers with this). I take no responsibility for its misuse.

TODO

  • ML should store learnt model somewhere to use later
  • Recommended articles should use normalized rank metric
  • Add ability to fetch new data from arXiv on demand

About

CLI tool for exploring arXiv (inspired by karpathy's brilliant ArXiv Sanity Preserver)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages