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:

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)

Learnfilter
	screenshot

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