# Point-to-hyperplane nearest neighbours search (P2HNNS)
A Python library for efficient Point-to-hyperplane nearest neighbours search (P2HNNS) using locality sensitive hashing (LSH) approaches.
The library implements the 5 different methods described below.
- Bilinear Hyperplane (BH) hashing
- Embedding Hyperplane (EH) hashing
- Multilinear Hyperplane (MH) hashing
- Nearest Hyperplane (NH) hashing
- Furthest Hyperplane (FH) hashing
The implementation is based on the original code of [HuangQiang](https://github.com/HuangQiang/P2HNNS) (implemented in C++) and [stepping1st](https://github.com/stepping1st/hyperplane-hash/tree/master)(implemented in Java).
The original papers proposing each method will be explicitly provided in section [Resources](#Resources).
## Installation
The library can be installed via the pip package manager using the following command
```
pip install P2HNNS
```
## Documentation
Extensive documentation for using the library is available via [Read the Docs](https://p2hnns.readthedocs.io/en/latest/index.html)
## Tests
Unit tests are written using the pytest framework for all functionalities of the library. Tests are located in the [/tests](/tests/) directory.
## Resources
- [Point-to-Hyperplane Nearest Neighbor Search Beyond the Unit Hypersphere, SIGMOD 2021](https://dl.acm.org/doi/abs/10.1145/3448016.3457240) (Original FH and NH paper)
- [Compact Hyperplane Hashing with Bilinear Functions, ICML 2012](https://arxiv.org/abs/1206.4618) (Original BH paper)
- [Hashing Hyperplane Queries to Near Points with Applications to Large-Scale Active Learning, NeurIPS 2010](https://proceedings.neurips.cc/paper/2010/hash/470e7a4f017a5476afb7eeb3f8b96f9b-Abstract.html) (Original EH paper)
- [Multilinear Hyperplane Hashing,CVPR 2016](https://openaccess.thecvf.com/content_cvpr_2016/papers/Liu_Multilinear_Hyperplane_Hashing_CVPR_2016_paper.pdf) (Original MH paper)
- [Original C++ implementation by Huang Qiang](https://github.com/HuangQiang/P2HNNS)
- [Java implementation](https://github.com/stepping1st/hyperplane-hash)
## License
The library is licensed under the MIT Software license. You can see more details in the [LICENSE file](./LICENSE).
Raw data
{
"_id": null,
"home_page": "https://github.com/petrosDemetrakopoulos/P2HNNS",
"name": "P2HNNS",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "KNN,similarity,search,hyperplance,point,nearest,neighbours",
"author": "Petros Demetrakopoulos",
"author_email": "petrosdem@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/38/32/7c908f0662106bf18c588dc34ce842369a5b0963945b7e2b2365515dcf44/P2HNNS-1.0.2.tar.gz",
"platform": null,
"description": "# Point-to-hyperplane nearest neighbours search (P2HNNS)\nA Python library for efficient Point-to-hyperplane nearest neighbours search (P2HNNS) using locality sensitive hashing (LSH) approaches.\nThe library implements the 5 different methods described below.\n\n- Bilinear Hyperplane (BH) hashing \n- Embedding Hyperplane (EH) hashing\n- Multilinear Hyperplane (MH) hashing\n- Nearest Hyperplane (NH) hashing\n- Furthest Hyperplane (FH) hashing\n\nThe implementation is based on the original code of [HuangQiang](https://github.com/HuangQiang/P2HNNS) (implemented in C++) and [stepping1st](https://github.com/stepping1st/hyperplane-hash/tree/master)(implemented in Java).\n\nThe original papers proposing each method will be explicitly provided in section [Resources](#Resources).\n\n## Installation\nThe library can be installed via the pip package manager using the following command\n```\npip install P2HNNS\n```\n\n## Documentation\nExtensive documentation for using the library is available via [Read the Docs](https://p2hnns.readthedocs.io/en/latest/index.html)\n\n## Tests\nUnit tests are written using the pytest framework for all functionalities of the library. Tests are located in the [/tests](/tests/) directory.\n\n## Resources\n- [Point-to-Hyperplane Nearest Neighbor Search Beyond the Unit Hypersphere, SIGMOD 2021](https://dl.acm.org/doi/abs/10.1145/3448016.3457240) (Original FH and NH paper)\n- [Compact Hyperplane Hashing with Bilinear Functions, ICML 2012](https://arxiv.org/abs/1206.4618) (Original BH paper)\n- [Hashing Hyperplane Queries to Near Points with Applications to Large-Scale Active Learning, NeurIPS 2010](https://proceedings.neurips.cc/paper/2010/hash/470e7a4f017a5476afb7eeb3f8b96f9b-Abstract.html) (Original EH paper)\n- [Multilinear Hyperplane Hashing,CVPR 2016](https://openaccess.thecvf.com/content_cvpr_2016/papers/Liu_Multilinear_Hyperplane_Hashing_CVPR_2016_paper.pdf) (Original MH paper)\n- [Original C++ implementation by Huang Qiang](https://github.com/HuangQiang/P2HNNS)\n- [Java implementation](https://github.com/stepping1st/hyperplane-hash)\n\n## License\nThe library is licensed under the MIT Software license. You can see more details in the [LICENSE file](./LICENSE).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Python library for efficient Point-to-hyperplane nearest neighbours search (P2HNNS)",
"version": "1.0.2",
"project_urls": {
"Download": "https://github.com/petrosDemetrakopoulos/P2HNNS/archive/refs/tags/1.0.0.tar.gz",
"Homepage": "https://github.com/petrosDemetrakopoulos/P2HNNS"
},
"split_keywords": [
"knn",
"similarity",
"search",
"hyperplance",
"point",
"nearest",
"neighbours"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "38327c908f0662106bf18c588dc34ce842369a5b0963945b7e2b2365515dcf44",
"md5": "7598d6173097386fca9a42bf42e8cdee",
"sha256": "c4f202f00e8e2f68a3d536454e9ef3c17a836ac7d7023019b53122ccc2abe2f5"
},
"downloads": -1,
"filename": "P2HNNS-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "7598d6173097386fca9a42bf42e8cdee",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 3218,
"upload_time": "2024-02-09T18:39:05",
"upload_time_iso_8601": "2024-02-09T18:39:05.603472Z",
"url": "https://files.pythonhosted.org/packages/38/32/7c908f0662106bf18c588dc34ce842369a5b0963945b7e2b2365515dcf44/P2HNNS-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-09 18:39:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "petrosDemetrakopoulos",
"github_project": "P2HNNS",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "p2hnns"
}