/hover

:speedboat: Label data at scale. Fun and precision included.

Primary LanguagePythonMIT LicenseMIT

Hover

Explore and label on a map of your data.

Get enough to feed your model in no time.

en zh

PyPI Version Conda Version Downloads Main Build Status Nightly Build Status Codacy Grade Codacy Coverage

hover is a tool for mass-labeling data points that can be represented by vectors.

  • Labeling is as easy as coloring a scatter plot.
  • Hover your mouse and lasso-select to inspect any cluster.
  • Use a variety of widgets to narrow down further.
  • Enter a suitable label and hit "Apply"!

GIF Demo

🚀 Live Demos

  • edit & run code in your browser to get a labeling interface, with guides along the way.
  • go directly to an example labeling interface hosted on Binder.

✨ Features

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 selected points
Toggle buttons that clearly distinguish data subsets
Search widgets for ad-hoc data highlight

It's accurate because multiple components 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

📦 Install

Python: 3.8+

OS: Linux & Mac & Windows

PyPI: pip install hover

Conda: conda install -c conda-forge hover

📖 Resources

🎏 Announcements

  • Jan 21, 2023 version 0.8.0 is now available. Check out the changelog for details 🥳.

🔔 Remarks

Shoutouts

  • Thanks to Bokeh because hover would not exist without linked plots and callbacks, or be nearly as good without embeddable server apps.
  • Thanks to Philip Vollet for sharing hover with the community even when it was really green.

Contributing

  • All feedbacks are welcome, especially what you find lacking and want it fixed!
  • ./requirements-dev.txt lists 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},
}