v1.10.0: whitelist alleen titel-anker; medium+zwak uitsluitend in samenvatting geweerd
This commit is contained in:
parent
ff7e7ac81c
commit
f5dec54165
3 changed files with 57 additions and 12 deletions
|
|
@ -89,13 +89,17 @@ rss_change_level = EventType.find("xyz.maubot.rss", t_class=EventType.Class.STAT
|
|||
# een niet-OV-bericht te veel doorgelaten (gebruikersbesluit, 2026-09-10).
|
||||
#
|
||||
# Drie lagen, elk met een eigen regel:
|
||||
# 1. WHITELIST -> ALTIJD door. Alleen termen die in élke context OV
|
||||
# betekenen (merken: NS/ProRail/Arriva; onmiskenbaar jargon: spoorstoring,
|
||||
# perron, bushalte, conducteur, ovpay; multi-woord termen).
|
||||
# 1. WHITELIST -> ALTIJD door BIJ EEN HIT IN DE TITEL. Alleen termen die
|
||||
# in élke context OV betekenen (merken: NS/ProRail/Arriva; onmiskenbaar jargon:
|
||||
# spoorstoring, perron, bushalte, conducteur, ovpay; multi-woord termen).
|
||||
# REGEL: twijfel je of de term ook buiten het OV kan voorkomen -> NIET hier.
|
||||
# NIET: station-samenstellingen (busstation/metrostation) — een bericht over
|
||||
# een pand 'naast het busstation' is geen OV-nieuws (besluit 2026-09-11);
|
||||
# die wegen mee via de gewogen families (medium).
|
||||
# Een whitelist-term ALLEEN in de SAMENVATTING laat NIET onvoorwaardelijk
|
||||
# door: een bijzin als 'de zakelijke bezoeker is ook nodig voor het openbaar
|
||||
# vervoer' in een economiebericht is geen OV-nieuws (besluit 2026-09-12).
|
||||
# Zo'n hit scoort via de gewogen families (dezelfde termen staan daar ook in).
|
||||
# 2. GEWOGEN FAMILIES -> score = som van unieke OV-families over het hele artikel
|
||||
# (titel + samenvatting; per familie 1× per artikel — herhaling of beide velden
|
||||
# tellen niet dubbel, besluit 2026-09-11) >= drempel (3).
|
||||
|
|
@ -107,6 +111,12 @@ rss_change_level = EventType.find("xyz.maubot.rss", t_class=EventType.Class.STAT
|
|||
# in titel óf samenvatting, is onvoldoende — de titel weegt
|
||||
# niet extra ('restaurant naast busstation' in de titel is
|
||||
# geen OV-bericht, besluit 2026-09-11).
|
||||
# EXTRA (besluit 2026-09-12): een medium + zwak-combinatie
|
||||
# UITSLUITEND in de samenvatting (geen enkele hit in de
|
||||
# titel) is geen OV-bewijs — 'openbaar vervoer' + 'zakelijke
|
||||
# reizigers' in een economiebericht telt dan toch op tot de
|
||||
# drempel. Sterke (3) families blijven in de samenvatting
|
||||
# gewoon tellen.
|
||||
# - zwak (1): DUBBELZINNIGHEID. Woorden die (ook) buiten het OV
|
||||
# voorkomen. REGEL: elk dubbelzinnig woord krijgt een EIGEN
|
||||
# familie (niet samengevoegd), zodat twee verschillende
|
||||
|
|
@ -199,10 +209,15 @@ MATCH_FILTER_BLACKLIST: frozenset[str] = frozenset({
|
|||
})
|
||||
|
||||
# MATCH_FILTER_WHITELIST: termen die een bericht per definitie OV maken. Eén enkele
|
||||
# hit in titel óf samenvatting laat ALTIJD door (geen familiescore nodig) — dit is het
|
||||
# expliciete "onmiskenbaar OV"-signaal, zodat we voor deze termen niet op de gewogen
|
||||
# hit in de TITEL laat ALTIJD door (geen familiescore nodig) — dit is het expliciete
|
||||
# "onmiskenbaar OV"-signaal, zodat we voor deze termen niet op de gewogen
|
||||
# heuristiek hoeven te leunen. Vergelijking is case-insensitive, dus ook 'nederlandse
|
||||
# spoorwegen', 'prorail' en 'NS' in all-caps titels tellen mee.
|
||||
# Een whitelist-hit ALLEEN in de samenvatting is géén onvoorwaardelijk signaal
|
||||
# (besluit 2026-09-12: 'openbaar vervoer' als bijzin in een economiebericht is geen
|
||||
# OV-nieuws); die term scoort dan via de gewogen families — voor whitelist-termen
|
||||
# die geen eigen familie hebben (bv. 'treinstel': alleen zwak via \w*trein\w*) is
|
||||
# een samenvatting-alleen hit dus zwak.
|
||||
# Termen MOETEN in elke context OV betekenen. Niet hierop (algemeen/dubbelzinnig):
|
||||
# los 'trein', 'bus', 'metro', 'tram', 'station', 'lijn', 'ov', 'reiziger',
|
||||
# 'vervoerder', 'sprinter',
|
||||
|
|
@ -407,7 +422,12 @@ class RSSBot(Plugin):
|
|||
Zwakke woorden (losse 'bus', 'breng', 'overweg', 'overwegen', 'sein',
|
||||
'opwaarderen', 'kaartje', 'rails', 'pendelbus') moeten combineren met een
|
||||
ander OV-woord én minstens één zwak woord moet in de titel staan; dezelfde
|
||||
zwakke familie in titel én samenvatting is géén combinatie. Weert oa
|
||||
zwakke familie in titel én samenvatting is géén combinatie. Whitelist-termen
|
||||
(NS, perron, bushalte, openbaar vervoer, ...) laten alleen onvoorwaardelijk
|
||||
door BIJ EEN HIT IN DE TITEL; in de samenvatting wegen ze mee als gewogen
|
||||
familie. Een medium + zwak-combinatie UITSLUITEND in de samenvatting (geen
|
||||
enkele hit in de titel) is geen OV-bewijs ('openbaar vervoer' + 'zakelijke
|
||||
reizigers' in een economiebericht, besluit 2026-09-12). Weert oa
|
||||
'VW-bus' (bus matcht niet ná een koppelteken), 'schoolbus', 'bussen rijden
|
||||
om' in een woningbrand-lead, het werkwoord 'brengen', het idioom 'goed met
|
||||
elkaar overweg kunnen', 'een wijk opwaarderen', brandweerjargon
|
||||
|
|
@ -415,8 +435,12 @@ class RSSBot(Plugin):
|
|||
waarin de samenvatting 'station' + 'pendelbus' + 'bus' noemt.
|
||||
Bewust doorgelaten: krant 'De Metro'/café 'De Tram' (medium) en atleet-
|
||||
'sprinter' in combinatie met ander OV-woord."""
|
||||
# Whitelist: één onmiskenbare OV-term (titel óf samenvatting) laat altijd door.
|
||||
if RSSBot._whitelist_hit(title) or RSSBot._whitelist_hit(summary):
|
||||
# Whitelist: een onmiskenbare OV-term in de TITEL laat altijd door (het
|
||||
# artikel kondigt het onderwerp aan: 'NS verlengt noodregeling'). Een
|
||||
# whitelist-term ALLEEN in de samenvatting is geen OV-bewijs ('openbaar
|
||||
# vervoer' als bijzin in een economiebericht, besluit 2026-09-12) en
|
||||
# scoort via de gewogen families hieronder.
|
||||
if RSSBot._whitelist_hit(title):
|
||||
return True
|
||||
t_hits = RSSBot._fam_hits(title)
|
||||
s_hits = RSSBot._fam_hits(summary)
|
||||
|
|
@ -433,6 +457,11 @@ class RSSBot(Plugin):
|
|||
# 'bus' in een golfverslag telt anders op tot de drempel).
|
||||
if not t_hits or len(combined) < 2:
|
||||
return False
|
||||
elif not t_hits and 1 in combined.values():
|
||||
# Medium + zwak uitsluitend in de samenvatting, niets in de titel: geen
|
||||
# OV-bewijs. 'openbaar vervoer' + 'zakelijke reizigers' in een
|
||||
# economiebericht telt anders op tot de drempel (besluit 2026-09-12).
|
||||
return False
|
||||
return True
|
||||
|
||||
@staticmethod
|
||||
|
|
@ -444,13 +473,15 @@ class RSSBot(Plugin):
|
|||
"samenstellingen als bushalte/buslijn/bushokje/busbaan/busverkeer, treinstoring/treinverkeer/treinstaking, "
|
||||
"intercity/streekvervoer/veerdienst/buurtbus/belbus, 'lijn 12'\n"
|
||||
"- Medium (2): tram, metro, openbaar vervoer, lightrail, halte, pont, ov-chipkaart/ovpay, ov-staking, conducteur, "
|
||||
"trein-/bus-/metrostation — één medium-hit volstaat niet, moet combineren met een andere OV-familie\n"
|
||||
"trein-/bus-/metrostation — één medium-hit volstaat niet, moet combineren met een andere OV-familie; "
|
||||
"medium + zwak uitsluitend in de samenvatting (geen hit in de titel) telt niet\n"
|
||||
"- Zwak (1): losse 'bus' (niet ná een koppelteken), 'pendelbus'/'shuttlebus', 'trein', 'station(s)', 'breng', 'overweg', 'overwegen', "
|
||||
"'sein', 'kaartje', 'opwaarderen', 'rails', 'inchecken'/'uitchecken', 'dienstregeling', 'chipkaart', 'reisproduct', 'vervoersbewijs', "
|
||||
"'ontsporen', 'reiziger', 'vervoerder', 'sprinter' — moet combineren met een ander OV-woord, met minstens één zwak woord in de titel\n\n"
|
||||
"**Whitelist (altijd door):** één onmiskenbare OV-term in titel óf samenvatting is genoeg "
|
||||
"**Whitelist (altijd door bij een hit in de TITEL):** een onmisbare OV-term in de titel is genoeg "
|
||||
"(NS, ProRail, Nederlandse Spoorwegen, spoorstoring, perron, bushalte, conducteur, "
|
||||
"ov-chipkaart, ovpay, openbaar vervoer, ...)\n\n"
|
||||
"ov-chipkaart, ovpay, openbaar vervoer, ...); in de samenvatting alleen weegt zo'n term mee "
|
||||
"als gewogen familie (medium/sterk)\n\n"
|
||||
"Uitgesloten (blacklist): woorden die wél matchen maar geen OV-waarde hebben, "
|
||||
"o.a. straatnamen rond stations ('stationsstraat', 'stationsweg', ...) en niet-OV-vormen als 'stationcar' en 'stationair'\n\n"
|
||||
"Doorlaten: som van unieke OV-families ≥ 3 — één familie telt 1× per artikel "
|
||||
|
|
|
|||
Loading…
Reference in a new issue