snorkelflow.lfs.labeling_function
warning
This is a beta function in 25.4. Beta features may have known gaps or bugs, but are functional workflows and eligible for Snorkel Support. To access beta features, contact Snorkel Support to enable the feature flag for your Snorkel-hosted instance.
- class snorkelflow.lfs.labeling_function(name=None, resources=None, preprocess_configs=None)
Bases:
object
Decorator to create a LabelingFunction object from a user-defined function.
Parameters
Parameters
Name Type Default Info name Optional[str]
None
Name of the LF. resources Optional[Mapping[str, Any]]
None
Labeling resources passed in to
f
viakwargs
.noteWhile this can be a nested dictionary and can include functions, functions should be its direct children if any otherwise they would break when Snorkel Flow upgrades to a newer version of Python.preprocess_configs Optional[List[Dict[str, Any]]]
None
Preprocessors to run on data points before LF execution. Examples
# Simple example
@labeling_function()
def f(x):
return "SPAM" if "drug" in x.body else "UNKNOWN"
# Example with resources
def find_word_index(text):
import numpy
try:
idx = numpy.where(text.split(" ").index("employee"))
except:
idx = numpy.array([])
return idx
@labeling_function(name="my_lf", resources=dict(find_word_index=find_word_index))
def lf(x, find_word_index):
import numpy
idx = find_word_index(x.text)
if numpy.mean(idx) <= 1000:
return "employment"
else:
return "UNKNOWN"
# Bad example ("find_word_index" function is NOT a direct child of "resources")
@labeling_function(name="my_lf", resources=dict(funcs=dict(find_word_index=find_word_index)))
def bad_lf(x, funcs):
import numpy
idx = funcs["find_word_index"](x.text)
if numpy.mean(idx) <= 1000:
return "employment"
else:
return "UNKNOWN"- __init__(name=None, resources=None, preprocess_configs=None)
\_\_init\_\_
__init__
Methods
__init__
([name, resources, preprocess_configs])