diora-web/docs/news-text.md
mrwnslz e3d597a3c0
Some checks failed
Test / e2e (push) Waiting to run
Build and push Docker image / build (push) Successful in 16s
Test / test (push) Has been cancelled
Nachrichten: Lesehilfen ohne Sprachmodell (feeds/textproc.py, docs/news-text.md)
- Floskeln je Quelle (Spendenboxen u. ä.) verschwinden aus dem Artikel
- Überblick einer Meldung aus mehreren Quellen: Zusammenfassung (LexRank + MMR),
  was nur ein Bericht sagt, Wortwahl je Quelle, dieselbe Meldung in der anderen Sprache
  (GET /feeds/stories/<id>/overview/)
- Themen-Chips über den Nachrichten (topics auf der ersten Seite, ?ids= filtert)
- before= mit unkodiertem '+' gibt keinen 500 mehr
- sw v133

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 17:07:51 +02:00

2.5 KiB
Raw Permalink Blame History

Lesehilfen für Nachrichten (feeds/textproc.py)

Klassische Textverfahren, kein Sprachmodell; reines Python auf dem Server, für die Nachrichten eines Nutzers auf einmal. Ausprobiert an echten Nachrichten (Oktober 2026), übernommen wurde, was dort trug.

Floskeln

Sätze, die eine Quelle unter mindestens drei ihrer letzten 40 Artikel setzt (Spendenboxen, „Diese Nachricht wurde … gesendet“, Abo-Hinweise), gehören zu keinem Artikel. GET /feeds/items/<id>/ liefert den Artikel ohne die Absätze, die nur aus solchen Sätzen bestehen; der Überblick sieht sie gar nicht erst. Je Quelle sechs Stunden zwischengespeichert.

Überblick einer Meldung

GET /feeds/stories/<id>/overview/ – nur für Meldungen aus mindestens zwei Quellen:

  • summary: drei Sätze aus allen Berichten, die am meisten von dem sagen, was alle sagen (LexRank), ohne einander zu wiederholen (MMR); [{source, text}];
  • novel: je Quelle bis zu zwei Sätze, denen in keinem anderen Bericht etwas ähnelt (tf-idf-Kosinus < 0,2), ohne die schon im Überblick; {source: [text]};
  • words: je Quelle ihre eigenen Wörter für das Ereignis (Log-Odds gegen die übrigen Berichte, mit Dirichlet-Prior; nur großgeschriebene Formen, also Substantive und Namen); {source: [word]};
  • related: dieselbe Meldung in der anderen Sprache (Deutsch/Englisch) – Meldungen der letzten zwei Tage, die mindestens drei seltene Namen teilen (nach idf gewichtet, Summe ≥ 17); Story-Objekte wie in /feeds/news/.

Die App zeigt das über dem Artikel als „Überblick aus N Quellen“, darunter die Meldungen in der anderen Sprache. Android lädt die Überblicke ungelesener Meldungen mit vor (Repo.kt), damit sie auch offline da sind.

Themen

Die erste Seite von GET /feeds/news/ hat topics: [{label, ids}]: Meldungen der letzten zwei Tage, die von derselben Sache handeln, nicht nur vom selben Ereignis. Gruppiert nach Titel und Anriss (Leader-Clustering gegen die Mittelpunkte, drei Runden). Ein Thema hat mindestens drei Meldungen aus mindestens zwei Quellen, liegt dicht beieinander (mittlere Ähnlichkeit zum Mittelpunkt ≥ 0,3) und hat ein Etikett aus mindestens zwei großgeschriebenen Wörtern, die die meisten seiner Meldungen teilen. Mit category nur der Anteil der Kategorie. ?ids=1,2,3 liefert genau diese Meldungen (ein Thema antippen).

Verworfen

Stimmung (SentiWS), steigende Begriffe, Fortsetzungsketten (Nachrichten laufen nach zwei Tagen ab), Clickbait-Erkennung: im Versuch zu ungenau oder ohne Nutzen. Persönliche Reihenfolge: erst, wenn genug gelesen ist, um daraus zu lernen.