Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/petrosdemetrakopoulos/p2hnns
A Python library for efficient Point-to-hyperplane nearest neighbours search (P2HNNS) using locality sensitive hashing (LSH) approaches
https://github.com/petrosdemetrakopoulos/p2hnns
hyperplane-query nns nnsearch point-to-hyperplane-nns similarity-search
Last synced: 21 days ago
JSON representation
A Python library for efficient Point-to-hyperplane nearest neighbours search (P2HNNS) using locality sensitive hashing (LSH) approaches
- Host: GitHub
- URL: https://github.com/petrosdemetrakopoulos/p2hnns
- Owner: petrosDemetrakopoulos
- License: mit
- Created: 2024-02-08T02:28:52.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-19T13:57:34.000Z (almost 1 year ago)
- Last Synced: 2025-01-20T10:41:05.054Z (about 1 month ago)
- Topics: hyperplane-query, nns, nnsearch, point-to-hyperplane-nns, similarity-search
- Language: Python
- Homepage:
- Size: 3.33 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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) hashingThe 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).