{ "info": { "author": "John Foley", "author_email": "jjfoley@smith.edu", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5" ], "description": "# FastRank [![Build Status](https://travis-ci.com/jjfiv/fastrank.svg?token=wqGZxUYsDSPaq1jz2zn6&branch=master)](https://travis-ci.com/jjfiv/fastrank) [![PyPI version](https://badge.fury.io/py/fastrank.svg)](https://badge.fury.io/py/fastrank)\n\n\nMy most frequently used learning-to-rank algorithms ported to rust for efficiency.\n\n## Python Usage \n\n```shell\npip install fastrank\n```\n\n### Configuring Models\n\n```python\nfrom fastrank import CModel, CDataset, CQRel, TrainRequest\n\nRANDOM_FOREST = False\n\nif RANDOM_FOREST:\n train_request = TrainRequest.random_forest()\n params = train_request.params\n params.num_trees = 200\n params.feature_sampling_rate = 0.5\n params.instance_sampling_rate = 0.5\nelse:\n train_request = TrainRequest.coordinate_ascent()\n params = train_request.params\n params.init_random = True\n params.normalize = True\n \n# No matter what, deterministic seed and limit print statements.\nparams.quiet = True\nparams.seed = 16710601535089033473\n```\n\n### Loading SVMrank/Ranklib files:\n\n```python\nimport os\n\nquery_dir = os.path.join(os.environ['HOME'], 'code', 'queries', 'trec_news')\nqrels = CQRel.load_file(os.path.join(query_dir, 'newsir18-entity.qrel'))\n\ndataset = CDataset.open_ranksvm(\n os.path.join(data_dir, \"ent.ranklib.gz\"),\n os.path.join(data_dir, \"feature_names.json\"),\n)\n```\n\n### Train & Evaluate Models\n\n```python\nfrom sklearn.model_selection import KFold\n\nEVAL_MEASURE = \"NDCG@5\"\n\nmodels = []\nevals = []\nfolds = KFold(n_splits=5, random_state=0, shuffle=False)\nfeatures = dataset.feature_names()\nfeatures.remove(\"0\") # ranksvm starts at 1 for many tools\nqueries = sorted(d2018.queries())\n\nfdataset = d2018.subsample_feature_names(features)\n\nfor train_idx, test_idx in folds.split(queries):\n train_queries = [queries[i] for i in train_idx]\n test_queries = [queries[i] for i in test_idx]\n train = fdataset.subsample_queries(train_queries)\n test = fdataset.subsample_queries(test_queries)\n model = train.train_model(train_request)\n eval_dict = test.evaluate(model, EVAL_MEASURE, qrels)\n evals.append(eval_dict)\n models.append(model)\n print(\" NDCG@5 = %1.3f\" % np.mean(list(eval_dict.values())))\n```\n\n## Code Structure\n\n### fastrank \n\nThe core algorithms and data structures are implemented in Rust.\n\n### cfastrank [![PyPI version](https://badge.fury.io/py/cfastrank.svg)](https://badge.fury.io/py/cfastrank)\n\nA very thin layer of rust code provides a C-compatible API. A manylinux version is published to pypi. Don't install this manually -- install the ``fastrank`` package and let it be pulled in as a dependency.\n\n### pyfastrank\n\nA pure-python libary accesses the core algorithms using cffi via cfastrank. A version is published to pypi.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jjfiv/fastrank", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "fastrank", "package_url": "https://pypi.org/project/fastrank/", "platform": "any", "project_url": "https://pypi.org/project/fastrank/", "project_urls": { "Homepage": "https://github.com/jjfiv/fastrank" }, "release_url": "https://pypi.org/project/fastrank/0.4.1/", "requires_dist": null, "requires_python": "", "summary": "A set of learning-to-rank algorithms.", "version": "0.4.1" }, "last_serial": 5962296, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "d90b55186471072cf10588bf8c32b1d9", "sha256": "b10d0202ed6820f8117f7fe559509e2a1376ee7d0f5f4e23af236105c566a592" }, "downloads": -1, "filename": "fastrank-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d90b55186471072cf10588bf8c32b1d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4518, "upload_time": "2019-08-16T16:32:19", "url": "https://files.pythonhosted.org/packages/8a/d7/50f967e750f3524970c9f16ccf3d722d540baf1168b5f91625821bce6c78/fastrank-0.3.0-py3-none-any.whl" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "9b458045b0da419ce20a0e0db15024a3", "sha256": "c223c4cc94065f246bbf2dd12316dbba7b00c8e4c4bad0f1bb7929272256a09c" }, "downloads": -1, "filename": "fastrank-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9b458045b0da419ce20a0e0db15024a3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4518, "upload_time": "2019-08-16T16:34:22", "url": "https://files.pythonhosted.org/packages/64/c7/cc9d6ac179d5124821ae8597a2b4b33d89b1c49ddacea34593053792f289/fastrank-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a681cee7237790584986b56c83b667f1", "sha256": "9ec0c00c17719940ce31f86c198c575514018470277ab291a20a87b49b616119" }, "downloads": -1, "filename": "fastrank-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a681cee7237790584986b56c83b667f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3961, "upload_time": "2019-08-16T16:34:23", "url": "https://files.pythonhosted.org/packages/1b/d4/e351490d1a596f674ebfc44a006641791dbeb6cc216f7c16d3c0be0db2c7/fastrank-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "da1b9e4c92a8d53a270a5896018e88d9", "sha256": "5e2206beff8510bef99db8ad5fa12663d7203aae0d044e19291d2abf74fb0604" }, "downloads": -1, "filename": "fastrank-0.3.2.tar.gz", "has_sig": false, "md5_digest": "da1b9e4c92a8d53a270a5896018e88d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4067, "upload_time": "2019-08-22T20:59:43", "url": "https://files.pythonhosted.org/packages/56/31/2ed5d95a437d694a48cbb0ec5c0eecdbd2f6368ff2f9852e48b563198ac1/fastrank-0.3.2.tar.gz" } ], "0.4.0": [], "0.4.1": [ { "comment_text": "", "digests": { "md5": "c617c5af356e32194d0af9eba4704a91", "sha256": "3ee421ba11d4f9767b8a2b608c8362b72f1d55b0b97f0bd8f51a854636ecc71e" }, "downloads": -1, "filename": "fastrank-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c617c5af356e32194d0af9eba4704a91", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8704, "upload_time": "2019-10-11T23:27:05", "url": "https://files.pythonhosted.org/packages/0d/df/17e4753a047b8d9c3f5e98fd0d270cae9a65b93724ef6ef65c8118c49000/fastrank-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2869b7a11ce11126a2d4c83752f9e2d8", "sha256": "8b763391cd2f47f9d5fd35fcd9a22f981fc5815446d58bf81a008a02f5f95eb9" }, "downloads": -1, "filename": "fastrank-0.4.1.tar.gz", "has_sig": false, "md5_digest": "2869b7a11ce11126a2d4c83752f9e2d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7890, "upload_time": "2019-10-11T23:14:03", "url": "https://files.pythonhosted.org/packages/39/7c/6f9dbdbfdc171c9f7e7348e3fc0e73a7a84ae9853915d8831de7894cfef3/fastrank-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c617c5af356e32194d0af9eba4704a91", "sha256": "3ee421ba11d4f9767b8a2b608c8362b72f1d55b0b97f0bd8f51a854636ecc71e" }, "downloads": -1, "filename": "fastrank-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c617c5af356e32194d0af9eba4704a91", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8704, "upload_time": "2019-10-11T23:27:05", "url": "https://files.pythonhosted.org/packages/0d/df/17e4753a047b8d9c3f5e98fd0d270cae9a65b93724ef6ef65c8118c49000/fastrank-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2869b7a11ce11126a2d4c83752f9e2d8", "sha256": "8b763391cd2f47f9d5fd35fcd9a22f981fc5815446d58bf81a008a02f5f95eb9" }, "downloads": -1, "filename": "fastrank-0.4.1.tar.gz", "has_sig": false, "md5_digest": "2869b7a11ce11126a2d4c83752f9e2d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7890, "upload_time": "2019-10-11T23:14:03", "url": "https://files.pythonhosted.org/packages/39/7c/6f9dbdbfdc171c9f7e7348e3fc0e73a7a84ae9853915d8831de7894cfef3/fastrank-0.4.1.tar.gz" } ] }