Snorkel does weak supervision for you. It takes your unlabeled data and use defined labeling functions (LFs), maps the LFs on the data and then de-correlates relates everything to give you a dataset that you can use for multi-class single-label supervision.