Programmatic weak supervision to label training data