From 086d808dc77eda3775c7fcb5639b80fd973c6c27 Mon Sep 17 00:00:00 2001 From: Eddy de Vink Date: Fri, 11 Sep 2026 09:07:43 +0200 Subject: [PATCH] v1.9.7: station-samenstellingen medium i.p.v. sterk/whitelist; geen dubbeltelling bus-/metrostation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gebruikersbesluit 2026-09-11 n.a.v. Omroep West-artikel 'Restaurant weg, pand staat te verloederen': één 'busstation'-hit in de samenvatting ('pand naast busstation') is geen OV-nieuws en mocht niet doorgelaten worden. - Familie station-samenstellingen (trein/bus/metro-station): gewicht 3 -> 2 (medium). In de samenvatting moet nu een tweede OV-woord bijkomen; in de titel volstaat het anker nog (2x2=4). - 'busstation'/'metrostation' van de whitelist af (whitelist = altijd door). - 'station' uit de voertuig-samenstelling-familie verwijderd: 'busstation' telde dubbel mee (via 'bus' én 'station', 2x3=6). - validate_filter.py: 6 nieuwe regressie-cases + invariant 2-aanpassing. --- buzzrss/bot.py | 30 +++++++++++++++++++----------- maubot.yaml | 2 +- validate_filter.py | 12 +++++++++++- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/buzzrss/bot.py b/buzzrss/bot.py index 051630e..2247971 100644 --- a/buzzrss/bot.py +++ b/buzzrss/bot.py @@ -89,14 +89,21 @@ rss_change_level = EventType.find("xyz.maubot.rss", t_class=EventType.Class.STAT # 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, metrostation, conducteur, ovpay; multi-woord termen). +# 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). # 2. GEWOGEN FAMILIES -> score = 2x titel + 1x samenvatting >= drempel (3). # - sterk (3): onmiskenbaar OV-jargon/merken/samenvoegingen (spoorlijn, -# treinstation, busverkeer, intercity, lijn 12, ...). +# bushalte, busverkeer, intercity, lijn 12, ...). # - medium (2): onmiskenbaar OV maar iets algemener (tram, metro, halte, -# pont, ovpay, openbaar vervoer, ...); mag niet volledig -# ontbreken, maar telt alleen mee ter ondersteuning. +# pont, ovpay, openbaar vervoer, trein-/bus-/metrostation); +# mag niet volledig ontbreken, maar telt alleen mee ter +# ondersteuning. Station-samenstellingen zijn medium: één +# station-woord náást een ander onderwerp ('pand naast +# busstation') maakt een bericht nog geen OV-bericht +# (besluit 2026-09-11). # - zwak (1): DUBBELZINNIGHEID. Woorden die (ook) buiten het OV # voorkomen. REGEL: elk dubbelzinnig woord krijgt een EIGEN # familie (niet samengevoegd), zodat twee verschillende @@ -129,9 +136,9 @@ MATCH_FILTER_FAMILIES: list[tuple[str, int]] = [ # sterk (3) (r"\b(?:ns|arriva|qbuzz|connexxion|cxx|transdev|keolis|ret|gvb|ebs|htm|syntus|u-ov|allgo|flixbus|blauwnet|r-net|valleilijn|waterbus|eurostar|thalys|randstadrail|gvu|prorail|hermes|rrreis|qliner|ov)\b", 3), # vervoerders ('Breng' staat in de zwakke groep: botst met het werkwoord "brengen") (r"\b(?:spoorweg|spoorba(?:an|nen)|spoorlijn|spoorverkeer|spoorwegovergang|spoorbrug|spoorstoring|perron|seinstoring|wisselstoring|spoorstaking)\w*\b", 3), # spoorinfra; let op de klinkerwisseling: 'ontsporing' (open lettergreep, één o) vs 'ontspoord'/'ontspoorde' (dicht, dubbel o) — vandaar beide stammen - (r"\b(?:treinstation|treinstations|metrostation|metrostations|busstation|busstations)\b", 3), # station-samenstellingen: onmiskenbaar OV-jargon + (r"\b(?:treinstation|treinstations|metrostation|metrostations|busstation|busstations)\b", 2), # station-samenstellingen: onmiskenbaar OV, maar MEDIUM — één station-woord náást een ander onderwerp ('pand naast busstation', besluit 2026-09-11) is geen OV-bericht; in de samenvatting moet een tweede OV-woord bijkomen (r"(?