SPEAR : Semi-supervised Data Programming in Python
  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 \textit{weak supervision} in the form of heuristics (or
rules) and association of \textit{noisy} labels to the training dataset. These
\textit{noisy} labels are aggregated to assign labels to the unlabeled data for
downstream tasks. We have implemented several label aggregation approaches that
aggregate the \textit{noisy} labels and then train using the \textit{noisily}
labeled set in a cascaded manner. Our implementation also includes other
approaches that \textit{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
\url{https://github.com/decile-team/spear}. Further, extensive documentation
can be found at \url{https://spear-decile.readthedocs.io/}. Video tutorials
demonstrating the usage of our package are available at
https://youtu.be/SN9YYK4FlU0, https://www.youtube.com/watch?v=qdukvO3B8YU, and
https://drive.google.com/uc?export=download&confirm=KY-u&id=1P0iOGHrIR1Te0sSeCB3hwdPpjzB44K33.
We also present some real-world use cases of \spear.
