Name Description Size
NaiveBayesTextTagger.mjs Determines if the tokenized text belongs to class according to binary naive Bayes classifier. Returns an object containing the class label ("label"), and the log probability ("logProb") that the text belongs to that class. If the positive class is more likely, then "label" is the positive class label. If the negative class is matched, then "label" is set to null. 2104
NmfTextTagger.mjs A multiclass classifier that scores tokenized text against several classes through inference of a nonnegative matrix factorization of TF-IDF vectors and class labels. Returns a map of class labels as string keys to scores. (Higher is more confident.) All classes get scored, so it is up to consumer of this data determine what classes are most valuable. 1978
PersonalityProvider.sys.mjs Gets contents of the attachment if it already exists on file, and if not attempts to download it. 7520
PersonalityProvider.worker.mjs 1041
PersonalityProviderWorkerClass.mjs V2 provider builds and ranks an interest profile (also called an “interest vector”) off the browse history. This allows Firefox to classify pages into topics, by examining the text found on the page. It does this by looking at the history text content, title, and description. 9045
RecipeExecutor.mjs RecipeExecutor is the core feature engineering pipeline for the in-browser personalization work. These pipelines are called "recipes". A recipe is an array of objects that define a "step" in the recipe. A step is simply an object with a field "function" that specifies what is being done in the step along with other fields that are semantically defined for that step. There are two types of recipes "builder" recipes and "combiner" recipes. Builder recipes mutate an object until it matches some set of critera. Combiner recipes take two objects, (a "left" and a "right"), and specify the steps to merge the right object into the left object. A short nonsense example recipe is: [ {"function": "get_url_domain", "path_length": 1, "field": "url", "dest": "url_domain"}, {"function": "nb_tag", "fields": ["title", "description"]}, {"function": "conditionally_nmf_tag", "fields": ["title", "description"]} ] Recipes are sandboxed by the fact that the step functions must be explicitly allowed. Functions allowed for builder recipes are specifed in the RecipeExecutor.ITEM_BUILDER_REGISTRY, while combiner functions are allowed in RecipeExecutor.ITEM_COMBINER_REGISTRY . 32853
Tokenize.mjs 12596