diora-web/docs/news-text.md

47 lines
2.5 KiB
Markdown
Raw Permalink Normal View 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.