Added topic labels
authorveltr
Wed, 27 Mar 2013 17:42:35 +0100
changeset 14 3aa6b9963de0
parent 13 3ba18138e37e
child 15 7c71148ea252
Added topic labels
data/topiclabels.json
js/playscreen.js
js/startscreen.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/topiclabels.json	Wed Mar 27 17:42:35 2013 +0100
@@ -0,0 +1,162 @@
+[
+	{
+		"topic_id": 13,
+		"words": {
+			"(perspective transversale)": 1
+		}
+	}, {
+		"topic_id": 11,
+		"words": {
+			"président de la justice": 0.022813688212927757,
+			"entrée en matière": 0.019011406844106463,
+			"détermination": 0.019011406844106463,
+			"rassemblement des français": 0.015209125475285171,
+			"programme": 0.015209125475285171
+		}
+	}, {
+		"topic_id": 8,
+		"words": {
+			"début de débat": 0.02197802197802198,
+			"président du redressement": 0.01978021978021978,
+			"millions de grévistes": 0.015384615384615385,
+			"conseil constitutionnel": 0.015384615384615385,
+			"sarkozy depuis 5 ans": 0.013186813186813187,
+			"face à des manifestations": 0.013186813186813187
+		}
+	}, {
+		"topic_id": 16,
+		"words": {
+			"contrat de génération": 0.023529411764705882,
+			"million de chômeurs": 0.023529411764705882,
+			"faute aux 35h": 0.0196078431372549,
+			"exonérations": 0.0196078431372549,
+			"charges sociales": 0.0196078431372549,
+			"hausse du chômage": 0.0196078431372549,
+			"droit à la formation": 0.01568627450980392
+		}
+	}, {
+		"topic_id": 12,
+		"words": {
+			"commerce extérieur": 0.028720626631853787,
+			"recession": 0.02349869451697128,
+			"confiance": 0.020887728459530026,
+			"délocalisations": 0.018276762402088774,
+			"investissements": 0.018276762402088774,
+			"innovation": 0.018276762402088774,
+			"taux de croissance": 0.015665796344647518
+		}
+	}, {
+		"topic_id": 1,
+		"words": {
+			"tarifs": 0.024853801169590642,
+			"carburants": 0.023391812865497075,
+			"électricité": 0.02046783625730994,
+			"tipp flottante": 0.023391812865497075,
+			"blocage des prix": 0.021929824561403508,
+			"prix du pétrole": 0.021929824561403508,
+			"énergies": 0.017543859649122806
+		}
+	}, {
+		"topic_id": 2,
+		"words": {
+			"droits de succession": 0.017676767676767676,
+			"impôt sur la fortune": 0.022727272727272728,
+			"familles aisées": 0.022727272727272728,
+			"cadeaux aux riches": 0.020202020202020204,
+			"milliards de dette": 0.020202020202020204,
+			"impot": 0.020202020202020204,
+			"bouclier fiscale": 0.017676767676767676
+		}
+	}, {
+		"topic_id": 4,
+		"words": {
+			"infographie de la france": 0.026217228464419477,
+			"sarkozy président": 0.02247191011235955,
+			"justice fiscale": 0.02247191011235955,
+			"trimestre de récession": 0.020599250936329586,
+			"chèques au trésor": 0.018726591760299626,
+			"postes de fonctionnaires": 0.018726591760299626,
+			"education": 0.0149812734082397,
+			"débat sur la dette": 0.013108614232209739
+		}
+	}, {
+		"topic_id": 14,
+		"words": {
+			"enseignement": 0.022764227642276424,
+			"professeurs": 0.022764227642276424,
+			"formation des enseignants": 0.02113821138211382,
+			"réforme des retraites": 0.016260162601626018,
+			"pénibilité du travail": 0.014634146341463415,
+			"invalibilité": 0.013008130081300813
+		}
+	}, {
+		"topic_id": 7,
+		"words": {
+			"eurobonds": 0.02491103202846975,
+			"austérité": 0.02491103202846975,
+			"transactions financières": 0.023131672597864767,
+			"bce": 0.023131672597864767,
+			"européens": 0.021352313167259787,
+			"rigueur en france": 0.01601423487544484
+		}
+	}, {
+		"topic_id": 10,
+		"words": {
+			"centres de rétentions": 0.01592356,
+			"immigration légale": 0.022292993630573247,
+			"prestations sociales": 0.020700636942675158,
+			"circulaire guéant": 0.020700636942675158,
+			"asile": 0.01910828025477707,
+			"étudiants étrangers": 0.01751592356687898
+		}
+	}, {
+		"topic_id": 5,
+		"words": {
+			"vote des étrangers": 0.023628048780487805,
+			"islam de france": 0.022103658536585365,
+			"religion": 0.021341463414634148,
+			"communautarisme": 0.020579268292682928,
+			"élections locales": 0.018292682926829267,
+			"loi sur la burqa": 0.01753048780487805
+		}
+	}, {
+		"topic_id": 15,
+		"words": {
+			"centrales nucléaires": 0.02581261950286807,
+			"zone sismique": 0.02390057361376673,
+			"sûreté nucléaire": 0.022944550669216062,
+			"alsace": 0.021032504780114723,
+			"démantèlement": 0.020076481835564052,
+			"énergies renouvelables": 0.020076481835564052,
+			"tsunami": 0.019120458891013385,
+			"fermeture de fessenheim": 0.017208413001912046
+		}
+	}, {
+		"topic_id": 9,
+		"words": {
+			"president de la republique": 0.01393188854489164,
+			"hauteur des enjeux": 0.02321981424148607,
+			"anaphore": 0.020123839009287926,
+			"homme de rassemblement": 0.020123839009287926,
+			"président normal": 0.017027863777089782,
+			"fin de débat": 0.015479876160990712
+		}
+	}, {
+		"topic_id": 0,
+		"words": {
+			"politique étrangère": 0.022653721682847898,
+			"retrait": 0.021035598705501618,
+			"afghanistan": 0.019417475728155338,
+			"troupes": 0.019417475728155338,
+			"talibans": 0.01779935275080906
+		}
+	}, {
+		"topic_id": 3,
+		"words": {
+			"hollande vainqueur": 0.030434782608695653,
+			"conclusion de hollande": 0.021739130434782608,
+			"valeurs de la république": 0.017391304347826087,
+			"mot de la fin": 0.017391304347826087
+		}
+	}
+]
\ No newline at end of file
--- a/js/playscreen.js	Fri Mar 22 17:54:46 2013 +0100
+++ b/js/playscreen.js	Wed Mar 27 17:42:35 2013 +0100
@@ -5,7 +5,9 @@
 var deltaT = new Date("Wed, 02 May 2012 19:00:00 +0000") / 1000 + adjust;
 
 function solrUrl(table, params) {
-    return "http://159.217.144.101:8050/sia-solr/" + table + "/select?" + $.param(params) + "&wt=json&json.wrf=?";
+    var u = "http://159.217.144.101:8050/sia-solr/" + table + "/select?" + $.param(params) + "&wt=json&json.wrf=?";
+    console.log(u);
+    return u;
 }
 
 function showData() {
@@ -541,6 +543,17 @@
 			return b.topic.weight - a.topic.weight; 
 		});
 		
