Prefextract - projekt inteligentní filtrace článků v RSS čtečkách
Úvod
V dnešní informační společnosti lidé jsou zahlceni informacemi, a tak je zájem o to aby se k nim dostávaly informace které chtějí a zbytečně se nezaobírali těmi, které je pouze zdržují. Cílem tohoto projektu je poskytnou možnosti pro filtrování článků novinového typu v RSS čtečkách.
Většina podobných projektů buď filtruje:
- Pomocí ručně zadaných filtrů (např. regulární výrazy)
- Ručním zařazením do taxonomie administrátory RSS agregátorů
- Neznámým proprietárním způsobem
Tento projekt problematiku řeší extrakcí klíčových slov z abstraktů článků pomocí metod NLP, umožněním uživateli pozitivně nebo negativně hodnotit klíčová slova, jejichž hodnocení se použije při načítání dalších článků k například jejich případné filtraci pokud agregátní hodnocení článku klesne pod nastavenou prahovou hodnotu.
Architektura a implementace
Projekt je složen ze dvou částí - server Prefextract a klientská část Learnfilter je plugin do RSS čtečky Tiny Tiny RSS.
Server Prefextract je napsán v jazyce Python, využívá knihovny topia.termextract pro extrakci klíčových slov, a knihovny NLTK k práci s Wordnetem pro vyhledávání hypernym od slov, i od kterých se získává ohodnocení, což "urychluje učení" aplikace uživatelovým (ne)zájmům.
Komunikace mezi serverem a klienty probíha přes HTTP rozhraní výměnnou JSON dat.
Learnfilter plugin je implementován v jazyce PHP a implementuje plugin hooky zpracovávající uživatelské rozhraní, nastavení a komunikaci se serverem.
Aplikace je dělána pro práci s anglickým jazykem, tedy anglickými novinovými zprávami, což je kvůli knihovně na extrakci klíčových slov a volně dostupnému anglickému Wordnetu přímo jako součástí NLTK. V případě, že by tyto části byly doplněny ekvivalenty pro jiné jazyky a aplikace rozšířena o způsob zjištění jazyka RSS feedu, tak nic nebrání jejímu využití pro ostatní jazyky.
Zdrojový kód včetně instrukcí k instalaci na github.com (lokální kopie z 6.6.2013)
Závěr
Vyhodnocení aplikace proběhlo uživatelským testováním se zpětnou vazbou formou dotazníku (viz finální prezentace projektu). Uživatelé mají zájem o koncept aplikace, avšak krátká doba testování a algoritmus pro extrakci klíčových slov, který extrahoval málo obecnějších slov a spíše vlastní jména apod., nedali uživatelům moc výsledů z hlediska filtrovací funkce aplikace. Takže určitě jsou možnosti ke zlepšení, zejména tedy v algoritmu extrakce klíčových slov a podpoře jazyků.Kontakt
Jiří Procházka ojirio@gmail.com