1
|
1 |
<!DOCTYPE html> |
|
2 |
<html lang="fr"> |
|
3 |
<head> |
|
4 |
<meta charset="utf-8" /> |
|
5 |
</head> |
|
6 |
<body> |
|
7 |
<script> |
2
|
8 |
var TOPIC_COUNT = 15, WORDS_PER_TOPIC = 20, SEGMENT_COUNT = 200; |
1
|
9 |
|
|
10 |
/* Thésaurus IEP Lyon |
|
11 |
http://doc.sciencespo-lyon.fr/Signal/index.php?r=motcle/search |
|
12 |
JSON.stringify($('.treeview>li>ul>li>ul>li:visible').map(function() { return { "words": $(this).find("span").map(function() { return $(this).text().trim()}).get().filter(function(a) { return (a.length && a.length < 20) })}}).get().filter(function(a){return a.words.length > 10})) |
|
13 |
* */ |
|
14 |
|
|
15 |
var thesaurus = [{ |
|
16 |
"words" : ["administration", "acte administratif", "bureaucratie", "centralisation", "commune", "communauté urbaine", "maire", "municipalité", "département", "région", "décentralisation", "déconcentration", "délégation", "titre de séjour", "domaine public", "bien public", "fonction publique", "agent contractuel", "fonctionnaire", "haut fonctionnaire", "gestion publique", "intérêt général", "marché public", "appel d'offres", "médiateur", "ministère", "personne publique", "politique publique", "préfet", "préfet de région", "service public", "concession", "protection civile", "technocratie", "usager"] |
|
17 |
}, { |
|
18 |
"words" : ["finances publiques", "budget de l'Etat", "cour des comptes", "déficit budgétaire", "dépenses publiques", "dépenses de santé", "dépenses militaires", "dépenses sociales", "dette extérieure", "dette publique", "financement public", "finances locales", "loi de finances", "recettes publiques", "subvention", "trésor public"] |
|
19 |
}, { |
|
20 |
"words" : ["fiscalité", "contribuable", "douane", "droit fiscal", "évasion fiscale", "fiscalité locale", "impôt", "impôt direct", "impôt foncier", "impôt indirect", "impôt sur le revenu", "redevance", "politique fiscale", "taxe"] |
|
21 |
}, { |
|
22 |
"words" : ["construction", "développement local", "droit de préemption", "droit de propriété", "droit foncier", "eau potable", "équipement", "infrastructure", "marché foncier", "propriété", "expropriation", "propriété foncière", "travaux publics"] |
|
23 |
}, { |
|
24 |
"words" : ["transport", "accident", "aéroport", "canal", "port", "réseau de transport", "autoroute", "stationnement", "moyen de transport", "automobile", "avion", "bateau", "métro", "train", "transport aérien", "compagnie aérienne", "transport en commun", "transport fluvial", "transport maritime", "transport public", "transport routier", "sécurité routière", "transport urbain", "circulation urbaine", "piéton"] |
|
25 |
}, { |
|
26 |
"words" : ["urbanisme", "aménagement urbain", "gestion urbaine", "immeuble", "marché immobilier", "reconstruction", "urbanisation", "vie urbaine", "ville", "banlieue", "centre ville", "ghetto", "quartier", "village", "ville nouvelle", "zone"] |
|
27 |
}, { |
|
28 |
"words" : ["culture", "animation", "culture de masse", "équipement culturel", "francophonie", "identité culturelle", "culture populaire", "langue", "langue maternelle", "langue régionale", "minorité culturelle", "pluralisme culturel", "festival", "spectacle", "mécénat", "patrimoine culturel", "monument historique", "pratique culturelle", "lecture", "public", "vie culturelle"] |
|
29 |
}, { |
|
30 |
"words" : ["droit", "clandestinité", "droit comparé", "droit d'asile", "asile politique", "droit international", "droit communautaire", "droit européen", "droit privé", "droit civil", "droit pénal", "droit public", "droit administratif", "nationalité", "naturalisation", "nom", "régime juridique", "responsabilité", "sécurité juridique", "sources du droit", "accord", "charte", "constitution", "constitutionnalité", "contrat", "convention", "coutume", "décret", "directive", "législation", "code", "légalité", "loi", "ordonnance", "quota", "règlement", "réglementation", "résolution", "traité", "statut", "tutelle"] |
|
31 |
}, { |
|
32 |
"words" : ["justice", "contentieux", "arbitrage", "condamnation", "décision judiciaire", "immunité", "indemnisation", "jurisprudence", "médiation", "prescription", "preuve", "procédure", "procédure pénale", "procès", "recours", "juridiction", "cour d'appel", "cour d'assises", "juridiction suprême", "tribunal", "tribunal d'instance", "magistrature", "avocat", "juge", "sanction", "expulsion", "extradition", "peine", "peine de mort", "prison", "détenu", "saisie", "système judiciaire"] |
|
33 |
}, { |
|
34 |
"words" : ["ordre public", "amnistie", "arrestation", "autodéfense", "infraction", "abus sexuel", "blanchiment", "crime", "crime de guerre", "délit", "escroquerie", "espionnage", "fraude", "génocide", "massacre", "meurtre", "piratage", "prise d'otage", "récidive", "torture", "trafic", "trafic de drogue", "viol", "milice", "police", "répression", "sécurité", "victime"] |
|
35 |
}, { |
|
36 |
"words" : ["accord commercial", "accord économique", "aide économique", "aide technique", "balance commerciale", "commerce extérieur", "embargo", "exportation", "importation", "libéralisation", "libre échange", "marché commun", "protectionnisme", "échange inégal", "sanction économique", "union économique", "zone franche"] |
|
37 |
}, { |
|
38 |
"words" : ["monnaie", "change", "marché des changes", "taux de change", "convertibilité", "déflation", "deutschmark", "dévaluation", "dollar", "écu", "euro", "franc", "inflation", "marché monétaire", "masse monétaire", "paiement", "moyen de paiement", "politique monétaire", "système monétaire", "union monétaire", "yen", "zone monétaire"] |
|
39 |
}, { |
|
40 |
"words" : ["aide publique", "analyse économique", "choix économique", "déréglementation", "disparité régionale", "nationalisation", "plan", "contrat de plan", "planification", "pouvoir économique", "privatisation", "réforme économique", "régulation", "relance économique"] |
|
41 |
}, { |
|
42 |
"words" : ["activité économique", "compétitivité", "crise économique", "cycle économique", "marché", "concurrence", "demande", "monopole", "offre", "stocks", "pénurie", "production", "produit", "productivité", "vie économique"] |
|
43 |
}, { |
|
44 |
"words" : ["système économique", "commerce équitable", "économie de marché", "économie dirigée", "économie du savoir", "économie numérique", "économie ouverte", "économie régionale", "économie locale", "économie sociale", "économie socialiste", "économie solidaire", "modèle économique", "secteur d'activité", "secteur primaire", "secteur privé", "secteur public", "secteur secondaire", "secteur tertiaire"] |
|
45 |
}, { |
|
46 |
"words" : ["système financier", "assurances", "assurance vie", "banque", "banque centrale", "bourse des valeurs", "action boursière", "cours des valeurs", "second marché", "valeur mobilière", "capitalisation", "créance", "crédit", "microcrédit", "crise financière", "don", "endettement", "épargne", "financement", "fonds de pension", "hypothèque", "investissement", "marché financier", "obligation", "place financière", "placement financier", "prêt", "spéculation", "système bancaire", "taux d'intérêt"] |
|
47 |
}, { |
|
48 |
"words" : ["entreprise", "actionnariat", "actionnaire", "chef d'entreprise", "droit commercial", "faillite", "management", "concentration", "restructuration", "association", "coopérative", "entreprise publique", "filiale", "mutuelle", "organisme", "droit des sociétés", "vie de l'entreprise"] |
|
49 |
}, { |
|
50 |
"words" : ["industrie", "bien d'équipement", "groupe industriel", "industrialisation", "industrie chimique", "industrie de base", "industrie du papier", "industrie mécanique", "industrie nucléaire", "industrie spatiale", "industrie textile", "ingénierie", "délocalisation", "produit industriel", "brevet", "qualité", "sous traitance"] |
|
51 |
}, { |
|
52 |
"words" : ["agriculture", "agriculteur", "milieu rural", "pêche", "politique agricole", "production agricole", "élevage", "produit agricole", "alcool", "tabac", "produit alimentaire", "viticulture", "structure agraire", "réforme agraire"] |
|
53 |
}, { |
|
54 |
"words" : ["environnement", "animal", "barrage", "sécheresse", "séisme", "climat", "cours d'eau", "désert", "espace", "forêt", "île", "incendie", "inondation", "irrigation", "lac", "littoral", "mer", "milieu naturel", "mine - gisement", "montagne", "paysage", "terre", "végétation"] |
|
55 |
}, { |
|
56 |
"words" : ["déchet", "ordures ménagères", "écologie", "espèce protégée", "nuisance", "parc naturel", "patrimoine naturel", "pollution", "amiante", "pollution de l'eau", "protocole de Kyoto", "recyclage", "traitement de l'eau"] |
|
57 |
}, { |
|
58 |
"words" : ["commission", "indépendance", "pouvoir exécutif", "chef de l'Etat", "président", "gouvernement", "ministre", "premier ministre", "projet de loi", "pouvoir judiciaire", "pouvoir législatif", "parlement", "assemblée nationale", "député", "proposition de loi", "sénat", "sénateur", "pouvoir local", "réforme"] |
|
59 |
}, { |
|
60 |
"words" : ["mouvement politique", "alliance politique", "droite", "extrême droite", "extrême gauche", "gauche", "homme politique", "mouvement étudiant", "mouvement ouvrier", "parti politique", "parti communiste", "parti conservateur", "parti démocrate", "parti écologiste", "parti libéral", "parti nationaliste", "parti radical", "parti républicain", "parti socialiste", "parti travailliste", "programme politique", "stratégie politique"] |
|
61 |
}, { |
|
62 |
"words" : ["régime politique", "apartheid", "autodétermination", "autonomie", "démocratie", "démocratisation", "social démocratie", "Etat", "fédéralisme", "théorie de l'Etat", "monarchie", "nation", "pouvoir politique", "régime de Vichy", "régime présidentiel", "régime totalitaire", "dictature", "parti unique", "république", "système politique"] |
|
63 |
}, { |
|
64 |
"words" : ["vie politique", "alternance", "cohabitation", "altermondialisation", "boycott", "carrière politique", "citoyenneté", "citoyen", "civisme", "collaboration", "contestation", "dissident", "grève de la faim", "identité européenne", "identité nationale", "manifestation", "militantisme", "négociation", "politisation", "revendication", "conférence", "congrès", "forces politiques", "gouvernance", "groupe de pression", "légitimité", "majorité politique", "propagande", "situation politique", "troubles politiques", "attentat", "coup d'Etat", "crise politique", "mai-68", "état d'exception", "insurrection", "rébellion", "révolution", "révolte", "scandale", "terrorisme"] |
|
65 |
}, { |
|
66 |
"words" : ["famille", "adoption", "célibat", "divorce", "droit de la famille", "filiation", "garde des enfants", "mariage", "maternité", "parent", "paternité", "politique familiale", "union libre", "veuvage", "vie familiale"] |
|
67 |
}, { |
|
68 |
"words" : ["migration", "diaspora", "émigration", "émigré", "exil", "exode", "exode des cerveaux", "exode rural", "immigration", "immigré", "rapatrié", "réfugié", "réfugié politique"] |
|
69 |
}, { |
|
70 |
"words" : ["population", "âge", "embryon", "enfant", "ethnie", "relations ethniques", "tribu", "jeune", "métis", "minorité", "Indiens", "Kurdes", "Noirs", "Tsiganes", "mort", "naissance", "personne âgée", "peuple", "population rurale", "population urbaine", "sexe", "femme", "homme"] |
|
71 |
}, { |
|
72 |
"words" : ["emploi", "chômage", "contrat de travail", "création d'emploi", "démission", "emploi précaire", "licenciement", "marché du travail", "plein emploi", "nomination", "politique salariale", "recrutement", "retraite", "personne retraitée"] |
|
73 |
}, { |
|
74 |
"words" : ["comité d'entreprise", "conflit social", "droit de grève", "droit social", "droits des salariés", "employeur", "grève", "partenaires sociaux", "patronat", "syndicalisme", "syndicat"] |
|
75 |
}, { |
|
76 |
"words" : ["travail", "bénévolat", "absentéisme", "accident du travail", "congé", "durée du travail", "flexibilité", "lieu de travail", "travail au noir", "travail féminin", "travail saisonnier", "travail temporaire"] |
|
77 |
}, { |
|
78 |
"words" : ["défense", "armée", "armée de l'air", "armée de métier", "armée de terre", "marine", "armement", "arme", "arme nucléaire", "commerce des armes", "mine - arme", "désarmement", "base militaire", "cessez le feu", "dissuasion", "gendarmerie", "militaire", "pouvoir militaire", "service national", "service civil", "services secrets", "stratégie militaire"] |
|
79 |
}, { |
|
80 |
"words" : ["action humanitaire", "aide internationale", "camp", "colonie", "colonisation", "décolonisation", "confédération", "conflit armé", "déportation", "guérilla", "guerre", "guerre civile", "guerre d'Algérie", "guerre du Golfe", "guerre froide", "résistance", "accords de Schengen", "défense européenne", "fonds structurels", "pacte de stabilité", "sommet européen", "coopération", "convention de Lomé", "diplomatie", "ambassade", "consulat", "diplomate", "droit de la mer", "droit humanitaire", "frontière", "eaux territoriales", "impérialisme", "ingérence étrangère", "bombardement", "mondialisation", "neutralité", "non alignement", "adhésion", "élargissement", "paix", "politique commune", "politique étrangère", "relations Est-Ouest", "relations Nord-Sud", "G7-G8", "réunification"] |
|
81 |
}, { |
|
82 |
"words" : ["protection sociale", "politique sociale", "prévention", "sécurité sociale", "assurance sociale", "cotisation sociale", "charges sociales", "prestation sociale", "allocation sociale", "service social", "aide sociale", "travail social"] |
|
83 |
}, { |
|
84 |
"words" : ["santé", "alimentation", "famine", "malnutrition", "clinique", "hôpital", "handicapé", "hygiène", "maladie", "cancer", "épidémie", "malade", "maladie mentale", "sida", "médecine", "médecine préventive", "profession médicale", "médecin", "recherche médicale", "bioéthique", "secours d'urgence", "soins", "avortement", "contraception", "don d'organes", "euthanasie", "médicament"] |
|
85 |
}, { |
|
86 |
"words" : ["mode de vie", "cadre de vie", "comportement", "homosexualité", "mode", "modernisation", "modernité", "moeurs", "nomadisme", "sédentarisation", "sexualité", "tradition", "vie privée", "vie quotidienne"] |
|
87 |
}, { |
|
88 |
"words" : ["problèmes sociaux", "corruption", "criminalité", "mafia", "délinquance", "dopage", "drogue", "esclavage", "harcèlement", "mendicité", "pédophilie", "pornographie", "prostitution", "suicide", "toxicomanie", "violence"] |
|
89 |
}, { |
|
90 |
"words" : ["relations sociales", "condition féminine", "discrimination", "antisémitisme", "racisme", "xénophobie", "égalité", "égalité des sexes", "exclusion", "féminisme", "inégalités", "inégalité sociale", "intégration sociale", "justice sociale", "marginalité", "parité", "popularité", "socialisation", "solidarité"] |
|
91 |
}, { |
|
92 |
"words" : ["structure sociale", "caste", "catégorie sociale", "déshérité social", "élite", "intellectuel", "artisan", "cadre", "ouvrier", "profession libérale", "civilisation", "classe sociale", "aristocratie", "bourgeoisie", "classe dirigeante", "classe moyenne", "classe ouvrière", "lutte des classes", "communauté", "enfance", "hiérarchie", "jeunesse", "mobilité sociale", "organisation", "institution", "personnalité", "pouvoir", "société civile", "statut social", "vieillesse"] |
|
93 |
}]; |
|
94 |
|
2
|
95 |
var topics = [], |
|
96 |
topicPeaks = [], |
|
97 |
allwords = Array.prototype.concat.apply([], thesaurus.map(function(t) { return t.words })), |
|
98 |
awl = allwords.length, |
|
99 |
peaknums = [], |
|
100 |
peakf = 6 * TOPIC_COUNT; |
1
|
101 |
|
|
102 |
for (var i = 0; i < TOPIC_COUNT; i++) { |
2
|
103 |
var words = [], |
|
104 |
n = Math.floor(awl * Math.random()), |
|
105 |
wordindexes = [n], |
|
106 |
weightsum = 0; |
1
|
107 |
for (var j = 0; j < WORDS_PER_TOPIC; j++) { |
|
108 |
while (wordindexes.indexOf(n) !== -1) { |
2
|
109 |
n = Math.min(awl - 1, Math.max(0, Math.floor(n + 16 * Math.random() - 8))); |
1
|
110 |
} |
|
111 |
wordindexes.push(n); |
2
|
112 |
var word = allwords[n], weight = Math.random(); |
1
|
113 |
words.push({ |
|
114 |
word : word, |
|
115 |
weight : weight |
|
116 |
}); |
2
|
117 |
weightsum += weight; |
1
|
118 |
} |
2
|
119 |
words.sort(function(a, b) { |
|
120 |
return b.weight - a.weight; |
|
121 |
}); |
|
122 |
words.forEach(function(w) { |
|
123 |
w.weight = w.weight / weightsum |
|
124 |
}); |
1
|
125 |
topics.push({ |
|
126 |
index : i, |
2
|
127 |
words : words |
1
|
128 |
}); |
2
|
129 |
var peaks = [], peakcount = Math.floor(2 * (1 + Math.random())); |
|
130 |
for (var j = 0; j < peakcount; j++) { |
|
131 |
var npeak = Math.floor(peakf * Math.random()); |
|
132 |
while (peaknums.indexOf(npeak) !== -1) { |
|
133 |
npeak = Math.floor(peakf * Math.random()); |
|
134 |
} |
|
135 |
peaknums.push(npeak); |
|
136 |
peaks.push({ |
|
137 |
volume: 5 * (.2 + Math.random()), |
|
138 |
position: (npeak + Math.random() - .5) / peakf |
|
139 |
}); |
|
140 |
} |
|
141 |
topicPeaks.push(peaks); |
1
|
142 |
} |
|
143 |
|
2
|
144 |
var tc = 0, mmsos = [], threshold = .05; |
1
|
145 |
|
|
146 |
for (var i = 0; i < SEGMENT_COUNT; i++) { |
2
|
147 |
var duration = Math.floor(Math.random() * 30) + 30, mmso = { |
1
|
148 |
start : tc, |
2
|
149 |
duration : duration |
1
|
150 |
} |
2
|
151 |
tc += duration; |
|
152 |
mmso.end = tc; |
|
153 |
|
|
154 |
var localtopics = [], |
|
155 |
localtopicids = [], |
|
156 |
pos = i; |
|
157 |
for (var j = 0; j < TOPIC_COUNT; j++) { |
|
158 |
var peaks = topicPeaks[j], |
|
159 |
total = 0; |
|
160 |
for (var k = 0; k < peaks.length; k++) { |
|
161 |
var peak = peaks[k], |
|
162 |
delta = Math.abs(peak.position - i/SEGMENT_COUNT); |
|
163 |
if (delta < threshold) { |
|
164 |
total += peak.volume * Math.max(0, .5 * (1 + Math.cos(Math.PI * delta / threshold)) + Math.random()*.2 - .1) * mmso.duration; |
|
165 |
} |
|
166 |
} |
|
167 |
if (total) { |
|
168 |
localtopics.push({ |
|
169 |
topic: j, |
|
170 |
weight: total |
|
171 |
}) |
|
172 |
localtopicids.push(j); |
1
|
173 |
} |
|
174 |
} |
2
|
175 |
while (localtopics.length < 2) { |
|
176 |
var n = Math.floor(Math.random() * TOPIC_COUNT); |
|
177 |
while (localtopicids.indexOf(n) !== -1) { |
|
178 |
n = Math.floor(Math.random() * TOPIC_COUNT); |
1
|
179 |
} |
2
|
180 |
localtopics.push({ |
|
181 |
topic: n, |
|
182 |
weight: mmso.duration * Math.random() |
1
|
183 |
}); |
2
|
184 |
localtopicids.push(n); |
1
|
185 |
} |
2
|
186 |
localtopics = localtopics.sort(function(a,b) { |
1
|
187 |
return b.weight - a.weight; |
2
|
188 |
}).slice(0,5); |
|
189 |
var total = localtopics.reduce(function(mem,t) { |
|
190 |
return mem + t.weight |
|
191 |
},0); |
|
192 |
localtopics.forEach(function(t) { |
|
193 |
t.weight = t.weight / total; |
1
|
194 |
}); |
2
|
195 |
mmso.tweet_count = Math.floor(total); |
|
196 |
mmso.topics = localtopics; |
|
197 |
|
1
|
198 |
mmsos.push(mmso); |
|
199 |
} |
2
|
200 |
|
1
|
201 |
|
|
202 |
document.write(JSON.stringify({ |
|
203 |
topics : topics, |
|
204 |
segments : mmsos, |
|
205 |
duration : tc |
|
206 |
})) |
|
207 |
|
|
208 |
</script> |
|
209 |
</body> |
|
210 |
</html> |