  We present SPEAR, an open-source python library for data programming with
semi supervision. The package implements several recent data programming
approaches including facility to programmatically label and build training
data. SPEAR facilitates weak supervision in the form of heuristics (or rules)
and association of noisy labels to the training dataset. These noisy labels are
aggregated to assign labels to the unlabeled data for downstream tasks. We have
implemented several label aggregation approaches that aggregate the noisy
labels and then train using the noisily labeled set in a cascaded manner. Our
implementation also includes other approaches that jointly aggregate and train
the model for text classification tasks. Thus, in our python package, we
integrate several cascade and joint data-programming approaches while also
providing the facility of data programming by letting the user define labeling
functions or rules. The code and tutorial notebooks are available at
https://github.com/decile-team/spear. Further, extensive documentation can be
found at https://spear-decile.readthedocs.io/. Video tutorials demonstrating
the usage of our package are available here. We also present some real-world
use cases of SPEAR.

Machine Learning