Upload
matiss-rikters
View
109
Download
3
Embed Size (px)
Citation preview
LATVIJAS UNIVERSITĀTE
DATORIKAS FAKULTĀTE
UNIVERSĀLAS METODES
TWITTER DATU ANALĪZEI
BAKALAURA DARBS
Autors: Matīss Rikters
Studenta apliecības nr. mr08089
Vadītājs: Dr.dat. Uldis Bojārs
RĪGA 2012
2
ANOTĀCIJA
Šī bakalaura darba mērķis ir izpētīt, kā tiek analizēti dati no sociālā tīkla Twitter un
atrast lietderīgākās metodes, kas palīdz šādus datus analizēt. Šajā darbā tiks apskatītas
metodes, risinājumi un rīki, kas varētu būt noderīgi jebkādas tematikas Twitter datu analīzei.
Darba gaitā, pielietojot apskatītās metodes un risinājumus, tiks izveidots un aprakstīts rīks
universālai Twitter datu analīzei.
Atslēgvārdi: sociālais tīmeklis, sociālie tīkli, Twitter, tīmekļa zinātne
3
ABSTRACT
Universal methods for Twitter data analysis
The objective of this thesis is to explore how data from the Twitter social network can
be analyzed and to find the most useful methods that would help to analyze such data. This
thesis will describe the methods, solutions and tools that could be used for analyzing Twitter
data of any topic. In the course of the work a universal tool for analyzing Twitter data will be
developed using the methods described.
Keywords: social web, social networks, Twitter, web science
4
ABSTRACT
Universal-Methoden zur Twitter-Datenanalyse
Der ziel dieses Bachelorarbeits ist es zu erforschen wie analysiert man Daten aus dem
sozialen Netzwerk Twitter und zu finden die nützlichsten Methoden die helfen würden diese
Daten zu analysieren. Dieser Bachelorarbeit wird die Methoden, Lösungen und Werkzeuge
beschreiben das könnten für die Analyse von Twitter-Daten von jedem beliebigen Thema
verwendet werden. Im Verlauf der Arbeit wird auch ein universelles Werkzeug für die
Analyse von Twitter-Daten entwickelt mit Hilfe dieser Methoden und beschrieben werden.
Stichwörter: Soziales Web, Soziales Netzwerk, Twitter, Web Wissensacht
5
SATURS
APZĪMĒJUMU SARAKSTS.....................................................................................................6 IEVADS .....................................................................................................................................7 1. SOCIĀLAIS TĪMEKLIS....................................................................................................8
1.1. Twitter ........................................................................................................................8 2. PROBLĒMAS APRAKSTS.............................................................................................11 3. ESOŠIE TWITTER DATU ANALĪZES RĪKI ................................................................13
3.1. ThinkUp....................................................................................................................13 3.2. IMB BigSheets .........................................................................................................15 3.3. The Archivist ............................................................................................................17 3.4. TweetReach ..............................................................................................................19 3.5. Row Feeder...............................................................................................................21 3.6. Apkopojums .............................................................................................................23
4. PILOTPROJEKTS ...........................................................................................................24 4.1. Twitter datu vākšana.................................................................................................24 4.2. Datu apstrāde ............................................................................................................26 4.3. Rezultāti....................................................................................................................26 4.4. Secinājumi ................................................................................................................28
5. TWITTER ZIŅU APSTRĀDES PROCESS....................................................................29 5.1. Datu vākšana.............................................................................................................29 5.2. Datu priekšapstrāde ..................................................................................................30
5.2.1. Teksta attīrīšana................................................................................................30 5.2.2. Morfoloģiskā analīze ........................................................................................31 5.2.3. Tokenizācija......................................................................................................31 5.2.4. Twitter ziņas temata noteikšana .......................................................................31 5.2.4.1. Ar klasifikatoru.............................................................................................32 5.2.4.2. Pēc atslēgvārdiem.........................................................................................33 5.2.4.3. Tēmas izvēle no saraksta ..............................................................................33
5.3. Twitter ziņas analīze.................................................................................................33 5.3.1. Metadati ............................................................................................................33 5.3.2. Vārdi un Kolokācijas ........................................................................................34 5.3.3. Atslēgvārdu efektivitāte....................................................................................34 5.3.4. Emotikoni .........................................................................................................35
6. UNIVERSĀLS TWITTER DATU ANALĪZES RĪKS....................................................36 6.1. Prasību specifikācija .................................................................................................37
6.1.1. Funkcionālās prasības.......................................................................................37 6.1.2. Ārējās saskarnes prasības .................................................................................40
6.2. Projektējuma apraksts...............................................................................................41 6.2.1. Saskarnes projektējums ....................................................................................41 6.2.2. Algoritmu projektējums....................................................................................45
6.3. Rīka testēšana ...........................................................................................................46 6.4. Salīdzinājums ar esošajiem rīkiem ...........................................................................48
SECINĀJUMI ..........................................................................................................................50 PATEICĪBAS ...........................................................................................................................51 IZMANTOTĀ LITERATŪRA ................................................................................................52
6
APZĪMĒJUMU SARAKSTS
Apzīmējums Skaidrojums
API Application Programming Interface (angļu val.).
Lietojumprogrammu programmēšanas interfeiss – noteikts
likumu un specifikāciju kopums, ar kuru palīdzību
lietojumprogrammas var komunicēt viena ar otru.
Haštags Hashtag (angļu val.).
Birka jeb vārds vai frāze, kas sākas ar simbolu #. Parasti apzīmē
kādu konkrētu tēmu, kas piemīt tvītam.
NLP Natural Language Processing (angļu val.).
Virziens, kas pēta datora mijiedarbību ar cilvēka dabisko valoda,
dotajā kontekstā, analizēt cilvēku rakstītos tekstus.
Tvīts Tweet (angļu val.).
140 simbolus gara ziņa Twitter sociālajā tīklā.
Twitter Mikroblogošanas sociālais tīkls, kurā cilvēki var rakstīt īsas
ziņas jeb tvītus.
URL Uniform Resource Locator (angļu val.).
Simbolu virkne, kas satur standartizētu resursa adresi Internetā.
7
IEVADS
Pieaugot sociālo tīklu, kā, piemēram, Twitter, Facebook un Google+, popularitātei,
cilvēki tajos atstāj arvien pieaugošu daudzumu dažādas informācijas. Pavisam nesen Twitter
reģistrēto lietotāju skaits sasniedza 500 miljonus lietotāju un Facebook – 800 miljonus [5],
kamēr Google+ reģistrēto lietotāju skaits ir ap 90 miljoniem [6]. Lai gan daļa šo datu ir nekam
nederīgi jeb tā saucamie trokšņi, tomēr tajos netrūkst arī noderīgas informācijas par
visdažādākajām tēmām, saišu uz citām interesantām lapām, saturīgu birku, atsauču uz citiem
lietotājiem un citas informācijas, kas varbūt no pirmā acu uzmetiena nav tik acīmredzami
lietderīga.
Paņemot pietiekami lielu daudzumu šādas vairāk vai mazāk saturīgas informācijas un to
izanalizējot, var atklāt iepriekš neievērotas pazīmes par konkrēto ziņu tēmu, piemēram, vācot
savu draugu tvītus par ēšanu, spilgti izcēlās, cik daudz kāds tvīto par kūkām, cits par kafiju.
Šādā veidā var arī izpētīt, kā interneta vidē uzvedas kādi konkrēti ziņu autori. Neapšaubāmi,
tas noderētu dažādiem uzņēmumiem, lai pavērotu, ko par tiem runā tauta, kā arī valsts
iestādēm, kam, iespējams, vajadzīgi kādi statistiski dati. Tikpat labi arī vienkāršiem mājas
lietotājiem var sagribēties pasekot līdzi, ko par kādu notikumu vai vietu runā citi, piemēram,
par politiku pirms vēlēšanām.
Šajā darbā plānots izpētīt paņēmienus, ar kādiem līdzīgas iespējas tiek nodrošinātas
pašlaik, un arī atrast vēl citus, iespējams, labākus veidus, kā analizēt Twitter ziņu datus. Galu
galā, liekot lietā apskatītās metodes, izveidot universāli pielietojamu Twitter datu analīzes
rīku.
8
1. SOCIĀLAIS TĪMEKLIS
Sākotnējā tīmekļa versija jeb tā saucamais WEB 1.0 tika izstrādāta tā, ka tikai augsta
ranga profesionāļi spēja tajā ievietot saturu un viss, uz ko bija spējīgi parastie mājas lietotāji,
bija tikai šo saturu apskatīt. Pie tam, šis saturs pārsvarā bija tikai tekstuāla informācija ar
samērā maz attēliem, video un audio informāciju. Tajā bija vairākas problēmas – ierobežots
satura daudzums, ierobežotas cilvēku radošās izpausmes, arī ierobežotas biznesa izplešanās
iespējas. Tāpēc, lai risinātu šīs problēmas, lēnām sāka rasties WEB 2.0 jeb sociālais tīmeklis,
kas ir balstīts uz lietotāju pašu radītu saturu internetā [1]. Sociālais tīmeklis sastāv no daudzo
interneta lietotāju savstarpējām attiecībām plašajā tīmekļa vidē. Tas ietver visas interneta
mājas lapas un programmatūru, kas atbalsta un veicina sociālās mijiedarbības starp to
lietotājiem. Kā piemērus varētu minēt sociālo tīklu mājas lapas, dažādas interneta spēles,
atsevišķus interneta veikalus. Viens no galvenajiem šādu lapu aspektiem ir sekmēt
mijiedarbību starp cilvēkiem ar līdzīgām interesēm, kā arī palīdzēt tiem atrast lietas, kas viņus
varētu interesēt, būt noderīgas. Lēnām un ne tik uzkrītoši sāk pilnveidoties arī nākamā – trešā
tīmekļa versija (WEB 3.0), kas balstīta uz nozīmes piešķiršanu saražotajiem datiem
(semantisko tīmekli) un personalizāciju [2].
Palielinoties interneta lietotāju skaitam, palielinās arī viņu aktivitātes tīmeklī un līdz ar
to arī šo cilvēku savstarpējās attiecības internetā paliek arvien uzskatāmākas un pieejamas citu
apskatei. Mūsdienās simtiem miljonu interneta lietotāju ir virtuāli saistīti ar saviem draugiem
vai veido jaunas draudzības, veido un dalās ar dažādu internetā izvietojamu saturu –
fotogrāfijām, video, mājas lapām, blogiem. Tas viss pateicoties sociālā tīmekļa sniegtajām
iespējām. Tieši šis lietotāju radītais saturs (user generated content) šobrīd ir viena no straujāk
augošajām satura formām internetā. Labums tajā ir tas, ka lietotāju radītais saturs ir pavisam
neparedzams. Tomēr to var izmantot, lai prognozētu citas lietas, kā, piemēram, analizējot
Twitter lietotāju nosakņojumu bijis iespējams diezgan precīzi prognozēt izmaiņas akciju tirgū
[7].
1.1. Twitter
Viens no mūsdienu sociālā tīmekļa gigantiem ir sociālais tīkls Twitter. Twitter ir
mikroblogošanas platforma, kurā lietotāji var dalīties ar tekstuālām ziņām garumā līdz 140
rakstu zīmēm jeb tā saucamajiem tvītiem. Tas tika izveidots un palaists darbībā 2006. gada
vasarā. Šobrīd tas ir sasniedzis ļoti ietekmīga medija statusu ar vairāk kā 500 miljoniem
reģistrētu lietotāju, no kuriem vairāk kā 140 miljoni ir aktīvi lietotāji, kuri ik dienu saraksta
vairāk kā 340 miljonus tvītu [8]. Twitter ir savas apkārtnes izpratnes līdzeklis, kas ļauj sekot
9
līdzi notikumiem citu cilvēku, zīmolu, slavenību jaunumiem, un uzzināt svaigākās ziņas no
ziņu portāliem vai firmām. Tikpat labi Twitter ir informācijas apraides līdzeklis, lai lietotāji
varētu citiem sniegt informāciju ar tvītu palīdzību, vai saziņas instruments, ļaujot lietotājiem
vienam otram atbildēt, uzsākt dialogus, polilogus. Tā kā tvīti, atšķirībā no ziņām citos
sociālajos tīklos, ir tik īsi, tos bieži vien ir iespējams viennozīmīgi interpretēt un līdz ar to arī
kopumā vienkāršāk analizēt.
Viena liela Twitter atšķirība no citiem tīkliem ir tā, ka tajā starp lietotājiem pastāv viena
virziena saites. Respektīvi – tur nav obligātas abpusējas draudzības, kā, piemēram, Facebook
draudzības, kur Jānis ir Pētera draugs un Pēteris ir Jāņa draugs, bet tā vietā vienpusēja
sekošana citiem lietotājiem, kur, ja Pēteris seko Jānim, tas nenozīmē, ka Jānis obligāti seko arī
Pēterim. Citiem vārdiem sakot, Twitter lietotāju savstarpējās saites ir vienvirziena jeb
asimetriskas. Līdz ar to rodas nevis viens konkrēts skaits ar draugiem, bet gan lietotāji, kuri
seko (followers) un lietotāji, kuriem tiek sekots (following).
1.1. att. Twitter ziņa
Twitter sfērā ir arī savi īpašie jēdzienu apzīmējumi. Līdzās jau iepriekš minētajam
tvītam, par kuru tiek dēvēta katra 140 zīmju garā ziņa, ir arī tādi apzīmējumi kā retvīts,
haštags, DM un reply. Retvīts ir kāda cita autora tvīta pārpublicēšana saviem sekotājiem.
Tvīti tiek pārpublicēti vai nu ar pogas „Retweet” palīdzību, vai arī, pārkopējot oriģinālā autora
tvītu un tam priekšā pierakstot savu komentāru, ja ir vieta, un lielos burtus „RT”, kas apzīmē
„ReTweet”. Par haštagu jeb latviski birku tiek dēvēti vārdi, kas tvītā sākas ar „#” simbolu.
Birkas parasti tvītos lieto, lai identificētu kādu konkrētu tēmu, notikumu vai pasākumu.
Birkas arī atvieglo pārējiem Twitter lietotājiem momentā atrast citus tvītus ar tādu pašu birku,
uz tā uzklikšķinot. DM jeb direct message ir privāta vēstule no viena lietotāja otram, kas arī
drīkst būt maksimāli 140 simbolus gara. DM iespējams sūtīt tikai saviem sekotājiem.
Visbeidzot reply jeb atbilde ir tvīts, kurā tiek atbildēts uz kādu citu tvītu.
10
Twitter sociālais tīkls tāpat kā daudzi citi piedāvā lietot arī API saviem servisiem.
Twitter piedāvā divus API veidus – REST API un Streaming API [9]. Twitter REST API
piedāvā līdzekļus darbam ar jau esošajiem datiem, turpretim Streaming API palīdz strādāt ar
reālā laikā dabūjamiem tvītiem. Ar REST API var gan meklēt un iegūt jau uzrakstītos tvītus,
gan arī iegūt informāciju par pašiem lietotājiem. Tomēr meklēšanas rezultātus var iegūt tikai
par tvītiem, kas rakstīti pēdējo sešu līdz deviņu dienu periodā. Streaming API ir domāts, lai
pēc atbilstības noteiktiem atslēgvārdiem vai kādam citam kritērijam ievāktu reālajā laikā
uzrakstīto tvītu plūsmu. Tieši šī API, kā arī lielā skaita samērā īso teksta ziņu dēļ Twitter ir
ļoti pateicīgs datu ievākšanai un analizēšanai.
11
2. PROBLĒMAS APRAKSTS
Ideja radīt universāli izmantojamu Twitter datu analīzes rīku radās 2011. gada rudens
specsemināra Web Science ietvaros. Šī semināra laikā arī tika sākts darbs pie Twitter datu
analīzes pilotprojekta (4. nodaļa) ar nosaukumu „TwitĒdiens”1. TwitĒdiena tēma ir Twitter
dati par ēšanu un ēdieniem. Tas nepārtraukti ievāc tvītus, izmantojot Twitter Streaming API
[9], analizē tos un atspoguļo rezultātus tīmekļa vietnē un Nokia Belle telefoniem paredzētā
lietojumprogrammatūrā. Tas izrādījās ļoti interesants projekts un ļāva apstiprināt vairākus jau
iepriekš nojaušamus faktus – uz ziemu popularitāte pieauga mandarīniem, tā arī uz šo to, kas
nebija uzreiz tik acīmredzams – tējai un šokolādei ir lielāka popularitāte kā kafijai. Praktiski
uzreiz pēc šī servisa palaišanas parādījās pieprasījums no vairākiem lietotājiem par līdzīgu
rīku izveidi par viņiem aktuālām tēmām, kā, piemēram, par politiku, foto, mūziku un citām.
Tas vēl jo vairāk liecināja par universāla Twitter datu analīzes rīka nepieciešamību. Problēma
ir, ka šobrīd nav atrodama universāla lietojumprogrammatūra, kura pilnībā apmierinātu visas
lietotāju, kuri iemēģināja pilotprojektu, prasības. Šīs prasības iekļauj:
1. Informācijas ievākšanu no Twitter
• Ievākšanu reālā laikā no Twitter plūsmas – meklēšanas rezultāti ir vairāk vai mazāk
statiski, taču reālā laika plūsma ir dinamiska. Pie tam Twitter mēdz filtrēt [1017]
meklēšanas rezultātus, turpretim Twitter plūsma netiek filtrēta.
• Par jebkādiem atslēgvārdiem – tā kā Twitter ļauj tvītu ievākšanā norādīt līdz pat 400
dažādiem atslēgvārdiem, būtu noderīgi šo ierobežojumu apzināties un ievākšanu veikt
pēc vairāk kā tikai viena atslēgvārda.
• Iespēju ātri un ērti ievāktos datus eksportēt – daļai lietotāju galvenais ir ērtā veidā tikt
pie strukturētiem datiem, kurus pēc tam paši varētu analizēt vai kā citādi izmantot.
2. Pēc iespējas plašāku un sīkāku ievākto datu analīzi
• Citviet jau bieži pielietotās metodes
o Tvītu skaita izmaiņas kādā laika periodā – ja tvīti tiek vākti ilgāku laiku, vienmēr
ir interesanti paskatīties, kuros brīžos to skaits pieaudzis visvairāk.
o Tvītos biežāk pieminēto vārdu, lietotājvārdu, birku analīze – bieži vien, vācot pēc
konkrēta atslēgvārda, visos ievāktajos tvītos sastopams ne vien šis atslēgvārds bet
arī citi vārdi, birkas, kas apraksta konkrēto tēmu.
• Kā arī varbūt ne tik plaši pielietotās
1 http://www.twitediens.tk
12
o Tvītu attēlošana uz kartes – ja tiek savākts pietiekams daudzums tvītu, tad var arī
ievērot, ka daļa to autoru ir norādījuši savu atrašanās vietu un tos var attēlot uz
kartes.
o Tvītu metadatu analīze – katram tvītam līdzi nāk arī kaudze dažādu metadatu, kas
to apraksta un kurus ir vērtīgi apskatīt sīkāk.
o Tvītos sastopamo emotikonu analīze – emotikoni apraksta tvīta autora
emocionālo nostāju, līdz ar to pēc tiem var secināt kaut vai, cik priecīgi vai bēdīgi
ir tvītotāji.
o Meklēšanā izmantoto atslēgvārdu analīze – ja tvīti tika ievākti pēc vairākiem
atslēgvārdiem un garā laika periodā, noteikti ir vērts paskatīties, kuri no
atslēgvārdiem bijuši visražīgākie.
3. Ērti iegūstamu un lietojamu rīku
• Bezmaksas – ne visi var atļauties iegādāties dārgas licences.
• Atvērtā pirmkoda – tāpēc, lai citi varētu to uzlabot, papildināt, pielāgot savām
specifiskajām vajadzībām.
• Lietotājam draudzīgu – tādu, lai to varētu izmantot ne vien speciāli apmācīti cilvēki,
bet arī parasti mājas lietotāji, kurus pēkšņi ieinteresējusi kāda tēma.
• Viegli uzstādāmu, pielāgojamu – bez striktām un grūti realizējamām augstām
operētājsistēmu, programmatūras vai aparatūras prasībām.
Par šī darba mērķi tika izvirzīts izzināt dažādus paņēmienus, kā darboties ar Twitter
datiem, tos apstrādāt, analizēt un attēlot lietotājam viegli saprotamā veidā. Darba plānā ietilpst
arī realizēt praktiski izpētītās metodes, uzbūvējot Twitter datu analīzes platformu, kas atbilst
arī visām izteiktajām prasībām.
13
3. ESOŠIE TWITTER DATU ANALĪZES RĪKI
Šobrīd tīmeklī ir atrodami dažādi tvītu analīzes rīki – katrs gan ar vispārīgām, gan tikai
sev raksturīgām īpašībām. Daži ir bezmaksas, citi maksas, vēl pāris ir ar bezmaksas pamata
iespējām un plašākām maksas iespējām. Taču tādu, kas kaut daļēji atbilst šī darba izvirzītajai
problēmai, ir samērā maz. Šajā nodaļā tiek apskatīti pāris tuvākie atrastie šādu rīku kandidāti.
Salīdzinājumam tika izvēlēti pieci rīki – ThinkUp, IBM BigSheets, The Archivist
TweetReach un Row Feeder. Izvēlēti tieši šie pieci, jo tie spēj iespējami vairāk tuvoties
izvirzītās problēmas risinājumam. Tie tiks salīdzināti pēc šādiem kritērijiem:
• Cena – bezmaksas vai par kādu summu. Lieliem uzņēmumiem varētu arī nebūt
problēma samaksāt, bet parastais mājas lietotājs naudiņu drīzāk pažēlos;
• Vide - Tīmeklis, Windows, Linux, utt. Visērtākā vide neapšaubāmi ir tīmeklis, jo
tīmekļa pārlūks ir pieejams gandrīz katrā ar internetu savienojamā ierīcē (datorā,
telefonā, planšetē);
• Vai ir atvērtā pirmkoda risinājums – iespēja apskatīt pirmkodu liela priekšrocība
tiem, kas vēlas izveidot ko līdzīgu vai arī saprast, kā tieši darbojas konkrētā
programmatūra;
• Vai ievāc reālā laika datus – tā kā meklēšanā esošie dati tiek filtrēti, pilnvērtīgāka
informācija iegūstama no Twitter plūsmas;
• Vai ir iespēja eksportēt datus – lai arī cik bagātas nebūtu katra rīka analīzes
metodes, noderīga būtu spēja eksportēt datus kādā vispāratzītā formātā, lai ar tiem
būtu iespējams strādāt arī citviet;
• Analīzes metodes;
• Tipiskais pielietojums – kādiem lietotājiem un nolūkiem rīks paredzēts;
• Priekšrocības;
• Trūkumi.
3.1. ThinkUp
ThinkUp2 ir bezmaksas atvērtā pirmkoda tīmekļa lietojumprogramma, kas uzkrāj
iepriekš autentificēta lietotāja datus no sociālajiem tīkliem Twitter, Facebook un Google+
lokālā datu bāzē un ik pēc kāda noteikta laika perioda tos atjaunina. ThinkUp šos datus
atspoguļo pārskatāmos grafikos un diagrammās, kas palīdz saskatīt jēgu lietotāju sociālo tīklu
darbībās.
2 http://thinkupapp.com
14
Thinkup ir paredzēts kā lielām organizācijām, kam ir aktuāli uzzināt par savu biznesu
sociālajos tīklos, tā arī aktīviem sociālo tīklu lietotājiem, kuri vēlas dziļāk izpētīt savas
darbības tīmeklī.
Attēlā 5.1. redzama ThinkUp darbvirsma (Dashboard), kurā tiek grafiski attēlotas
jaunākās darbības, sekotāju izmaiņa pa dienām un pa nedēļām, Twitter klientu pielietojuma
sadalījums un ziņu tipi. Katru no tām sadaļām var apskatīt arī tuvāk. Sīkāk izpētāma ir arī
ziņu sadaļa (Tweets), draugu sadaļa (Who You Follow) un saišu sadaļa (Links). Ja ziņās ir
pieejami dati par atrašanās vietu, tad ThinkUp arī tiem spēj izveidot vizualizāciju un attēlot uz
kartes.
3.1. att. ThinkUp darbībā
Salīdzinājums pēc kritērijiem:
3.1. tabula
ThinkUp novērtējums
Kritērijs Vērtība
Cena Bezmaksas
Vide Tīmekļa programmatūra
Atvērtā pirmkoda risinājums Jā
Spēja vākt reālā laika datus Nē
15
Iespēja eksportēt datus Jā
Analīzes metodes • Analizē lietotāja aktivitāti sociālajos tīklos un attēlo
to grafikos.
• Spēj attēlot citu lietotāju atbildes uz ziņām kartē.
• Ļauj meklēt tvītos un eksportēt tos kā .csv failu.
Tipiskais pielietojums Personīgā konta pārskats
Priekšrocības • Sākuma skatā jeb darbvirsmā (Dashboard) ērti
pārskatāmas svarīgākās pēdējā laika aktivitātes.
• Spēj analizēt ne vien Twitter, bet arī Facebook un
Google+.
Trūkumi • Analizē tikai autentificētā lietotāja datus.
• Twitter ziņas tekstu sīkāk neanalizē, vienīgi atpazīst,
kuras ziņas bijušas jautājumi.
ThinkUp ir diezgan ērti lietojams, iespējām bagāts un kopumā patīkams rīks, kuru
iespējams lietot dažādiem nolūkiem. Fakts, ka ThinkUp pirmkods ir visiem brīvi apskatāms,
padara to vēl jo patīkamāku citiem programmatūras izstrādātājiem. Taču tā viens lielais
trūkums – spēja vākt tikai autentificētā lietotāja datus - varētu būt pietiekams iemesls
neizvēlēties ThinkUp un tā vietā meklēt citu risinājumu.
3.2. IMB BigSheets
IBM BigSheets [11] tīmekļa lietojumprogrammatūra ar gan bezmaksas, gan arī maksas
versiju. IBM BigSheets izmanto Apache Hadoop [12] ietvaru, lai veiklāk spētu operēt ar
lieliem strukturētu un arī nestrukturētu datu apmēriem. Kā vienu no strukturētu datu
piemēriem IBM BigSheets spēj analizēt arī Twitter datus.
16
3.2. att. IBM BigSheets darbībā
Salīdzinājums pēc kritērijiem:
3.2. tabula
IBM BigSheets novērtējums
Kritērijs Vērtība
Cena Pamata versija pieejama bez maksas
Vide Tīmekļa programmatūra (nepieciešama vai nu Red Hat
Enterprise Linux vai SUSE Linux Enterprise Server servera
operētājsistēma)
Atvērtā pirmkoda risinājums Nē
Spēja vākt reālā laika datus Jā
Iespēja eksportēt datus Jā
Analīzes metodes • Piedāvā pievienot spraudņus, kas spēj analizēt
valodu, tajā skaitā – sentimentu.
• Kopā ar IBM Many Eyes vai kādu citu spraudni
izveido datiem dažādas vizualizācijas, kā, piemēram,
birku mākoni.
Tipiskais pielietojums Biznesa izpēte
Priekšrocības • Kopā ar spraudņiem ļoti plašas un spēcīgas iespējas.
• Spēj tikt galā ar ļoti lieliem datu daudzumiem.
• Spēj ložņāt arī pa tīmekļa lapām vai ielādēt
17
analizējamos datus no datora.
Trūkumi • Diezgan sarežģīti uzstādīt.
• Samērā neērta lietošana - ar datiem jādarbojas kā ar
izklājlapām.
Tā kā IBM BigSheets ir nopietns biznesa rīks, tas noteikti nebūs piemērots visiem. Pat
tad, kad tas ir veiksmīgi uzstādīts, lietošana nav ļoti patīkama, it īpaši bez papildus
spraudņiem. Lai gan kopumā spēcīgs, IBM BigSheets tomēr nebūs rīks ko izvēlēsies parastais
mājas lietotājs vai pat neliels uzņēmums, kuram nav darīšanas ar milzīgiem datu apjomiem.
3.3. The Archivist
The Archivist3 ir serviss, kas arhivē Twitter ziņas, kuras tas iegūst, meklējot pēc
atslēgvārdiem, izmantojot Twitter Search API. Savākto ziņu arhīvu tas ļauj saglabāt datorā
dažādos formātos, kā arī izanalizēt un attēlot rezultātus viegli uztveramās vizualizācijas. The
Archivist var lietot kā tīmekļa programmu vai Windows programmu.
3.3. att. The Archivist Windows versija
3 http://archivist.visitmix.com/
18
3.4. att. The Archivist tīmekļa versija
Salīdzinājums pēc kritērijiem:
3.3. tabula
The Archivist novērtējums
Kritērijs Vērtība
Cena Bezmaksas
Vide Pieejama gan tīmekļa programmas versija, gan Windows
versija.
Atvērtā pirmkoda risinājums Nē
Spēja vākt reālā laika datus Nē
Iespēja eksportēt datus Jā (tikai Windows versijā)
Analīzes metodes • Windows versijā grafiski attēlo ziņu skaitu laika gaitā
un aktīvākos lietotājus.
• Tīmekļa versijā ziņas izanalizē plašāk, tajā skaitā arī
nedaudz no paša ziņas teksta.
• Arhīvu iespējams saglabāt kā XML vai teksta failu.
Tipiskais pielietojums Statistikas izpēte
Priekšrocības • Dažu sekunžu laikā uzkrāj un izanalizē pēdējā laika
tvītus par ievadītajiem atslēgvārdiem.
• Attēlo rezultātus sešos (tīmekļa versijā) vai divos
19
(Windows versijā) pārskatāmos grafikos.
Trūkumi • Windows versijā attēlo ļoti maz rezultātus.
• Tīmekļa versija analizē samērā maz no ziņas teksta –
tikai populārākos vārdus. Windows versija vispār
neanalizē pašu tekstu.
Ar The Archivist ļoti īsā laika periodā iespējams tikt pie pieklājīga datu apjoma un laika
gaitā to vēl papildināt. Ir viegli darboties gan ar tīmekļa versiju, kura piedāvā vairākus
analīzes skatus savāktajiem datiem, gan ar Windows versiju, kurai analīzes iespēju ir mazāk,
taču, kura piedāvā eksportēt savāktos datus dažādos formātos. Diemžēl šim rīkam trūkst
iespējas vākt reālā laika datus, bet, neskatoties uz to, tas varētu būt lietotājiem pievilcīgāks kā
divi iepriekš apskatītie.
3.4. TweetReach
TweetReach4 ir serviss, kas izanalizē Twitter ziņas un sagatavo par tām atskaites. Tas
spēj uzkrāt ziņas vai nu tās meklējot ar Twitter Search API (bezmaksas) vai arī ievācot reālā
laika ziņas ar Twitter Streaming API (par samaksu). TweetReach galvenokārt ir paredzēts, lai
atspoguļotu ziņu sniegumu (reach) pēc meklējamā atslēgvārda jeb to, cik daudzi lietotāji
varētu būt šīs ziņas izlasījuši. Papildus tam TweetReach arī atspoguļo ietekmīgākos Twitter
kontus un jaunākās ziņas par konkrēto tēmu. Šis rīks ļauj ērti sekot līdzi uzņēmumu
mārketinga kampaņām, sekot līdzi kādam zīmolam vai notikumam, vai vienkārši papētīt kāda
atslēgvārda efektivitāti Twitter sociālajā tīklā.
4 http://tweetreach.com
20
3.5. att. TweetReach darbībā
Salīdzinājums pēc kritērijiem:
3.4. tabula
TweetReach novērtējums
Kritērijs Vērtība
Cena Pamata versija pieejama bez maksas, PRO versija sākot no
$84 mēnesī
Vide Tīmekļa programmatūra
Atvērtā pirmkoda risinājums Nē
Spēja vākt reālā laika datus Jā (PRO versijā)
Iespēja eksportēt datus Jā
Analīzes metodes • Uzskaita iespējamo ziņas ekspozīciju skaitu, kā arī
lietotājus ar lielāko ietekmi par tēmu, visvairāk
21
pārpublicētās ziņas
• Attēlo tvītu skaita izmaiņu laika gaitā
Tipiskais pielietojums Statistikas izpēte / Biznesa izpēte
Priekšrocības • Piedāvā atskaites saglabāt kā Excel vai PDF
dokumentus.
• Par nelielu samaksu piedāvā arī bezmaksas (ne PRO)
lietotājiem saglabāt pilna izmēra atskaiti – līdz 1500
ziņām.
Trūkumi • Bezmaksas versijā apskata tikai 50 jaunākās ziņas.
• Lai vāktu reālā laika datus, arī jāmaksā.
TweetReach bezmaksas versija labi ilustrē savāktos datus un ar to ir ērti darboties, bet
tā kā tajā tiek apskatīti tikai 50 jaunākie tvīti, lielas jēgas no tās nav, tāpēc lietotājiem tiešām
lietderīga ir tikai PRO versija. Tā kā par PRO versiju ir jāmaksā, tā noteikti nederēs ikvienam,
tomēr pat nelielie uzņēmumi būtu spējīgi iegādāties lētāko no TweetReach PRO versijām.
3.5. Row Feeder
Row Feeder5 ir serviss, ievāc datus no Twitter plūsmas un uzģenerē par tiem atskaites.
Tam ir Bezmaksas iespēja ievākt līdz 500 tvītiem mēnesī ar vienu atslēgvārdu un par maksu
arī vairāk. Tomēr tā kā 500 tvītu mēneša laikā ir diezgan maz, tas, iespējams, paredzēts tikai
kā maksas produkts. Pie tam ļoti populārus atslēgvārdus šajā servisā bezmaksas versijā nav
iespējams vākt, piemēram, ievadot atslēgvārdu „android” vai „blackberry”, Row Feeder
paziņoja, ka šī vārda vidējais ziņu daudzums stundā ir pārāk liels, lai to vāktu bezmaksas
versijā. Papildus Twitter, šobrīd beta testa versijā Row Feeder piedāvā ievākt datus arī no
Facebook.
5 https://rowfeeder.com
22
3.6. att. Row Feeder darbībā
Salīdzinājums pēc kritērijiem:
3.5. tabula
Row Feeder novērtējums
Kritērijs Vērtība
Cena Pamata versija pieejama bez maksas, PRO versija - sākot no
$35 mēnesī.
Vide Tīmekļa programmatūra
Atvērtā pirmkoda risinājums Nē
Spēja vākt reālā laika datus Jā
Iespēja eksportēt datus Jā
Analīzes metodes • Tvītu skaita laika gaitā attēlošana.
• Sarunu analīze starp tvītotjiem.
• Atrašanās vietas analīze.
• Vairāku atslēgvārdu salīdzināšana.
• Ietekmes analīze (ar datiem no Klout6)
Tipiskais pielietojums Statistikas izpēte / Biznesa izpēte
Priekšrocības • Piedāvā atskaites saglabāt kā Excel dokumentus.
• Bezmaksas ievācamo tvītu skaitu iespējams
papildināt, piesaistot citus lietotājus.
Trūkumi • Bezmaksas versijā ļauj ievākt tikai 500 ziņas mēnesī
un tikai pēc viena atslēgvārda.
6 http://www.klout.com
23
• Atskaites pieejamas tikai Excel dokumentu formā un
nekā citādi.
Row Feeder ir diezgan līdzīgs TweetReach, tomēr tas dod vairāk iespējas bezmaksas
lietotājiem – ērtā veidā vākt tvītus pēc kāda viena atslēgvārda un sagatavot dažādas analīzes
atskaites. Arī PRO versija, kas sniedz iespēju vākt lielākus datu apjomus, Row Feeder ir
lētāka nekā TweetReach. Tomēr Row Feeder piedāvā tikai vienu faila formātu, kas varētu
traucēt citiem lietotājiem apskatīt analīzes rezultātus.
3.6. Apkopojums
No pieciem apskatītajiem rīkiem visērtākais, lietošanai patīkamākais un iespējām
bagātākais izrādījās ThinkUp. Tas bija arī vienīgais, kuram ir atvērtais pirmkods. Tomēr
ThinkUp ir viens ļoti vērā ņemams ierobežojums – tas vāc tikai konkrētu autentificētu
lietotāju datus un nespēj ievākt datus no Twitter meklēšanas un Twitter plūsmas. Datu
ievākšana no plūsmas tiek realizēta tikai IBM BigSheets, TweetReach (maksas versijā) un
Row Feeder, kuri bezmaksas lietotājiem piedāvā samērā maz iespēju. Visiem apskatītajiem
rīkiem bija iespēja eksportēt datus. Tiem arī bija dažādi izanalizēti skati uz datiem, kas tomēr
kopumā bija vairāk vai mazāk līdzīgi.
Lietotājiem, kuriem pietiek ar meklēšanā atrodamajiem rezultātiem un kuri vēlas
bezmaksas produktu, ieteicams izmantot The Archivist, jo, to lietojot, ļoti ātri var tikt pie
pietiekami liela apjoma datiem un tos arī ērti pārskatīt. Tiem, kuri vēlas bezmaksas datus no
Twitter plūsmas, jālieto Row Feeder ar ierobežojumiem. No maksas produktiem labākie ir
TweetReach un Row Feeder, jo, atšķirībā no trešā maksas rīka – IBM BigSheets, šie divi bija
gan vienkāršāk lietojami, gan iebūvētajām iespējām bagātāki.
Tā kā visiem šiem rīkiem tika konstatēti vai nu trūkumi vai arī neatbilstība kādam no
izvirzītajiem kritērijiem, tomēr ir nepieciešams izveidot spēcīgu, universālu un visaptverošu
Twitter analīzes rīku, kas pārklāj visas prasības.
24
4. PILOTPROJEKTS
Pirms ķeršanās pie universāla Twitter analīzes rīka izstrādes, lai izmēģinātu minētās
vispārīgās analīzes metodes un saprastu, ko ar tām var iegūt, tika izstrādāts neliels
pilotprojekts ar nosaukumu „TwitĒdiens”. Tas ir balstīts uz tvītu vākšanu par vienu konkrētu
tēmu – ēšanu.
4.1. Twitter datu vākšana
Tvīti tiek vākti pēc atslēgvārdiem, par kuriem galvenokārt tika izvēlēti latviešu valodā
biežāk lietotie darbības vārdi, kas raksturo ēšanas procesu. Tie nav saistīti ar konkrētu ēdienu
un aptver plašāku meklējamo tvītu kopu nekā, ja tvītu vākšanā tiktu izmantots ierobežots
skaits ar atslēgas vārdiem, kas ir ēdienu nosaukumi.
Ziņu vākšana notiek ar php programmu, izmantojot Twitter Streaming API metodi
‘statuses/filter’ [9].
Par katru ziņu tiek ievākti un datubāzē ierakstīti šādi dati:
• ziņas ID;
• atrašanās vietas nosaukums, ja tāds ir;
• ziņas saturs;
• ziņas autora lietotājvārds;
• ziņas datums un laiks;
• ziņas noskaņojums.
Tas nav gluži viss, ko piedāvā Twitter par katru ziņu, bet konkrēti šie dati šķita noderīgākie
tālākai analīzei.
Pievienojot ziņu datubāzei, tam arī tiek noteikta sentimenta (noskaņojuma) klasifikācija
– pozitīvs, negatīvs vai neitrāls – ar uClassify [13] teksta autora noskaņojuma klasifikatoru.
Klasifikators tika izveidots un uztrenēts speciāli šim projektam.
Ievākšanas brīdī katra ziņa tiek sadalīta pa vārdiem un katrs vārds tiek pārbaudīts, vai tāds
vārds jau atrodas vārdu datubāzē un vai tas ir nomarķēts kā ēdiens/dzēriens. Ja tāds vārds
datubāzē ir atrodams (no kāda cita tvīta) un tas ir marķēts kā ēdiens/dzēriens, tad ievāktais
vārds arī tiek pievienots datubāzei kopā ar tvīta ID, kurā tas atrasts, un arī nomarķēts kā
ēdiens / dzēriens. Ja tāds vārds ir datubāzē, bet nav marķēts kā ēdiens/dzēriens, tas netiek
pievienots. Ja šāda vārda vēl nav datubāzē, tad tas kopā ar tvīta ID, kurā vārds atrasts, tiek
pievienots rindā uz manuālu marķēšanu. Vārdi tiek marķēti ar roku, līdz ko parādās divi
vienādi vēl nenomarķēti vārdi. Projekta sākumā tika manuāli nomarķēti apmēram 15000
vārdu, kas aizņēma vairākas stundas, bet kopš tā laika (trīs mēnešos) jauni parādījušies vien
25
ap desmit jaunu vārdu. Šādā veidā marķējot, ja vārds ir ēdiens vai dzēriens, tam tiek
pievienota gan vārda nominatīva pamatforma, gan vārda angliskais tulkojums, kas
nepieciešams gan saistīto datu, kā, piemēram, ēdiena apraksta angļu valodā, gan uztura
piramīdas grupas, kurai pieskaitāms konkrētais vārds, atrašanai.
Ēdieni tika dalīti sešās grupās, kas ir veselīgas uzturas piramīdas [16] sastāvdaļas:
• Graudaugu produkti, maize, biezputras, makaroni (6);
• Dārzeņi (5);
• Augļi, ogas (4);
• Piena produkti (3);
• Gaļa, olas, zivis (2);
• Tauki, saldumi (1).
Dzērieni tika dalīti divās grupās: alkoholiskie un bezalkoholiskie.
Par katru vārdu datu bāzē tiek ierakstīti šādi dati:
• vārds kāds tas parādās ziņā;
• vārds nominatīva pamatformā, ja tas ir ēdiens/dzēriens;
• vārds angļu valodā, ja tas ir ēdiens/dzēriens;
• grupa uztura piramīdā, ja tas ir ēdiens/dzēriens;
• ziņas ID, kurā vārds ticis pieminēts, ja tas ir ēdiens/dzēriens;
• vai vārds ir, vai nav ēdiens/dzēriens.
Piemērs:
4.1. tabula
Piemērs vārdam datu bāzē
Vārds zupu
Nominatīvs zupa
Vārds angļu valodā Soup
Grupa 6 (Graudaugu produkti, maize,
biezputras, makaroni)
Ziņas ID 122284398044390000
Ir ēdiens? 1 (ir)
Atsevišķā datubāzes tabulā tiek uzglabātas arī visas vietas, no kurām lietotāji rakstījuši
savus Twitter ziņas. Informācija par vietu tiek ņemta no Twitter ziņas, kur tā ir dota teksta
formā – pilsētas nosaukums, novada nosaukums, reizēm pat ielas nosaukums. Ar Google
Maps API [15] palīdzību no šāda teksta tiek noskaidrotas precīzas atrašanās vietas
koordinātas. Šie dati nepieciešami, lai tīmekļa lietojumprogrammai atvieglotu darbu un tai
26
katru reizi nebūtu jāuzmeklē katras vietas koordinātas. Tā tiek papildināta katru reizi, kad tiek
atvērta ‘Twitter gardēžu karte’7 – lapas sadaļa, kurā atzīmētas visas vietas - tīmekļa
lietojumprogrammā un starp ziņām ir parādījusies kāda jauna vieta, par kuru vēl nav datu šajā
tabulā.
Par katru atrašanās vietu datubāzē tiek ierakstīti sekojoši dati:
• vietas nosaukums;
• garums (longitude) un platums (latitude).
4.2. Datu apstrāde
Katrs tvīts tiek saglabāts datu bāzē gan vesels, gan sadalīts pa vārdiem. Pirms vārdi no
katra tvīta tiek saglabāti datubāzē, no tiem tiek atmestas visas interneta lapu adreses, kas sākas
ar http vai www, visi skaitļi, pieturzīmes un jaunas rindas simboli. Katrs tvīts tiek padots
speciāli uztrenētam uClassify klasifikatoram [13], kurš to iedala pozitīvā, neitrālā vai negatīvā
kategorijā. Šis iedalījums tālāk tiek izmantots, apkopojot ar ēdieniem saistītos tvītus un dalot
tos pēc noskaņojuma. Sākotnēji ar roku tika nomarķēti apmēram 750 tvīti un padoti
klasifikatoram apmācībai. Pēc tam tika automātiski saklasificēti arī pārējie tvīti.
Tomēr šis klasifikators uzrāda pārāk lielu negatīvi noskaņoto tvītu skaitu, kas rada aizdomas,
ka tas darbojas diezgan neprecīzi. Manuāli marķējot, no 750 tvītiem kā negatīvie tika atzīmēti
ļoti maz – apmēram 15 - 20. Tātad tvītus ar negatīvu noskaņojumu varētu sagaidīt mazāk par
5%, bet šobrīd ir ap 12% negatīvo. Ļoti iespējams, ka turpmākā projekta gaitā tvītu
noskaņojuma analizēšana tiks pārtraukta un tā vietā tiks apskatīti tvītos atrodamie emotikoni.
4.3. Rezultāti
Tvīti tiek nepārtraukti vākti un glabāti datubāzē. Projektam ir publiska interneta lapa8,
kurā iespējams apskatīt ievākto informāciju no dažādiem rakursiem :
• autentificēties ar savu Twitter kontu un redzēt savu draugu tvītus par ēšanu;
• apskatīt, par kādiem ēdieniem tiek tvītots;
• apskatīt, kurās nedēļas dienās un kuros laika posmos par ēšanu tvīto visbiežāk;
• apskatīt, no kurām valstīm, pilsētām tvīto un cik daudz;
• apskatīt aktīvāko ēdāju-tvītotāju topu;
• kā arī kopējo statistiku par visu projektu.
Radītais pirmkods, kā arī datubāze un dokumentācija ir brīvi pieejama9.
7 http://twitediens.tk/karte 8 http://www.twitediens.tk
27
Divarpus mēnešu laikā (06.10.2011 – 17.01.2012) tika savākti 60956 tvīti. 38370
(63%) no tiem ir pieminēts kāds ēdiens vai dzēriens. Tos rakstījuši 17028 dažādi lietotāji, no
kuriem 2091 (12%) bija norādījuši savu atrašanās vietu. No tvītiem, kuros bija norādīta
atrašanās vieta, 1882 ir rakstīti Latvijā, 203 – ārzemēs. No Latvijas tvītiem visvairāk nāk
tieši no Rīgas – 1131 (60%). [4.1. att. Tvītu statistika]
Visā projekta gaitā ikvienam bija pieejama interneta lapa, lai gan tā netika īpaši
reklamēta. To laika posmā no 7. novembra 2011 līdz 16. janvārim 2012 apskatīja 705
apmeklētāji. Aktīvākās dienas bija 14. novembris, 30. novembris un 9. novembris ar 65, 48
un 46 apmeklējumiem. Visvairāk apskatītā lapas sadaļa bija ‘Statistika’ ar 1267 skatījumiem.
32% no šiem apmeklētājiem nāca no Twitter, 20% - pa tiešo ievadot adresi, 17% no
draugiem.lv un pārējie no citām vietām.
Visaktīvākais tvītotājs par ēšanu ir ar 88 tvītiem par ēšanas tēmām. Par ēšanu visvairāk
tiek tvītots svētdienās un visaktīvākās stundas ir no septiņiem līdz deviņiem vakarā, kad
cilvēki parasti ietur vakariņas vai arī ir sarūpējuši sev kādu gardumu, ko izbauda pēc
saspringtās dienas. Šis laiks nav nemaz tik vēlu, pieņemot, ka cilvēki gulēt iet ap
vienpadsmitiem. Veselīgi ir pēdējo dienas maltīti ieturēt ne vēlāk kā 2 stundas pirms
gulētiešanas [16]. Dotajā vēlā rudens, agrās ziemas laika periodā populārākie produkti bija
mandarīni, šokolāde, tēja, saldējums, pica, zupa un kafija. Projekta sākumposmā un stabili
starp populārākajiem ēdieniem dominēja šokolāde, bet, tuvojoties Ziemassvētkiem, Latvijas
Twitter lietotāji ātri topa augšgalā izvirzīja daudz veselīgākos mandarīnus.
4.1. att. Tvītu statistika
9 https://github.com/saifer/TwitEdiens
28
4.4. Secinājumi
Šis pilotprojekts radīja labu priekšstatu par Twitter-sfērā pieejamo informāciju - kā to
apkopot, apstrādāt, izanalizēt un attēlot. Tas arī radīja izpratni par to, kādas metodes būs
noderīgas jebkuras tēmas tvītu analīzei, kādas nederēs citām tēmām, kā arī veicināja idejas
par citiem paņēmieniem, kas vēl būtu klāt pieliekami.
29
5. TWITTER ZIŅU APSTRĀDES PROCESS
Līdzās vispārīgajām Twitter ziņu analīzes metodēm un tām, kuras tika pielietotas
pilotprojektā, universālam tvītu analīzes rīkam varētu būt lietderīgas arī vairākas citas, kas,
iespējams, jau pastāvošajos tvītu analizatoros netiek pielietotas. Šajā nodaļā tiks aprakstīts
viss ziņu process tieši tādā secībā, kādā paredzēta to izpilde. Šis process sākas ar datu
vākšanu, tad datu priekšapstrādi un beidzot ar pašu analīzi [4].
5.1. Datu vākšana
Atšķirībā no pilotprojekta un līdzīgi kā pieminētajos esošajos rīkos, datus vācot, būtu
noderīgāk saglabāt ne vien pašu ziņu, tās ID, datumu, autoru un atrašanās vietu, bet arī citus
metadatus, kā, piemēram, informāciju par to, vai ziņa ir bijusi pārpublicēta, u.c.
Vācot datus no Twitter, būtu jāsaglabā iespējami vairāk informācijas, ko tas piedāvā,
tomēr ne gluži visu. Twitter par katru tvītu sniedz ļoti sīki detalizētus datus10, kuri vietām
atkārtojas, kā, piemēram, tvīta unikālais identifikators ir pieejams gan kā „id” – skaitliska
vērtība, gan kā „id_str” – tekstuāla vērtība. Daļu no šiem liekajiem datiem var atmest, lai lielā
daudzumā glabājot datu bāzē tvītus, tā tomēr tik veikli nepārpildītos un darbotos vēl raitāk.
Kārtīgāk papētot piedāvātos datus, darba autors secina, ka visnoderīgākie turpmākai
analīzei varētu būt šādi:
• Par pašu tvītu
o Tvīta ID
o Tvīta teksts
o Tvīta autora lietotājvārds
o Tvīta izveidošanas datums
o Ģeogrāfiskās atrašanās vietas nosaukums, no kuras rakstīts tvīts
o Autora lietotājvārds, kuram atbild tvīts
o Tvīta rakstīšanas avots
• Par tvīta autoru
o Pilnais autora vārds
o Profila attēla adrese
o Lietotāja ID
o Mājas lapas adrese
o Lietotājvārds
10 https://dev.twitter.com/docs/api/1/get/statuses/show/%3Aid
30
o Apraksts
• Par birkām
o Teksts
o Tvīta id, kurā birka parādījusies
• Par tvītā pieminētajiem lietotājiem
o Pieminētā lietotāja lietotājvārds
o Tvīta id, kurā lietotājs pieminēts
• Par saitēm tvītos
o Pilnais URL
o Attēlojamais URL
o Tvīta id, kurā saite pieminēta
5.2. Datu priekšapstrāde
Pirms uzsākt tālāku tvītu analizēšanu, jāveic datu priekšapstrāde un normalizācija, lai
analīzes fāzē būtu vieglāk ar šiem datiem apieties. Priekšapstrādes fāzē būtu, pirmkārt, jāattīra
teksts no visādiem liekiem simboliem un vārdiem. Otrkārt, jānosaka, par kādu tēmu būs tvīti
un, treškārt, tvīts jāsadala daļās jeb tokenos.
5.2.1. Teksta attīrīšana
Teksta attīrīšanas jeb normalizācijas posms sadalāms divās daļās – paša tvīta attīrīšanā
un tvītā esošo vārdu jeb tokenu attīrīšanā. Pirms tvīta teksta saglabāšanas datu bāzē no tā būtu
ieteicams izvākt visus pieminētos lietotājvārdus, kas Twitter ir atšķirami ar „@” zīmi priekšā,
un aizstāt tos ar kādu vienu simbolu virkni, kas identificētu, ka tajā vietā tvīta tekstā pieminēts
lietotājs, bet visur būtu vienāda un netraucētu, analizējot tekstu. Līdzīgi ieteicams aizstāt visas
tīmekļa adreses (URL) no tvītiem. Vēl varētu arī attīrīt tvīta tekstu no tajā sastopamajām
birkām, kas Twitter sākas ar simbolu „#”. Tomēr bieži vien šīm birkām ir arī diezgan liela
saturiskā vērtība, tāpēc tas, vai attīrīšanā iekļaut birkas, būtu jāizvērtē pirms katras tvītu
vākšanas konkrēto atslēgvārdu un tēmas kontekstā. Tā kā datu bāzē atsevišķi tiek saglabāti
tvītos pieminētie lietotājvārdi, tīmekļa adreses un birkas, arī pēc to aizstāšanas tvītā ar kādu
citu simbolu virkni, pēc nepieciešamības būs iespējams salikt kopā oriģinālo tvīta saturu.
Pirms teksta sadalīšanas vārdos jeb tokenizācijas būtu jāattīra teksts arī no visādām
pieturzīmēm (. , ! ? ; : ( ) { } [ ] / \ < >), simbolu virknes „RT”, kas Twitter apzīmē ziņas
pārpublicēšanu un citādi nav nozīmīga. Iespējams, vēl būtu jāizvāc no tokeniem simbolu
virknes, kas sastāv tikai no skaitļiem, un simbolu virknes, kas īsākas par 1 simbolu, bet līdzīgi
kā ar birkām, tas būtu jādara atkarībā no ievācamo tvītu konteksta.
31
5.2.2. Morfoloģiskā analīze
Vēl kā pēdējais solis pirms tvīta sadalīšanas tokenos būtu jāveic tvītā esošo vārdu
morfoloģiskā analīze, un kā tokeni jāsaglabā tikai vārdu pamatformas. Šāda vārdu pārvēršana
to pamatformās palīdzētu analīzes fāzē noskaidrot tieši cik, kur un kā katrs vārds pieminēts,
neatkarīgi no formas, kurā tas pierakstīts.
Pirms var sākt morfoloģisko analīzi, vispirms jānoskaidro, kādā valodā teksts rakstīts.
Šim nolūkam var izmantot dažādus mašīnmācīšanās paņēmienus, taču visērtāk būtu atkal
izmantot kādu jau gatavu teksta valodas noteikšanas servisa. Vienu tādu piedāvā uClassify11.
Kad valoda noskaidrota, jāpielieto kāds konkrētās valodas morfoloģiskais analizators.
Internetā brīvi pieejami daudzu valodu morfoloģiskie analizatori. Viens no tiem ir pat latviešu
valodai – Matemātikas un informātikas institūta mākslīgā intelekta laboratorijas tīmekļa
serviss – morfoloģiskais analizators / sintezators12.
Vienīgie vārdi, kurus varētu izlaist morfoloģiskajā analīzē, varētu būt par tvītu tematu
noskaidrotās frāzes un vārdu salikumi, kas iegūti no saistīto datu resursiem. Tie būtu jāatstāj
tādās formās, kādās tie ir, lai vēlāk, kad tos būs nepieciešams izmantot, vārdu formas
neatšķirtos no tām, kas iegūstamas no saistīto datu resursiem.
5.2.3. Tokenizācija
Tokenizācija jeb teksta sadalīšana pa vārdiem ir pēdējais datu priekšapstrādes solis.
Tajā jāņem vērā gan vārdi un vārdu salikumi, kas iegūti no saistīto datu resursiem, gan vārdu
pamatformas, kas iegūtas morfoloģiskajā analīzē. Visi katra tvīta vārdi, izņemot tos, kas sakrīt
ar no saistīto datu resursiem iegūtajiem, jāsadala vietās, kur ir atstarpes un jāsaglabā datu
bāzē. Ar šādiem tokeniem ir ievērojami vieglāk strādāt un tos analizēt, nekā tas būtu ar visu
tvīta tekstu kopā.
5.2.4. Twitter ziņas temata noteikšana
Twitter ziņas temata noteikšana nav obligāts solis, kurš nav tik būtisks priekšapstrādes
procesā, taču, ja tas tiek izpildīts, tālākā analīzē var veikt citas interesantas darbības. Tā kā šo
soli iespējams izlaist, tas pieminēts kā pēdējais no priekšapstrādes punktiem, bet, ja tas tiek
realizēts, tā vieta secībā būtu pirms tokenizācijas.
11 http://www.uclassify.com/browse/uClassify/Text-Language 12 http://valoda.ailab.lv/ws/morph/
32
Ja zināms ziņu precīzs vai kaut aptuvens temats, par to var iegūt lietderīgu informāciju
no saistīto datu (linked data) resursiem [3]. Līdz ar semantiskā tīmekļa attīstību parādās arvien
vairāk brīvi pieejamo datu kopu, no kurām lielākās un populārākās ir DBPedia13,
GeoNames14, UMBEL15. Viena no saistīto datu kopām varētu būt kādas kategorijas jēdzienu
uzskaitījums, ko var iegūt no DBPedia. Piemēram, ja zināms, ka tvītu tēma ir par karsto
dzērienu tēmu, tad no saistīto datu avotiem varētu iegūt, ka pie karstajiem dzērieniem pieder
tēja, kakao, kafija u.c. Līdz ar šīs informācijas iegūšanu vēlāk analīzes fāzē to varētu likt lietā,
pārskaitot, cik kuri dzērieni pieminēti utt. Cits veids, kā izmantot šādi iegūtu informāciju –
tokenizācijas posmā neatdalīt vārdu savienojumus, kas pieskaitāmi pie noteiktās kategorijas
jēdzieniem, lai pēcāk ar tiem varētu strādāt kā patstāvīgiem tokeniem.
Tematikas noteikšanai izvēlēti divi veidi, kā automātiski būtu iespējams to noskaidrot,
un viens manuālai tēmas noteikšanai. No automātiskajiem pirmais ir ar iepriekš uztrenētu
klasifikatoru, klasificējot daļu pirmo ievākto tvītu. Otrais - no atslēgvārdiem, pēc kuriem
atlasīti tvīti – vai nu vienīgo atslēgvārdu, ja ievadīts tikai viens, uzskatīt par tematu un
turpmāk darboties ar tādu pieņēmumu, vai ar to pašu klasifikatoru, kas minēts pirmajā veidā,
noteikt vairāku atslēgvārdu tematu. Trešais veids, lai gan būdams visprecīzākais, tomēr
pieprasa lielāku lietotāja piepūli, ir atrast savu izvēlēto tematu plašajā pieejamajā visu tematu
hierarhijā. Tas būtu izmantojams, ja pirmie divi automātiskie vai nu nenostrādātu, vai arī
sniegtu apšaubāmus rezultātus. Viens no avotiem, kur ņemt sarakstu ar iespējamajām tēmām,
ir DBPedia.
5.2.4.1. Ar klasifikatoru
Viens paņēmiens automātiskai tēmas noskaidrošanai būtu to noteikt ar speciāli šim
mērķim uztrenētu teksta klasifikatoru. Klasifikatoram padodot pirmos n tvītus no visa korpusa
vai arī visus tvītus, ja to kopskaits nepārsniedz n, varētu noteikt šo n tvītu tematiku un
turpmāk pieņemt, ka tā atbilst arī visam pārējam korpusam. Skaitlis n būtu jāizvēlas vismaz
10 vai vairāk, jo, tā kā tvīti ir samērā īsi, ar mazāk par 10 tvītiem varētu būt pagrūti noteikt
tematu. Tomēr, izvēloties pārāk lielu n vērtību, var gadīties, ka klasificēšanas process ieilgst,
it īpaši, ja tiek izmantots kāds ārējs teksta klasifikācijas serviss.
Pašu teksta klasifikatoru var veidot ar kādu no mašīnu mācīšanās paņēmieniem, vai arī
izvēlēties kādu jau gatavu teksta klasificēšanas servisu tīmeklī. Tieši šādam nolūkam
13 http://dbpedia.org/ 14 http://www.geonames.org/ 15 http://umbel.org/
33
paredzēts serviss uClassify16. Tajā ir pat jau gatavs uztrenēts teksta klasifikators, kas nosaka
angļu valodā rakstīta teksta piederību kādam no šādiem tematiem - Arts, Business,
Computers, Games, Health, Home, Recreation, Science, Society, Sports.
5.2.4.2. Pēc atslēgvārdiem
Diezgan drošs un precīzs veids, kā noteikt tvītu tematu ir - pēc atslēgvārdiem. Teiksim,
ja tvītu vākšanai ievadīts tikai viens atslēgvārds, tad ir ļoti liela iespējamība, ka tas ir arī
galvenais savākto ziņu temats. Ja ievadīti vairāki atslēgvārdi, tad tie jāklasificē līdzīgi kā
iepriekš minēts par tvītiem.
5.2.4.3. Tēmas izvēle no saraksta
Tomēr visprecīzākais paņēmiens, kā tikt pie tvītu temata, ir pieprasīt lietotājam to
izvēlēties no kāda plaša, visaptveroša saraksta. Sarakstu ar dažādiem tematiem un arī to
sīkākiem iedalījumiem var iegūt no DBPedia galveno tēmu sadalījuma17. Par katru no
galvenajām tēmām tur var atrast arī sīkākus iedalījumus apakštēmās un arī dažādus ar katru
no kategorijām un apakškategorijām saistītus jēdzienus, kuri tad būs noderīgi turpmākajos
posmos.
5.3. Twitter ziņas analīze
Līdz ko saņemtie dati apstrādāti un normalizēti, var uzsākt analīzi. Analīze sadalīta
vairākās daļās – metadatu, vārdu, kolokāciju, atslēgvārdu un emotikonu analīzē. Šo daļu
secība nav svarīga.
5.3.1. Metadati
Pie tvīta metadatiem pieskaitāmi visi datu vienumi, kas kopā ar pašu tvīta tekstu tiek
padoti no Twitter API tajā skaitā datums, ģeogrāfiskā atrašanās vieta, retvītu (pārpublicējumu)
skaits, publicēšanas avots, lietotājvārds, kuram tiek atbildēts, un citi. Visus šos datus var gan
attēlot patstāvīgos grafikos, gan to izmaiņu laika gaitā. Šo grafiku attēlošanai ļoti parocīgi
izmantot Google Chart Tools18. Turpretim visas ģeogrāfiskās atrašanās vietas var atzīmēt uz
pasaules kartes, izmantojot Google Maps API19.
16 http://www.uclassify.com/browse/uClassify/Topics 17 http://dbpedia.org/page/Category:Main_topic_classifications 18 https://developers.google.com/chart/ 19 https://developers.google.com/maps/
34
Pie Metadatiem var skaitīt arī haštagus jeb birkas, tvītos pieminētos lietotājus un
WWW saites. Lai gan šie dati parādās arī pašā tvīta tekstā, tie tiek arī atdalīti atsevišķi un līdz
ar katru tvītu no API padoti kā metadati. Gan birkas, gan pieminētos lietotājus, kā arī WWW
saites ļoti pārskatāmi ir attēlot vārdu mākoņu formā (word cloud), kas ir vārdu grafiska
attēlošana pēc to biežuma tekstā – jo biežāk vārds tekstā pieminēts, jo lielāks tas tiek attēlots
un pretēji. Ļoti iespējām bagātu šāda veida vārdu mākoņu attēlošanu piedāvā interneta serviss
Wordle20.
5.3.2. Vārdi un Kolokācijas
Provizoriski interesantu analīzes rezultātu noteikti varētu sniegt tvītu tekstā visbiežāk
pieminētos vārdu izpēte. Ja tvītu ievākšana notiek pēc liela atslēgvārdu skaita, šajos biežāk
pieminētajos vārdos noteikti būs iespējams atrast vārdus, kuri varētu noderēt nākamajā
ievākšanas procesā par to pašu tēmu. Tā kā visi vārdi priekšapstrādes fāzē tiek pārveidoti
pamatformās, to nebūs pārāk daudz dažādu un biežāk pielietotie spilgti izcelsies. Tāpēc arī
atsevišķos visbiežāk pieminētos vārdus vispārskatāmāk būs attēlot vārdu mākonī.
Dabīgās valodas ir pilnas ar kolokācijām jeb cieši saistītiem vārdu savienojumiem, kas
ik pa laikam atkārtojas. Tie varētu būt, piemēram, personvārdi, vietvārdi, organizāciju
nosaukumi, produkti. Līdzīgi kā atsevišķos vārdus, arī kolokācijas var attēlot vārdu mākonī,
lai tās būtu pārskatāmākas.
Vēl cits interesants veids, kā pielietot kolokācijas, ir, izmantojot kādu brīvi pieejamu
nosaukto vienumu atpazīšanas (named entity recognition) servisu, kā, piemēram, The Calais
Web Service21, un ar tā palīdzību iegūt papildus datus par šiem vārdu savienojumiem.
5.3.3. Atslēgvārdu efektivitāte
Tā kā tvīti tiek vākti pēc noteiktiem atslēgvārdiem, ļoti noderīgi būtu vākšanas gaitā vai
beigās izpētīt, kuri atslēgvārdi uzrāda visvairāk rezultātu. Izstrādājot pilotprojektu, šis solis
netika sperts un tikai, kad projekts jau bija galā, izrādījās, ka liela daļa atslēgvārdu pa
vairākiem mēnešiem nebija snieguši nevienu pašu rezultātu. Ja vākšanas periods ir ļoti ilgs un
atslēgvārdu skaits ir tuvu 400, kas ir Twitter noteiktais maksimums, tad tie būtu jāizmanto pēc
iespējas efektīvāk. Līdzīgi kā citus datus, arī atslēgvārdus var pārskatāmi attēlot ar Google
Chart Tools.
20 http://www.wordle.net/create 21 http://viewer.opencalais.com/
35
5.3.4. Emotikoni
Lai gan tikai 140 simbolus gari, tomēr tvīti bieži vien palīdz to autoram paust savu
attieksmi. Ir daudz veidu kā ar mašīnmācīšanās paņēmieniem noteikt teksta sentimentu jeb
noskaņojumu, tomēr ļoti labi to var novērtēt pēc emotikonu pielietojuma tekstā. Teiksim, lai
sadalītu tvītus pozitīvajos, negatīvajos un neitrālajos, var pieņemt, ka neitrālie ir visi, kuros
nav neviena emotikona, pozitīvie – kur parādās kāds no priecīgajiem emotikoniem, piemēram,
„:)” un negatīvie – kur parādās kāds no bēdīgajiem emotikoniem, piemēram, „):”.
Lai noskaidrotu, kādi ir populārākie Twitter pielietotie emotikoni, tika paņemts
pilotprojekta gaitā savāktais tvītu korpuss un tajā tika meklēti emotikoni no Vikipēdijas visu
emotikonu saraksta22. Tika atlasīti 17 visbiežāk pielietotie emotikoni ar pozitīvu noskaņu un
17 visbiežāk pielietotie ar negatīvu noskaņu. Emotikoni, kas visbiežāk šajos tvītos parādījās,
redzami tabulā [5.1. tabula].
Tā kā teksta priekšapstrādes fāzē attīrīšanas posmā pirms tokenizācijas tiek izvākti
vairāki emotikonos bieži pielietoti simboli, tad emotikonus pie tokeniem nebūs iespējams
atrast un tie būs jāmeklē pašu tvītu tekstos.
5.1. tabula
Populārākie emotikoni
Pozitīvie emotikoni Negatīvie emotikoni
:D :S
:) :(
(: ):
;) :-(
;] :[
:-) ]:
:] ;(
[: );
:D ];
;D ;[
xD :@
^_^ :/
^^ :|
8) :?
:P -_-
:* :O
;* O:
22 http://en.wikipedia.org/wiki/List_of_emoticons
36
6. UNIVERSĀLS TWITTER DATU ANALĪZES RĪKS
Darba gaitā, izmantojot pēc iespējas vairāk iepriekšējā nodaļā aprakstīto metožu, tika
izstrādāts universāls rīks Twitter datu analīzei – tīmekļa programmatūra, kas paredzēta
uzstādīšanai personālajā datorā vai serverī. Šī rīka mērķis galvenokārt ir apmierināt visas
lietotāju iepriekš izteiktās, kā arī paša autora izvirzītās prasības un sniegt iespējami plašāku
pārskatu par ievāktajiem datiem.
Tāpat kā pilotprojektam, arī šim universālajam rīkam tika piešķirts nosaukums –
TweetTool jeb tvītu rīks. Tomēr, atšķirībā no TwitĒdiena, TweetTool lietotāja saskarne
paredzēta arī starptautiskiem lietotājiem. Tāpēc tajā visi teksti un kļūdu paziņojumi būs angļu
valodā.
Šobrīd TweetTool pirmkoda jaunākā strādājošā versija pieejama GitHub repozitorijā23.
Pašu rīku var arī izmēģināt darbībā tīmekļa vietnē24, tomēr ierobežoto servera resursu dēļ tas
ir paredzēts tikai kā vieta rīka izmēģināšanai. Plašākai lietošanai nepieciešams uzinstalēt
GitHub repozitorijā pieejamo rīku.
Turpmākajās apakšnodaļās aprakstīts rīka izstrādes process. Izstrādes procesā piedalījās
viens cilvēks, kurš bija projekta dokumentācijas autors, lietojumprogrammas arhitekts, kā arī
programmētājs. Konsultācijas sniedza darba vadītājs.
Pirmie veicamie darbi bija prasību analīze, prasību specifikācijas un projektējuma
apraksta izstrāde. Pēc tam notika programmatūras izveide un kodēšana, paralēli pielabojot
programmatūras projektējuma aprakstu. Programmēšanas gaitā tika veikti vienībtesti katram
modulim atsevišķi un programmēšanas beigās arī integrācijas testēšana visam kopā. Prasību
specifikācija
Šī apakšnodaļa ir paredzēta, lai varētu precīzi noformulēt sistēmas nepieciešamās
prasības. Šeit aprakstītas topošās sistēmas prasības, pēc kurām notiks sistēmas izstrāde.
Gatavajā produktā būs realizētas visas dokumentā minētās prasības. Prasību specifikācijas
sastādīšanā tika ņemts vērā pilotprojektā apgūtais, citu lietotāju ieteikumi, kā arī visas paša
autora vēlmes un ieceres.
23 https://github.com/saifer/TweetTool 24 http://www.twitediens.tk/tool/
37
6.1. Prasību specifikācija
6.1.1. Funkcionālās prasības
6.1.1.1. Datu ievākšana no Twitter plūsmas
Mērķis:
Funkcijas mērķis ir nodrošināt datu ievākšanu no Twitter plūsmas tuvu reālajam laikam pēc
ievadītajiem atslēgvārdiem.
Ievaddati:
Nepieciešams nodrošināt iespēju ievadīt šādu informāciju:
• atslēgvārdi;
• informācijas vākšanas ilgums.
Ja nav vēl vienreiz izdarīts, jāievada uzstādījumos šāda informācija:
• datu bāzes nosaukums;
• datu bāzes adrese;
• datu bāzes lietotājvārds;
• datu bāzes lietotāja parole;
• Twitter lietotājvārds;
• Twitter lietotāja parole.
No Twitter plūsmas tiek ievākti šādi dati:
• Par pašu tvītu
o Tvīta ID
o Tvīta teksts
o Tvīta autora lietotājvārds
o Tvīta izveidošanas datums
o Ģeogrāfiskās atrašanās vietas nosaukums, no kuras rakstīts tvīts
o Autora lietotājvārds, kuram atbild tvīts
o Tvīta rakstīšanas avots
• Par tvīta autoru
o Pilnais autora vārds
o Profila attēla adrese
o Lietotāja ID
o Mājas lapas adrese
o Lietotājvārds
o Apraksts
38
• Par birkām
o Birkas teksts
o Tvīta id, kurā birka pieminēta
• Par tvītā pieminētajiem lietotājiem
o Pieminētā lietotāja lietotājvārds
o Tvīta id, kurā lietotājs pieminēts
• Par saitēm tvītos
o Pilnais URL
o Attēlojamais URL
o Tvīta id, kurā saite pieminēta
Apstrāde:
Ievadītais laiks tiek pārveidots sekundēs. Ievadītie atslēgvārdi tiek saglabāti atsevišķā failā,
lai tos varētu izmantot vēlāk.
Ievāktie dati no Twitter plūsmas tiek apstrādāti atkarībā no lietotāja izvēlētajiem
normalizācijas iestatījumiem.
Izvaddati:
Pēc sekmīgas ievaddatu ievadīšanas parādās paziņojums par datu vākšanas uzsākšanu:
„Collecting of tweets has begun! Results will start appearing shortly,” un tiek uzsākta datu
vākšana. Pēc tam, līdz ko tiek ievākti pirmie dati, statistikas lapā apskatāmi pirmie analīzes
rezultāti.
Kļūdu paziņojumi:
1. Ja kādā no abiem ievadlaukiem informācija nav ievadīta, pie attiecīgā lauka parādās
kļūdas paziņojums: „Please fill out this field.”
39
6.1.1.2. Datu normalizācija pēc lietotāja izvēles
Mērķis:
Funkcijas mērķis ir nodrošināt lietotājam iespēju izvēlēties, kādi dati vākšanas laikā tiks
aizstāti lietotājvārdi ar „_@user”, birkas ar „_@hashtag” un tīmekļa adreses ar „_@URL”.
Ievaddati:
Nepieciešams nodrošināt iespēju ievadīt šādu informāciju:
• izvēle, kurus datus normalizēt.
Apstrāde:
Līdz ko sākas datu ievākšana no Twitter plūsmas, ņemot vērā lietotāja izvēlētos parametrus,
ievāktie dati tiks attiecīgi normalizēti.
Izvaddati:
Pēc izvēles saglabāšanas parādās paziņojums: „Settings saved!”. Vācot datus no Twitter
plūsmas, tie tiek normalizēti pēc izvēlētajiem iestatījumiem.
Kļūdu paziņojumi:
Nav paredzēti.
6.1.1.3. Datu eksports uz .csv failu
Mērķis:
Funkcijas mērķis ir nodrošināt ievākto datu pārveidošanu ar komatiem atdalītu vērtību
formā un izvadīšanu .csv failā, kuru lietotājam iespējams saglabāt.
Ievaddati:
Nepieciešams nodrošināt iespēju ievadīt šādu informāciju:
• izvēle, kuru datu bāzes tabulu eksportēt.
Apstrāde:
Kad izvēlēta tabula, tajā esošie dati tiek sarakstīti teksta failā, atdalot vērtības ar komatu.
Izvaddati:
Pēc datu apstrādes lietotājam tiek piedāvāts saglabāt gatavu .csv failu.
Kļūdu paziņojumi:
Nav paredzēti.
40
6.1.1.4. Ievākto datu grafiska reprezentācija
Mērķis:
Funkcijas mērķis ir ievāktos datus attēlot grafiski lietotājam ērti pārskatāmā un saprotamā
veidā.
Ievaddati:
Nepieciešams nodrošināt iespēju ievadīt šādu informāciju:
• ievāktie dati no Twitter plūsmas.
Apstrāde:
Ievāktie dati tiek sagrupēti un sakārtoti, kā nepieciešams konkrētajai grafiskajai
reprezentācijai.
Izvaddati:
Atkarībā no datiem, kas jāattēlo, tiek uzzīmēts vai nu vārdu mākonis (birkām, pieminētajiem
lietotājiem, tīmekļa adresēm), vai grafiks (kalendāram, emotikoniem, atslēgvārdiem), vai
karte (atrašanās vietām).
Kļūdu paziņojumi:
1. Ja dati vēl nav savākti un datu bāze ir tukša, parādās paziņojums: „The database is
empty!”
6.1.2. Ārējās saskarnes prasības
6.1.2.1. Lietotāja saskarnes prasības
Minimālās lietotāja saskarnes prasības ērtai sistēmas darbībai:
• lietotāja saskarnei jābūt vismaz vienā valodā – angļu, bet vēlams arī citās, kā,
piemēram, latviešu;
• lietotājam ievadot programmā datus, lietotāja ievadīto datu kļūdu vai nepilnību
gadījumā uz ekrāna jāizvada kļūdas paziņojums un lauks, kurā konstatēta kļūda,
jāiekrāso sarkanā krāsā;
• pēc kļūdas izlabošanas, kļūdas paziņojumam jāpazūd un lauka krāsai jāatgriežas
sākotnējā izskatā.
6.1.2.2. Aparatūras saskarnes prasības
Minimālās aparatūras prasības stabilai sistēmas darbībai:
• procesors ar 1.3GHz takts frekvenci (ieteicams 1.5GHz vairāk);
• operatīvā atmiņa 128MB (ieteicams 256MB vai vairāk);
• video adapteris un monitors ar Super VGA (800px * 600px) vai augstāku izšķirtspēju;
41
• tastatūra un pele;
• stabils pieslēgums internetam.
6.1.2.3. Programmatūras saskarnes prasības
Minimālās programmatūras prasības stabilai sistēmas darbībai:
• jābūt uzstādītai operētājsistēmai ar servera programmatūru, kurā ietilpst
o PHP 5.3.8 vai jaunāka versija;
o MySQL 5.5.16 vai jaunāka versija.
6.1.2.4. Veiktspējas prasības
Statiskās prasības:
• programmai jāatbalsta tikai viens lietotājs vienlaicīgi.
Dinamiskās prasības:
• izmantojot datoru ar minimālajām prasībām, visām lapām jāielādējas ātrāk par piecām
sekundēm.
6.2. Projektējuma apraksts
Šī apakšnodaļa paredzēta, lai aprakstītu, kā tiek realizēta prasību specifikācijā aprakstītā
funkcionalitāte. Tas ir nepieciešams, lai varētu atvieglot darbu, sistēmu programmējot.
6.2.1. Saskarnes projektējums
6.2.1.1. Sākuma lapa
Attēls 6.1 TweetTool sākuma lapa
42
Sākuma lapas centrā redzama izvēle starp tvītu ievākšanu no Twitter plūsmas un jau
gatavas datu bāzes ielādi analizēšanai. Zem TweetTool logo atrodas izvēlnes ikonas, kas ved
uz pārējām lapām. Lapas apakšdaļā tiek piedāvāts ievāktos datus eksportēt uz .csv failu.
6.2.1.2. TweetTool datu analīzes sadaļas
6.2. att. Kalendārs, Birkas, Pieminētie lietotāji, Tīmekļa saites, Karte, Top lietotāji.
Šajās lapās redzami ievākto datu analīzes rezultāti dažādos griezumos. Kalendāra lapā
redzams ievākto ziņu sadalījums pa dienām un laikiem. Birku, pieminēto lietotāju un tīmekļa
saišu lapās redzami vārdu mākoņi ar birkām, lietotājvārdiem un saitēm. Kartes lapā redzams
ziņu, kurās bijuši atrašanās vietas dati, izvietojums pasaules kartē. Top lietotāju lapā redzami
aktīvākie lietotāji.
43
Uz katra no laikiem kalendāra lapā, birkām, pieminētajiem lietotājiem, tīmekļa saitēm
un atrašanās vietām kartē var arī uzklikšķināt un apskatīt tvītus, ar kuriem tas saistīts, kā
redzams attēlā [6.3. att.].
6.3. att. Tvīti konkrētajā laika posmā
Līdzīgi var arī detalizētāk apskatīt katru atsevišķo lietotāju, uzklikšķinot uz tā vārda TOP lietotāju lapā vai kādā no lapām, kurās redzami tvīti [6.4. att.].
6.4. att. Detalizēta informācija par lietotāju
44
6.2.1.3. Statistika
6.5. att. TweetTool statistika
Statistikas lapā redzama detalizēta informācija par ziņu ievākšanas procesa gaitu un par
ievāktajām ziņām. Statistikas lapai ir arī apakšsadaļa, kurā apskatāma sīkāka emotikonu
statistika.
6.2.1.4. Uzstādījumi
6.6. att. TweetTool uzstādījumi
Uzstādījumu lapā redzamas visas konfigurējamās sistēmas vērtības. Tajā iespējams
norādīt informāciju par datu bāzi, kurā tiks saglabāti dati, Twitter lietotāju, ar kuru tiks veikts
pieslēgums pie Twitter plūsmas, un datu normalizāciju.
45
6.2.2. Algoritmu projektējums
Šajā apakšnodaļā aprakstīts sistēmā pielietoto algoritmu projektējums blokshēmu veidā.
6.2.2.1. TweetTool darbība
Šajā blokshēmā [6.7. att.] ilustrēts, kādā secībā norisinās TweetTool procesi. Rīka
darbība sākas ar datu vākšanu, kas ir vai nu no Twitter plūsmas, vai arī, ielādējot jau iepriekš
savāktu un eksportētu datu bāzi rīkā. Nākamā fāze rīka darbībā ir datu priekšapstrāde, kurā
savāktie dati tiek sagatavoti tālākajiem analīzes procesiem. Visbeidzot notiek datu analīze un
analīzes rezultātu attēlošana lietotājam uz ekrāna.
6.7. att. TweetTool darbība
46
6.3. Rīka testēšana
Šajā apakšnodaļā aprakstīti pāris testa piemēri, lai nodemonstrētu rīku darbībā. Tika
veikti un dokumentēti tikai testi visas sistēmas kopējai darbībai. Moduļu atsevišķa testēšana
tika veikta izstrādes laikā, bet tā netika atsevišķi dokumentēta.
Testēšanas ievaddati tika sagatavoti tā, lai varētu pārbaudīt, kā TweetTool varētu
noderēt gan lielām firmām (Nikon, Motorola, Nokia), gan individuāliem lietotājiem, kam
interesē, ko tvīto par kādu konkrētu reģionu (Tukums, Rīga, Ventspils).
6.3.1. Tvītu vākšana pēc viena plaši pielietota atslēgvārda
Testa apraksts Šajā testā tiek pārbaudīts, kā notiek tvītu vākšana, ievadot tikai vienu
atslēgvārdu un laiku, cik ilgi vākt datus.
Ievaddati Atslēgvārds – nikon; datu vākšanas laiks – 2 minūtes. Uzstādījumos
norādīts, ka jāaizstāj tīmekļa adreses ar _@URL un lietotājvārdi ar
_@username, bet birkas jāatstāj kā ir.
Attēls
6.8. att. 1. testa statistikas ekrānuzņēmums
Sagaidāmais
rezultāts
Tiks savākts neliels daudzums tvītu. Parādīsies pilnvērtīgi analīzes rezultāti.
Rezultāts Veiksmīgs
Divu minūšu laikā tika savākti 30 tvīti. Visi kā viens atbilstoši ievadītajam
atslēgvārdam – nikon. Birkas netika izmainītas, lietotājvārdi un tīmekļa
saites – aizstāti. Tomēr netika saņemts neviens tvīts, kurā būtu atrašanās
vietas dati.
47
6.3.2. Tvītu vākšana pēc vairākiem plaši pielietotiem atslēgvārdiem
Testa apraksts Šajā testā tiek pārbaudīts, kā notiek tvītu vākšana, ievadot vairāk par vienu
atslēgvārdu un laiku, cik ilgi vākt datus.
Ievaddati Atslēgvārdi – nokia, iphone, motorola; datu vākšanas laiks – 2 minūtes.
Uzstādījumos norādīts, lai netiktu aizstāti ne lietotājvārdi, ne birkas, ne
tīmekļa adreses.
Attēls
6.9. att. 2. testa statistikas ekrānuzņēmums
Sagaidāmais
rezultāts
Savākto tvītu skaits būs lielāks nekā iepriekšējā testā. Parādīsies pilnvērtīgi
analīzes rezultāti.
Rezultāts Veiksmīgs
Divu minūšu laikā tika savākti 858 tvīti, no kuriem lielākā daļa atbilstoši
atslēgvārdam iphone, tad nokia un vismazāk – motorola. Lietotājvārdi,
birkas un tīmekļa adreses palikušas oriģinālformā.
6.3.3. Tvītu vākšana pēc vairākiem maz pielietotiem atslēgvārdiem
Testa apraksts Šajā testā tiek pārbaudīts, kā notiek tvītu vākšana, ievadot vairāk par vienu
atslēgvārdu, kuri visi nav plaši pielietoti Twitter ziņās un laiku, cik ilgi vākt
datus.
Ievaddati Atslēgvārdi – Tukums, Rīga, Jūrmala, Ventspils; datu vākšanas laiks – 2
stundas. Uzstādījumos norādīts, lai netiktu aizstāti ne lietotājvārdi, ne
birkas, ne tīmekļa adreses.
48
Attēls
6.10. att. 3. testa statistikas ekrānuzņēmums
Sagaidāmais
rezultāts
Savākto tvītu skaits būs samērā mazs, tomēr saturīgs un pilnvērtīgi
izanalizējams.
Rezultāts Veiksmīgs
Divu stundu laikā tika savākti 13 tvīti – pārsvarā par Ventspili un Rīgu,
mazāk par Jūrmalu un neviens par Tukumu. Lietotājvārdi, birkas un tīmekļa
adreses palikušas oriģinālformā.
Visi testi pārsvarā noritēja veiksmīgi. Vienīgi pirmajā testā izvēlētajā laika periodā
netika ievākti nekādi dati par atrašanās vietām un līdz ar to nebija iespējams nevienu tvītu
attēlot uz kartes.
6.4. Salīdzinājums ar esošajiem rīkiem
Līdzīgi kā septītajā nodaļā tika salīdzināti esošie rīki, pēc tiem pašiem kritērijiem tika
izvērtēts arī šis darba autora izveidotais universālais rīks.
TweetTool ir bezmaksas atvērtā pirmkoda tīmekļa lietojumprogramma, kas uzkrāj pēc
lietotāja ievadītiem atslēgvārdiem (jebkurā valodā) atrastus datus no sociālā tīkla Twitter un
saglabā tos lokālā datu bāzē. Šis process notiek tuvu reālajam laikam jeb tādā laikā, kā Twitter
tos spēj padot. Ievāktos datus TweetTool atspoguļo pārskatāmos grafikos un diagrammās, kas
palīdz pārskatīt visu, kas atrasts par meklētajiem atslēgvārdiem. Neskaitot to, TweetTool arī
piedāvā reālā laika datu vākšanas vietā vienkārši ielādēt jau gatavu iepriekš noformētu datu
bāzi un izanalizēt to.
49
TweetTool var savā ikdienā pielietot kā lielās organizācijas, kam ir aktuāli izpētīt kādu
biznesa nozari Twitter tīklā, tā arī vienkārši cilvēki, kuriem varētu pēkšņi interesēt kāda
konkrēta tēma un ko par to citi raksta.
Salīdzinājums pēc kritērijiem:
6.1. tabula
TweetTool novērtējums
Kritērijs Vērtība
Cena Bezmaksas
Vide Tīmekļa programmatūra
Atvērtā pirmkoda risinājums Jā
Spēja vākt reālā laika datus Jā
Analīzes metodes • Attēlo tvītu skaita izmaiņu laika gaitā
Tipiskais pielietojums Statistikas izpēte / Biznesa izpēte
Priekšrocības • Piedāvā eksportēt ievāktos datus uz .csv dokumentu.
• Piedāvā diezgan plašu skatījumu uz datiem.
Trūkumi • Pie milzīgiem datu apjomiem patērē daudz servera
resursu.
50
SECINĀJUMI
Bakalaura darba problēmas aprakstā izvirzītie mērķi izpētīt Twitter datu analīzi un
izstrādāt universāli pielietojamu Twitter datu analīzes rīku tika īstenoti.
Darba sākumā tika apskatīts sociālais tīmeklis un noskaidrots, kāpēc no visiem
sociālajiem tīkliem tieši Twitter ir pateicīgs liela daudzuma līdzīga veida tekstuālu datu
iegūšanai. Tika izpētīti un salīdzināti vairāki šobrīd apritē esošie sociālo tīklu analīzes rīki un
izzinātas metodes, kas tajos pielietotas. Darba gaitā kā pilotprojekts tika izveidots rīks šaura
loka Twitter datu analīzei, lai precīzāk saprastu, kā šis process notiek un uzzinātu, kas vēl
būtu nepieciešams universālā analīzes rīkā. Tika arī izgudroti un aprakstīti vairāki citi analīzei
noderīgi paņēmieni, kas nebija sastopami salīdzinātajos rīkos un visi kopā apvienoti un
aprakstīti Twitter ziņu apstrādes procesā.
Darba beigu daļā, izmantojot pilotprojekta gaitā uzzināto un vairumu aprakstīto metožu,
tika izveidots universāli pielietojams atvērtā pirmkoda Twitter datu analīzes rīks. Tomēr
izstrādātais rīks vēl var tikt tālāk papildināts, pirmkārt, ar visām Twitter ziņu apstrādes nodaļā
aprakstītajām funkcijām, otrkārt, ar citām, pēc plašākas lietotāju iesaistīšanās noskaidrotām,
noderīgām funkcijām, un, treškārt, ar iespējām to lietot no mobilajām iekārtām – mobilajiem
telefoniem un planšetdatoriem.
Šis bakalaura darbs varētu atvieglot citiem darbu ar sociālo tīklu analīzi, kā arī kalpot
par pamatu turpmākiem pētījumiem šajā virzienā.
51
PATEICĪBAS
Darba autors vēlas izteikt pateicību Latvijas Universitātes Datorikas fakultātes 2012.
gada pavasara specsemināra Web Science dalībniekiem un vadītājiem, kas palīdzēja Twitter
analīzes rīka TweetTool izstrādē. Pateicība Normundam Grūzītim, Renāram Liepiņam,
Kārlim Gediņam un Jānim Bečam – par palīdzību informācijas savākšanā, metodiskiem
ieteikumiem darba izstrādē, un ieteikumiem, kā uzlabot topošo rīku.
Atsevišķu pateicību autors izsaka Uldim Bojāram, kas vadīja un motivēja TweetTool
izstrādi, kā arī vadīja autora bakalaura darba izstrādi.
52
IZMANTOTĀ LITERATŪRA
1. Zinātniskie raksti
1. O'Reilly T. What is web 2.0: Design patterns and business models for the next generation
of software, Communications & Strategies, No. 1, p. 17, First Quarter 2007
2. Gruber, T. Collective knowledge systems: Where the Social Web meets the Semantic
Web, Web Semantics: Science, Services and Agents on the World Wide Web 6, 2008,
p. 4–13
3. Bizer, C., Heath, T., Berners-Lee, T. Linked Data - The Story So Far. International
Journal of Semantic Web and Information Systems, Special Issue on Linked Data, 2009a
4. Bojārs U. Sociālā tīmekļa satura apkopošana un analīze, Latviešu valoda digitālajā vidē:
datorlingvistika, Informatīvi izglītojošu semināru cikla materiāli, Rīga, 2012. 44-52. lpp.
2. Elektroniskie informācijas avoti
5. Twitter 'to hit 500 million registered users [tiešsaiste] - [atsauce 15.03.2012.]. Pieejams:
http://www.telegraph.co.uk/technology/twitter/9098557/Twitter-to-hit-500-million-
registered-users.html
6. Google says social network has 90M users [tiešsaiste] - [atsauce 15.03.2012.]. Pieejams:
http://articles.cnn.com/2012-01-19/tech/tech_social-media_google-plus-users_1_search-
engine-social-network-results-pages?_s=PM:TECH
7. Twitter mood predicts the stock market [tiešsaiste] - [atsauce 26.05.2012.]. Pieejams:
http://www.relevantdata.com/pdfs/IUStudy.pdf
8. Twitter turns six [tiešsaiste] - [atsauce 15.03.2012.]. Pieejams:
http://blog.twitter.com/2012/03/twitter-turns-six.html
9. Streaming API Methods [tiešsaiste] - [atsauce 12.04.2012.]. Pieejams:
https://dev.twitter.com/docs/streaming-api/methods
10. Streaming API Concepts [tiešsaiste] - [atsauce 17.05.2012.]. Pieejams:
https://dev.twitter.com/docs/streaming-api/concepts#result-quality
11. BigSheets: extend business intelligence with big data [tiešsaiste] - [atsauce 20.04.2012.].
Pieejams: http://www-01.ibm.com/software/ebusiness/jstart/bigsheets/
12. Welcome to Apache™ Hadoop™! [tiešsaiste] - [atsauce 20.04.2012.]. Pieejams:
http://hadoop.apache.org/
13. uClassify teksta autora noskaņojuma klasifikators [tiešsaiste] - [atsauce 25.04.2012.].
Pieejams: http://uclassify.com/browse/saifer/emo
53
14. Veselīga uztura ieteikumi [tiešsaiste] - [atsauce 15.01.2012.]. Pieejams:
http://www.apollo.lv/portal/ipasums/articles/154909/galery/
15. Google Maps API [tiešsaiste] - [atsauce 25.04.2012.]. Pieejams:
http://code.google.com/apis/maps/index.html
16. 7 jautājumi par veselīgu uzturu [tiešsaiste] - [atsauce 15.01.2012.]. Pieejams:
www.mansmazais.lv/article/227290/
17. Paikens P. Lexicon-based morphological analysis of Latvian language [tiešsaiste] -
[atsauce 27.05.2012.]. Pieejams: www.semti-kamols.lv/doc_upl/Kamols-Kaunas-paper-
3.pdf
54
Bakalaura darbs „Universālas metodes Twitter datu analīzei” izstrādāts LU Datorikas fakultātē.
Ar savu parakstu apliecinu, ka pētījums veikts patstāvīgi, izmantoti tikai tajā norādītie
informācijas avoti un iesniegtā darba elektroniskā kopija atbilst izdrukai. Piekrītu sava darba
publicēšanai internetā.
Autors: _____________________________
(Autora paraksts)
Ar savu parakstu apliecinu, ka esmu lasījis augšminēto bakalaura darbu un atzīstu to par
piemērotu/nepiemērotu (nevajadzīgo svītrot) aizstāvēšanai Latvijas Universitātes datorzinātņu
bakalaura studiju programmas gala pārbaudījuma komisijas sēdē.
Darba vadītājs(-ja): ______________________________
(Vadītāja paraksts)
Darbs iesniegts Datorikas fakultātē __________________________________.
(Iesniegšanas datums)
Ar šo es apliecinu, ka darba elektroniskā versija ir augšupielādēta LU informatīvajā sistēmā.
Metodiķe: _____________________________.
(Metodiķes paraksts)
Recenzents: ______________________________
Darbs aizstāvēts bakalaura darbu gala pārbaudījuma komisijas sēdē
_________________________ prot. Nr. ______, vērtējums _____________________
(Darba aizstāvēšanas datums)
Komisijas sekretārs: _______________________________
(Sekretāra paraksts)