Git Product home page Git Product logo

fastrank's Introduction

FastRank CI Status Badge PyPI version

My most frequently used learning-to-rank algorithms ported to rust for efficiency.

Read my blog-post announcing the first public version: 0.4. It's alpha because I think the API needs work, not because there's any sort of known correctness or compatiblity issues.

Python Requirements / Release History

  • 0.5 and earlier require only Python 3.5, but no windows builds were pushed.
  • 0.6 requires Python 3.6 due to EOL for Python 3.5 becoming prevalent in the latest pip.
  • 0.6.1 switched to manylinux2010 building; you might get better vectorization from a local copy.
  • 0.7 maintains the requirement of Python 3.6
  • 0.8 and forward will require Python 3.7 so we can use the standard @dataclass annotation and drop the attrs dependency.

Python Usage

pip install fastrank

See this Colab notebook for more, or see a static version here on Github.

fastrank's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar jjfiv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fastrank's Issues

colab hates new version

/usr/local/lib/python3.7/dist-packages/fastrank/fastrank/init.py in ()
4 from .ffi import ffi
5
----> 6 lib = ffi.dlopen(os.path.join(os.path.dirname(file), 'native.so'), 4098)
7 del os

OSError: cannot load library '/usr/local/lib/python3.7/dist-packages/fastrank/fastrank/native.so': /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/lib/python3.7/dist-packages/fastrank/fastrank/native.so)

making a dataset

John, I'm not clear on how to make a dataset. E.g. I have a dataframe with 3 columns: "qid", "features", "label" with types string, np.array and int, how do I make it into a dataset?

Windows Support

I think there's a segfault happening in github-actions for windows, but I don't have a windows machine right now.

eval API for python

Want to take arbitrary y_pred along with qids, y_true and an optional qrel to have reliable (pessimistic) mAP, ndcg, and mrr.

py3.5 is dead

DEPRECATION: Python 3.5 reached the end of its life on September 13th, 2020. Please upgrade your Python as Python 3.5 is no longer maintained. pip 21.0 will drop support for Python 3.5 in January 2021. pip 21.0 will remove support for this functionality.

TREC-News Hitlist

Related to #1

  • Support CModel
  • Support loading of qrels in python
  • Support qrels->json, json->qrels
  • Support Evaluate(cdataset, cmodel, evaluator_name: str) -> Dict[qid, score]
  • Support feature removal/sampling for dataset

support for m1 macs

pip install fastrank

Fails on M1 macs. I have a built wheel that you could upload to pypi, if you like.

ranklib-cli.py

Write a wrapper for the library with argparse and friends that matches Ranklib's command-line behavior for these two models (i.e., -ranker 4 is CA, -ranker 8 is RF, all others error.)

Try PyO3 and rust-numpy

We were using cffi in order to build fewer wheels, but with the new CI setup introduced in #54 being relatively successful, we can try out PyO3 again; as the need to rebuild for every python version exists in the build matrix already.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.