47 lines
2.5 KiB
Markdown
47 lines
2.5 KiB
Markdown
|
|
# 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.
|