Portál AbcLinuxu, 1. května 2025 15:20
Dneska si jako správné novomediální *** ukážeme, jak jednoduše udělat naprosto zbytečný (ale vypadá to fakt pěkně) word cloud s pomocí programu R project.
Co k tomu potřebujeme:
Jako první si pustíme R konzoli a nainstalujeme potřebné balíčky.
# instalace knihoven install.packages("Rfacebook") install.packages("tm") install.packages("wordcloud") # nacteni knihoven library(Rfacebook) library(tm) library(wordcloud)
Jakmile si seženeme facebook token, ze stránky https://developers.facebook.com/tools/explorer, můžeme se zvesela pustit do načítání dat z Facebooku pomocí R. Nám bude stačit načíst 300 komentářů z jakékoliv Facebook stránky. A trochu si je předpřipravíme.
# nacteni tokenu do promenne token <- "token_pro_graph_api" # nacteni prispevku stranky do promenne page <- getPage("biooo.cz", token=token, n=300) # vytvoreni korpusu, ktery bude obsahovat pouze sloupec se zpravami corpus <- Corpus(VectorSource(page$message)) # slova z korpusu zmenšíme, odstraníme interpunkci a čísla corpus <- tm_map(corpus, tolower) corpus <- tm_map(corpus, removePunctuation) corpus <- tm_map(corpus, removeNumbers)
V další fázi vytvoříme z předpřipraveného korpusu matici slov a spočteme jejich frekvenci.
ap.tdm <- TermDocumentMatrix(corpus) ap.m <- as.matrix(ap.tdm) ap.v <- sort(rowSums(ap.m), decreasing=TRUE) ap.d <- data.frame(word = names(ap.v), freq=ap.v)
Již se zdárně blížíme k cíli, teď si načteme do proměnné předpřipravenou paletu barev:
require(RColorBrewer) pal <- brewer.pal(8,"Dark2")
Nyní stačí již jen nastavit soubor výstupu a spustit samotné vytvoření word cloudu!
png("wordcloud.png",width=1024,height=1024) wordcloud(ap.d$word,ap.d$freq, scale=c(10,.2),min.freq=3,max.words=150, random.order=FALSE, rot.per=.15, colors=pal) dev.off()
TADÁ! Máme náš první word cloud.
Spousta věcí! Především:
Přece absolutně k ničemu! P.S. Hlavně to neukazujte markeťákům, nebo vám utrhají ruce!
Zdroj: https://gist.github.com/josefslerka/2344144
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.