Skip to main content

not yet

Project description

refy

A papers recomendation tool

refy compares papers in your library against a database of scientific papers to find new papers that you might be interested in. While there's a few services out there that try to do the same, refy is unique in several ways:

  • refy is completely open source, you can get the code and tweak it to improve the recomendation engine
  • refy doesn't just use a single paper or a subset of (overly generic) keywords to find new papers, instead it compares all of your papers' abstracts against a database of papers metadata, producing much more relevant results

disclaimer

The dataset used here is a subset of a larger dataset of scientific papers. The dataset if focused on neuroscience papers published in the latest 30 years. If you want to include older papers or are interested in another field, then follow the instructions to create your custom database.

(possible) future improvements

  • use scibert instead of tf-idf for creating the embedding. This should also make it possible to embed the database's papers before use (unlike tf-idf which needs to run on the entire corpus every time).

Overview

The core feature making refy unique among papers recomendation systems is that it analyzes your entire library of papers and matches it against a vast database of scientific papers to find new relevant papers. This is obviously an improvement compared e.g. to finding papers similar to one paper you like. In addition, refy doesn't just use things like "title", "authors", "keywords"... to find new matches, instead it finds similar papers using Term Frequency-Inverse Document Frequency to asses the similarity across papers abstracts, thus using much more information about the papers' content.

Usage

First, you need to get data about your papers you want to use for the search. The best way is to export your library (or a subset of it) directly to a .bib file using your references menager of choice.

Then, you can use...

Making your own database

refy uses a subset of the vast and eccelent corpus of scientific publications' metadata from Semanthic Scholar. The dataset used by refy is focused on neuroscience papers written in english and published in the last 30 years. If you wish to include a different set of papers in your database, you can make your custom database and use it with refy by executing the following steps.

1. Download whole corpus

You'll first need to download the whole corpus from Semantic Scholar. You can find the data and download instructions here. Once the data are downloaded, save them in a folder where you want to base your dataset-creation process

2. Uncompressing data

The downloaded corpus is compressed. To uncompress the files use refy.database_preprocessing.upack_database pasing to it the path to the folder where you've downloaded the data.

3. Specifying your parameters

The selection of a subset of papers from the corpus is based on a set of parameters (e.g. year of publication) matched against criteria specified (and described) in refy.settings. Edit the criteria to adapt the dataset selection to your needs

4. Creating the dataset

Simply run refy.database_preprocessing.make_database

5. Training doc2vec model

Papers semanthic similarity is estimated using a doc2vec model trained on the entire dataset. After modifying the dataset to your needs, you'll have to re-train the model by running refy.doc2vec.train_doc2vec_model

summary:

An example code for creating your dataset (after having downloaded the corpus and edited the settings)

from refy.database_preprocessing import upack_database, make_database
from refy.doc2vec import train_doc2vec_model
from pathlib import Path

folder = Path('path to your data')

# unpack and create
unpack_database(folder)
make_database(folder)

# train new d2v model
train_doc2vec_model()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

refy-0.tar.gz (17.7 kB view details)

Uploaded Source

Built Distribution

refy-0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file refy-0.tar.gz.

File metadata

  • Download URL: refy-0.tar.gz
  • Upload date:
  • Size: 17.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.7.4

File hashes

Hashes for refy-0.tar.gz
Algorithm Hash digest
SHA256 e1f1eaacefa8c880e7e6ac2b37cae2bd8f2a19ca1e58a4c95ebb6e2dffb616bc
MD5 29f30dc2e01827ae3d3162f61f3ada3f
BLAKE2b-256 70cc4bf52c0f0c5cd94c99bc2c4f519692b16a59413db54d3f7a8ea732232399

See more details on using hashes here.

File details

Details for the file refy-0-py3-none-any.whl.

File metadata

  • Download URL: refy-0-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.7.4

File hashes

Hashes for refy-0-py3-none-any.whl
Algorithm Hash digest
SHA256 88997a361f056c6f7e3fd5a00b88baab08402e42e6e5fe3dcd0478e4542fb2e3
MD5 269e211b58758ad5ee24d923176e6407
BLAKE2b-256 d07ba7bef74249fdba2ad598054f08ce9a704ea19e14453bc286fd58ff1acd2e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page