Explore and label on a map of raw data.
Get enough to feed your model in no time.
hover speeds up data labeling through embedding + visualization + callbacks.
- You just need raw data and an embedding to get a map.
- Explore the map to find "zones" that are easy and those that are tricky.
- Start the conquest of your data by coloring the zones through wisdom!
🚀 Live Demos
With code
- edit & run code in your browser to get a labeling interface, with guides along the way.
Without code
- go directly to a labeling interface, pre-coded and hosted on Binder.
✨ Features (click bullets to show GIF)
It's fast because it labels data in bulk.
🔭 A semantic scatter plot of your data for labeling, equipped with
-
Tooltip for each point on mouse hover
-
Table view for inspecting all selected points
-
Toggle buttons that clearly distinguish data subsets
-
Search widgets for ad-hoc data highlight
It's accurate because multiple angles work together.
🔬 Supplementary views to use in conjunction with the annotator, including
-
Finder: filter data by search criteria
-
Softlabel: active learning by in-the-loop model prediction score
-
Snorkel: custom functions for labeling and filtering
It's flexible (and fun!) because the process never gets old.
🧰 Additional tools and options that allow you to
-
Go to higher dimensions (3D? 4D?) and choose your xy-axes
-
Consecutively select across areas, dimensions, and views
-
Kick outliers and fix mistakes
💡 Click on the bullet points above to view GIFs!
📦 Install
Python: 3.8+
OS: Linux & Mac & Windows
PyPI (for all releases): pip install hover
Conda-forge (for 0.6.0 and above): conda install -c conda-forge hover
For Windows users, we recommend Windows Subsystem for Linux.
- On Windows itself you will need C++ build tools for dependencies.
📖 Resources
🎏 Announcements
- Jan 21, 2023 version 0.8.0 is now available. Check out the changelog for details 🥳.
🔔 Remarks
Shoutouts
- Thanks to
Bokehbecausehoverwould not exist without linked plots and callbacks, or be nearly as good without embeddable server apps. - Thanks to Philip Vollet for sharing
hoverwith the community even when it was really green.
Contributing
- All feedbacks are welcome, especially what you find lacking and want it fixed!
./requirements-dev.txtlists required packages for development.- Pull requests are advised to use a superset of the pre-commit hooks listed in .pre-commit-config.yaml.
Citation
If you have found hover useful to your work, please let us know 🤗
@misc{hover,
title={{hover}: label data at scale},
url={https://github.com/phurwicz/hover},
note={Open software from https://github.com/phurwicz/hover},
author={
Pavel Hurwicz and
Haochuan Wei},
year={2021},
}
Metadata
Release files for hover 0.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hover-0.8.1.tar.gz | 57.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hover-0.8.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 122.3 kB
Release files / hover-0.8.1.tar.gz
| Download URL | hover-0.8.1.tar.gz |
|---|---|
| Size | 57.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3852ea8ab36f1f4d50f9ab649e2bda3ec2b78ffda8d7a0ba0e3590b5fa2a35fc
|
|
BLAKE2b-256 checksum How to use checksums |
c6f0abd2eaaca4538dcab4a9cc7502031079bf6f1082112cdc92a25e7713125a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.15
|
Release files / hover-0.8.1-py3-none-any.whl
| Download URL | hover-0.8.1-py3-none-any.whl |
|---|---|
| Size | 64.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f9ab3ff6ce77d328302d32de9c755858b1c23f93550a973e69c5572196de39db
|
|
BLAKE2b-256 checksum How to use checksums |
f973c882a4d900947955627af28cbab94d1312f38240aabdaf739ea6a936b6ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.15
|