[PetersWerkWiki] [TitleIndex] [WordIndex

Een aparte database speciaal voor het snel zoeken naar woorden in de tweets van de afgelopen week.
Zie demo van Erik: zoeken op Twitter
Eigen implementatie: http://www.let.rug.nl/~kleiweg/bin/dagtwform.py

Kort na middernacht wordt er een database aangemaakt voor de afgelopen dag. Dit gebeurt met dagtweets.go.

Database voor één dag, compleet met indexen, gebruikt bijna 6Gb schijfruimte, en kost een klein uur om aan te maken.

Deze databases zijn beschikbaar op volker via:

mongo 127.0.0.1:27018/twitter20120626

De cijfers aan het eind geven de datum aan.

Collecties, indexering aangegeven met onderstreping:

db.tweets

Elk object is een tweet

text

string. De text van de tweet.

words

array van strings. De tweet opgesplitst in tokens, in kleine letters.

hour

integer. Uur waarin de tweet is geplaatst op twitter.

block

integer: 0 - 3. Geeft aan uit welk 6-uur-blok de tweet komt.

interval

integer: 0 of groter. Geeft aan uit welk interval binnen het blok de tweet komt.

db.counts

Elk object is een woord, omgezet naar kleine letters.

word

string. Het woord

fracts

lijst van floats. Fractie van de tweets in elk interval waarin het woord voorkomt.

block

integer: 0 - 3. Geeft aan voor welk 6-uur-blok dit is.

db.times

Bevat slechts vier objecten, voor elk 6-uur-blok één.

times

lijst van floats. Gemiddeld tijdstip van tweets in elk interval, als fracties van uren.

counts

lijst van integers. Geeft de grootte aan van elk interval.

block

integer: 0 - 3. Bloknummer

db.status

Als de database klaar is, dan bevat deze collectie dit object.

ready

boolean: true

Bloknummers kunnen afwijken. Bijvoorbeeld, als er blokken van 8 uur zijn gebruikt, dan zijn de bloknummers 0, 1 en 2. Bij blokken van 12 uur zijn de bloknummers 0 en 1.

Tests

Voorbeeld van opvragen van tellingen van één dag voor tweets waar een bepaald woord in voorkomt, met het script dagtst.js:

mongo -quiet 127.0.0.1:27017/twitter20120626 dagtst.js > table.txt

Weergave met R:

a <- read.table("table.txt")
plot(a, main="moe", xlab="tijd", ylab="percentage", axes=FALSE, ylim=c(0, max(a[,2])), col="grey")
points(a[,1], rep(0, length(a[,1])), col="grey", pch="|")
abline(h=0, v=0:24, col="grey", lty="dotted")
lines(lowess(a, f=.05), col="blue", lwd=2)
axis(1, at=0:24, labels=0:24%%24)
axis(2)

moe.png

Voorbeelden

v

vanaf datum

t

optioneel

tot en met datum

w1, w2, w3, w4

elk een lijst van woorden

l

optioneel

locale

r1, r2, r3, r4

optioneel

type zoekterm voor w1, w2,w3 en w4: any, all, exact of regex

Voor meerdere dagen (maximaal 28):

Meerdere woorden (maximaal 4):

Annotatie in het Russisch (zie locale -a op volker voor geldige codes):

Samenvoegen van tellingen voor meerdere woorden, bijvoorbeeld eerst fiets en fietsen apart, daarna samen:

Reguliere expressies (traag), voorbeeld waarbij tweede woord een reguliere expressie is:

Dit alles werkt met dit Python-script: dagtwimg.py

Attachments

Download alles: TwitterData/WeekCompact.tar.gz

  • [get | view] (2012-10-15 21:12:07, 4.4 KB) [[attachment:compleet.go]]
  • [get | view] (2012-10-04 12:49:42, 2.1 KB) [[attachment:daglijst.py]]
  • [get | view] (2012-08-22 13:36:15, 0.5 KB) [[attachment:dagtrunc.py]]
  • [get | view] (2012-06-28 11:11:16, 0.7 KB) [[attachment:dagtst.js]]
  • [get | view] (2012-10-08 10:21:02, 3.8 KB) [[attachment:dagtweets-cmp.go]]
  • [get | view] (2012-09-20 14:28:52, 3.6 KB) [[attachment:dagtweets-test.go]]
  • [get | view] (2012-10-15 21:12:08, 6.3 KB) [[attachment:dagtweets.go]]
  • [get | view] (2012-10-09 13:26:27, 11.6 KB) [[attachment:dagtwform.py]]
  • [get | view] (2012-09-05 13:24:53, 7.2 KB) [[attachment:dagtwimg.py]]
  • [get | view] (2012-10-04 12:44:09, 2.1 KB) [[attachment:dagtwlist.py]]
  • [get | view] (2012-09-28 16:52:17, 2.4 KB) [[attachment:dagtwtrends.py]]
  • [get | view] (2012-09-24 10:38:31, 5.9 KB) [[attachment:dagtwvb.py]]
  • [get | view] (2012-06-28 10:56:03, 86.0 KB) [[attachment:moe.png]]
 All files | Selected Files: delete move to page copy to page


CategoryTwitter CategoryMongodb CategoryGo