Etichetarea datelor nestructurate
Deoarece majoritatea datelor din rețelele sociale sunt generate de oameni și, prin urmare, sunt nestructurate (adică, nu au o structură predefinită sau un model de date), este necesar un algoritm pentru a le transforma în date structurate pentru a obține informații. Prin urmare, datele nestructurate trebuie preprocesate, etichetate și apoi analizate pentru a cuantifica/analiza datele din rețelele sociale.
Adăugarea de informații suplimentare la date (adică, etichetarea datelor) poate fi efectuată manual sau prin intermediul motoarelor de reguli, care caută modele sau interpretează datele folosind tehnici precum mineritul datelor și analiza textului. Algoritmii exploatează structura lingvistică, auditivă și vizuală inerentă tuturor formelor de comunicare umană. Etichetarea datelor nestructurate implică, de obicei, etichetarea datelor cu metadate sau etichetare părților de vorbire (part-of-speech, POS). În mod clar, natura nestructurată a datelor din rețelele sociale duce la ambiguitate și neregularitate atunci când sunt procesate de o mașină în mod automat.
Utilizarea unui singur set de date poate oferi câteva perspective interesante. Cu toate acestea, combinarea mai multor seturi de date și procesarea datelor nestructurate poate duce la informații mai valoroase, permițându-ne să răspundem la întrebări care erau imposibile în prealabil.
Stocarea datelor
Natura datelor din rețelele sociale are o mare influență asupra designului bazei de date și, eventual, asupra hardware-ului suport. De asemenea, ar fi foarte important să rețineți că fiecare platformă socială are reguli foarte specifice (și înguste) cu privire la modul în care datele respective pot fi stocate și utilizate. Acestea pot fi găsite în Termenii și condițiile pentru fiecare platformă.
Pentru completitudine, bazele de date cuprind:
- Fișiere text — un fișier text este o bază de date bidimensională (cumva ca o foaie de calcul) care conține înregistrări care nu au nicio interrelație structurată, care să poată fi căutată secvenţial.
- Bazăe de date relaționale — o bază de date organizată ca un set de tabele descrise formal pentru a recunoaște relațiile dintre elementele de informații stocate, permițând relații mai complexe între elementele de date. Exemple sunt bazele de date SQL bazate pe rânduri și kdb + pe coloană, utilizate în finanțe.
- Baze de date noSQL — o clasă de sistem de management al bazelor de date (DBMS) identificată prin neaderarea sa la modelul de sistem de management al bazelor de date relaționale (RDBMS) utilizat pe scară largă. Bazele de date noSQL/newSQL sunt caracterizate ca: fiind non-relaționale, distribuite, open-source și scalabile orizontal.
Instrumente și baze de date Apache (noSQL).
Creșterea site-urilor web ultra-mari precum Facebook și Google a condus la dezvoltarea bazelor de date noSQL ca o modalitate de a depăși constrângerile de viteză pe care le suportă bazele de date relaționale. Un factor cheie a fost MapReduce de la Google, adică, cadrul software care permite dezvoltatorilor să scrie programe care procesează cantități masive de date nestructurate în paralel printr-un cluster distribuit de procesoare sau computere de sine stătătoare (Chandrasekar și Kowsalya 2011). A fost dezvoltat la Google pentru indexarea paginilor Web și a înlocuit algoritmii și euristicile lor originale de indexare în 2004. Modelul este inspirat de funcțiile „Map” și „Reduce” utilizate în mod obișnuit în programarea funcțională. MapReduce (din punct de vedere conceptual) ia ca intrare o listă de înregistrări, iar calculele „Map” le împarte între diferitele computere dintr-un cluster. Rezultatul calculării hărții este o listă de perechi cheie/valoare. Calculul corespunzător „Reduce” ia fiecare set de valori care are aceeași cheie și le combină într-o singură valoare. Un program MapReduce este compus dintr-o procedură „Map()” pentru filtrare și sortare și o procedură „Reduce()” pentru o operațiile de rezumare (de exemplu, numărare și grupare).
Figura 12 oferă un exemplu canonic de aplicație MapReduce. Acest exemplu este un proces de numărare a apariției fiecărui cuvânt diferit dintr-un set de documente (MapReduce 2011).
void map(String name, String document):
// name: document name
// document: document contents
// Split the input amongst the various computers within the cluster.
for each word w in document:
EmitIntermediate(w, "1"); // Output key-value pairs as the map function
processes the data in its input file.
void reduce(String word, Iterator partialCounts):
// word: a word
// partialCounts: a list of aggregated partial counts
// Take each set of values with the same key and combines them into a single
value.
int sum = 0;
for each pc in partialCounts:
sum += ParseInt(pc);
Emit(word, AsString(sum));
Fig. 12 Exemplul canonic de aplicare a MapReduce
Software Apache open-source
Comunitatea de cercetare folosește din ce în ce mai mult software-ul Apache pentru analiza rețelelor sociale. În cadrul Apache Software Foundation, sunt relevante trei niveluri de software:
- Baze de date Cassandra/hive — Apache Cassandra este un SGBD distribuit cu sursă deschisă (noSQL) care oferă un magazin structurat „cheie-valoare”. Magazinele cheie-valoare permit unei aplicații să-și stocheze datele într-un mod fără schemă. Produsele de baze de date noSQL înrudite includ: Apache Hive, Apache Pig și MongoDB, o bază de date open-source scalabilă și de înaltă performanță, concepută pentru a gestiona stocarea orientată spre documente. Deoarece bazele de date noSQL sunt „fără structură”, este necesar să existe o bază de date SQL însoțitoare pentru a păstra și a mapa structura datelor corespunzătoare.
- Platforma Hadoop — este un cadru de programare bazat pe Java care acceptă procesarea seturilor mari de date într-un mediu de calcul distribuit. O aplicație este împărțită în numeroase părți mici (numite și fragmente sau blocuri) care pot fi rulate pe sisteme cu mii de noduri care implică mii de terabytes de stocare.
- Mahout — oferă implementări ale algoritmilor de analiză distribuiți sau scalabili (învățare automată) care rulează pe platforma Hadoop. MahoutFootnote acceptă patru clase de algoritmi: a) grupare (de exemplu, K-Means, Fuzzy C-Means) care grupează textul în grupuri înrudite; b) clasificare (de exemplu, clasificator complementar Naive Bayes) care utilizează învățarea supravegheată pentru a clasifica textul; c) extragerea frecventă a seturilor de articole ia un set de grupuri de articole și identifică elementele individuale care apar de obicei împreună; și d) extragerea de recomandări (de exemplu, recomandări bazate pe utilizatori și pe articole) care preia comportamentul utilizatorilor și de aici încearcă să găsească elementele pe care utilizatorii le-ar putea dori.
Referințe
- Chandrasekar C, Kowsalya N (2011) Implementation of MapReduce Algorithm and Nutch Distributed File System in Nutch. Int J Comput Appl 1:6-11
- MapReduce (2011) What is MapReduce?. http://www.mapreduce.org/what-is-mapreduce.php.
Sursa: Bogdan Batrinca, Philip C. Treleaven, „Social media analytics: a survey of techniques, tools and platforms„, AI & Soc (2015) 30:89-116 DOI 10.1007/s00146-014-0549-4, Creative Commons Attribution License. Traducere și adaptare Nicolae Sfetcu
Lasă un răspuns