+		if (tweetstoshow.length < 8) {
+			var randtweets = data.randomtweets.filter(function(tw) {
+				return (tw.timestamp > (localpos - localduration / 2)) && (tw.timestamp < (localpos + localduration / 2))
+			});
+			var mod = Math.ceil(randtweets.length / 8);
+			randtweets = randtweets.filter(function(v,k) {
+				return !(k % mod);
+			});
+			tweetstoshow = tweetstoshow.concat(randtweets);
+		}
+		
 		tweetstoshow = tweetstoshow.slice(0,10);
 		
 		if (selectedWord) {
@@ -903,6 +916,48 @@
     loadJson("data/minutes.json", "minutes");
     loadJson("data/5secs.json", "fiveseconds");
     
+    var t = Math.floor(30*Math.random());
+    
+    function pad(n) {
+        var r = n.toString();
+        while (r.length < 2) {
+            r = "0" + r;
+        }
+        return r;
+    }
+        
+    loadJson(
+    	solrUrl(
+    		"twitter",
+    		{
+    			q: "created_at:(*\\:*\\:"
+    				+ pad(t)
+    				+ "* OR *\\:*\\:"
+    				+ (30+t)
+    				+ "*)",
+    			group: "true",
+    			"group.field": "created_at",
+    			"fl": "id_str,created_at,from_user_name,text,profile_image_url",
+    			"rows": 800
+    		}
+		),
+		"randomtweets",
+		function(d) {
+			var randtweets = d.grouped.created_at.groups.map(function(g) {
+				var tweet = g.doclist.docs[0];
+				return {
+					topic: { topic: -1, weight: 0 },
+					timestamp: (new Date(tweet.created_at).valueOf() / 1000 - deltaT),
+					data: tweet
+				}
+			});
+			randtweets.sort(function(a,b) {
+				return a.timestamp - b.timestamp;
+			});
+			return randtweets;
+		}
+    )
+    
     loadJson(
         solrUrl("MMSO", {q: "*:*", fl: "topic*,MMSO_id,multimediaSegment,keywordsFromSocial", rows: 250 }),
         "segments",
--- a/js/startscreen.js	Fri Mar 22 17:54:46 2013 +0100
+++ b/js/startscreen.js	Wed Mar 27 17:42:35 2013 +0100
@@ -1,6 +1,21 @@
 var topicPoubelle = -13;
 
 function showData() {
+	
+	data.topiclabels.forEach(function(v) {
+		var words = _(v.words).map(function(v, k) {
+			return {
+				word: k,
+				weight: v
+			}
+		});
+		words.sort(function(a,b) {
+			return b.weight - a.weight;
+		})
+		data.topics[v.topic_id].words = words;
+	});
+	
+	console.log(data.topics);
     
     var ordertag = 0;
 
@@ -90,7 +105,7 @@
             return w.replace(/(\W)/g,'\\$1')
         }).join("|") + ')', "gim");
         topiclist.forEach(function(topic,i) {
-            var wordsToShow = topic.words.slice(0,8),
+            var wordsToShow = topic.words.slice(),
                 max = wordsToShow[0].weight,
                 min = Math.min(wordsToShow[wordsToShow.length - 1].weight, max - .01),
                 scale = 10 / (max - min);
@@ -358,6 +373,7 @@
     }
     
     loadJson("data/minutes.json", "minutes");
+    loadJson("data/topiclabels.json", "topiclabels");
     
     loadJson(
         solrUrl("MMSO", {q: "*:*", fl: "topic*,MMSO_id,multimediaSegment", rows: 250 }),
@@ -400,25 +416,8 @@
     
     loadFromTopicsBean("getTopicsNumber",false,false,function(topic_count) {
         for (var i = 0; i < topic_count; i++) {
-            data.topics.push(null);
+            data.topics.push({ index: i, words: [ { word: "(no label)", weight: 1 }] });
         }
-        data.topics.forEach(function(v, k) {
-            loadFromTopicsBean("getTopicDistribution",false,[k, 50, false],function(topic) {
-                var words = topic.match(/[^=,{]+=0.\d{0,8}/g);
-                data.topics[k] = {
-                    index: k,
-                    words: words.map(function(w) {
-                        var parts = w.split("=");
-                        return {
-                            word: parts[0].trim(),
-                            weight: parseFloat(parts[1])
-                        }
-                    })
-                }
-            });
-            
-        });
-        
     });
     
     loadFromTopicsBean("getTopWords","topwords",[200]);