Source code
Revision control
Copy as Markdown
Other Tools
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
const RANKED_SECTION = "top_stories_section";
const FEATURE_PREFIX = "s_";
export async function scoreItemInferred(item, interests, weights) {
item.score = item.item_score;
if (item.section === RANKED_SECTION) {
const inferred_score = Object.keys(item.features)
.filter(key => key.startsWith(FEATURE_PREFIX))
.reduce((acc, key) => {
const actualKey = key.slice(2);
return acc + (interests[actualKey] || 0);
}, 0);
const score =
(weights.local * inferred_score) / (weights.inferred_norm + 1e-6) +
weights.server * (item.server_score ?? 0);
item.score = score;
item.item_score = score;
}
return item;
}