A Machine Teaching Library That Enables Intuitive and Effecient Supervision

A Machine Teaching Library That Enables Intuitive and Effecient Supervision

Hover is a machine teaching library that enables intuitive and effecient supervision. In other words, it provides a map where you hover over and label your data... differently. For instance, you can:

Hover

Imagine editing a picture layer by layer, not pixel by pixel, nor by splashing paint.

app-active-learning

We can apply this idea to datasets.

Hover is a machine teaching library that enables intuitive and effecient supervision. In other words, it provides a map where you hover over and label your data... differently. For instance, you can:

  • Binder:seedling: annotate an intuitively selected group of data points at a time
  • Binder:ferris_wheel: throw a model in the loop and exploit active learning
  • Binder:whale: cross-check with Snorkel-based distant supervision

Check out @phurwicz/hover-binder for a complete list of demo apps.

:flags: Latest Announcements

  • Dec 16 We decided to make notebook tutorials instead of videos, because
  • hover is now embeddable in Jupyter notebooks, and
  • active development tends to outdate video tutorials rather quickly.
  • Dec 12 Common usage workflows are now available in hover.recipes. Much cleaner code!

:flight_departure: Quick Start

Step 0: load your dataset

from hover.core.dataset import SupervisableTextDataset

dataset = SupervisableTextDataset(
    raw_dictl=[{"content": "this is great"}],                  ## the raw data to be supervised
    ## train_dictl=[],                                          ## train/dev/test sets can be empty
    dev_dictl=[{"content": "this is awesome", "mark": "A"}],
    test_dictl=[{"content": "this is meh", "mark": "B"}],
    feature_key="content",                                     ## specify feature/label keys
    label_key="mark",
)

## define a vectorizer for your feature, then call dimensionality reduction
import spacy
nlp = spacy.load('en')
vectorizer = lambda text: nlp(text).vector ## we recommend wrapping a @lru_cache around this
dataset.compute_2d_embedding(vectorizer, "umap")

Step 1: choose a recipe

(or create your own with examples)

from hover.recipes import simple_annotator

handle = simple_annotator(dataset)

Step 2: fire it up

Hover uses bokeh to deliver its annotation interface:

option 1: in Jupyter

from bokeh.io import show, output_notebook
output_notebook()
show(handle)

option 2: with bokeh serve

from bokeh.io import curdoc
doc = curdoc()
handle(doc)

option 3: elsewhere as an embedded app

from bokeh.server.server import Server
server = Server({'my-app': handle})
server.start()

:package: Installation

Python: 3.6+

OS: tested on Mac & Linux

To get the latest release version, you can use pip:

pip install hover

Installation through conda is not yet available. Please open an issue if you would like conda or conda-forge support.

:flamingo: Features

Here we attempt a quick comparison with a few other packages that do machine teaching:

PackageHoverProdigySnorkelCore ideasupervise like editing a picturescriptable active learningprogrammatic distant supervisionAnnotates perbatch of just the size you find rightpiece predicted to be the most valuablethe whole dataset as long as it fits inSupportsall classification (text only atm)text & images, audio, vidio, & moretext classification (for the most part)Statusopen-sourceproprietaryopen-sourceDevsindieExplosion AIStanford / Snorkel AIRelatedmany imports of the awesome Bokehbuilds on the Thinc/SpaCy stackVariants: Snorkel DrybellMeTaLDeepDiveVanilla usagedefine a vectorizer and annotate awaychoose a base model and annotate awaydefine labeling functions and apply awayAdvanced usagecombine w/ active learning & snorkelpatterns / transformers / custom modelstransforming / slicing functionsHardcore usageexploit hover.core templatescustom @prodigy.recipethe upcoming Snorkel Flow

Hover claims the best deal of scale vs. precision thanks to

  • the flexibility to use, or not use, any technique beyond annotating on a "map";
  • the speed, or coarseness, of annotation being literally at your fingertips;
  • the interaction between multiple "maps" that each serves a different but connected purpose.

Download Details:

Author: : https://pythonawesome.com/

Source Code: https://github.com/phurwicz/hover

machine learning images python

What is Geek Coin

What is GeekCash, Geek Token

Best Visual Studio Code Themes of 2021

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

top 30 Python Tips and Tricks for Beginners

In this post, we'll learn top 30 Python Tips and Tricks for Beginners

Hire Machine Learning Engineer | Offshore Machine Learning Experts

We are a Machine Learning Services provider offering custom AI solutions, Machine Learning as a service & deep learning solutions. Hire Machine Learning experts & build AI Chatbots, Neural networks, etc. 16+ yrs & 2500+ clients.

Top Machine Learning Projects in Python For Beginners [2021] | upGrad blog

If you want to become a machine learning professional, you’d have to gain experience using its technologies and also by completing projects. Top Machine Learning Projects in Python For Beginners [2021]

Top Machine Learning Projects in Python For Beginners [2021]

If you want to become a machine learning professional, you’d have to gain experience using its technologies. The best way to do so is by completing projects. Take a look at this article and we will help you become an expert

5 Latest Technology Trends of Machine Learning for 2021

Check out the 5 latest technologies of machine learning trends to boost business growth in 2021 by considering the best version of digital development tools. It is the right time to accelerate user experience by bringing advancement in their lifestyle.