Gate place-based blocks on a literal mention
Connor spotted a Missouri redistricting story labelled ohio-state-politics. Measuring showed that was not an isolated slip: 66% of the winners of a place-based block named no place at all. Glastonbury, Anthony Albanese and a Tim Montgomerie story were all scoring as italy-mexico; a singing-apraxia story was ohio-state-politics. Embeddings model meaning well and named entities poorly -- "Italian politics" and "Australian politics" are nearly the same vector. Place is identity, not meaning, so it is matched lexically, which is the same division of labour that makes lexical comparison right for syndication detection and wrong for clustering. Blocks carry `requires_any`; a block cannot win for an item whose text names none of its terms. Word boundaries, not substrings: "rome" is inside "chrome" and "mali" inside "normalise". That is the trap the old blocklist fell into with "nfl" inside "conflict". The first implementation was wrong in a way worth recording, because it looked correct and measured almost unchanged (66% -> 30%). It wrote a sentinel into the RAW score before normalisation -- but when most items are gated, that sentinel becomes the block's own mean, so a gated item z-scored to roughly zero and could still win. Normalisation erased the gate. Applied after normalisation instead: 66% -> 0%, and place-block winners fell from 140 to 10, so 130 items now land in the block they actually belong to.
This commit is contained in:
1 parent
b0e509ea92
commit
e99b7c9fb7
3 files changed
+171
No files matched your search
@@ -204,6 +204,13 @@ probes = [
|
||||
"Federal agencies are restructured by executive order, prompting legal challenges.",
|
||||
]
|
||||
|
||||
# `requires_any` gates a block on a literal, word-boundary mention. Embeddings
|
||||
# model meaning well and named entities poorly -- "Italian politics" and
|
||||
# "Australian politics" are nearly the same vector -- so 66% of the winners of a
|
||||
# place block named no place at all: Glastonbury and Anthony Albanese were
|
||||
# scoring as italy-mexico, and a singing-apraxia story as ohio-state-politics.
|
||||
# Place is identity, not meaning, so it is matched lexically.
|
||||
#
|
||||
# --- place -------------------------------------------------------------------
|
||||
[[interest]]
|
||||
id = "urbanism"
|
||||
@@ -217,6 +224,7 @@ probes = [
|
||||
|
||||
[[interest]]
|
||||
id = "cincinnati"
|
||||
requires_any = ["cincinnati", "hamilton county", "northern kentucky", "covington", "newport", "over-the-rhine", "ohio"]
|
||||
group = "local"
|
||||
weight = 0.9
|
||||
local = true
|
||||
@@ -230,6 +238,7 @@ probes = [
|
||||
|
||||
[[interest]]
|
||||
id = "kentucky-louisville"
|
||||
requires_any = ["kentucky", "louisville", "frankfort", "lexington"]
|
||||
group = "local"
|
||||
weight = 0.6
|
||||
local = true
|
||||
@@ -241,6 +250,7 @@ probes = [
|
||||
# coverage alongside Cincinnati city government.
|
||||
[[interest]]
|
||||
id = "ohio-state-politics"
|
||||
requires_any = ["ohio", "columbus", "cleveland", "toledo", "dayton", "akron", "statehouse"]
|
||||
group = "local"
|
||||
weight = 0.75
|
||||
local = true
|
||||
@@ -257,6 +267,7 @@ probes = [
|
||||
# the consumer-lifestyle veto must not swallow it.
|
||||
[[interest]]
|
||||
id = "italy-mexico"
|
||||
requires_any = ["italy", "italian", "rome", "milan", "naples", "sicily", "meloni", "mexico", "mexican", "mexico city", "sheinbaum", "guadalajara", "monterrey"]
|
||||
weight = 0.75
|
||||
probes = [
|
||||
"Italian politics, government coalitions and social policy in Italy.",
|
||||
|
||||
Reference in new issue
Block a user