fakedata/generator.html
author veltr
Thu, 07 Feb 2013 17:14:46 +0100
changeset 2 0d947d167ec5
parent 1 1f574d93e195
permissions -rw-r--r--
More tests
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
1f574d93e195 First tests
veltr
parents:
diff changeset
     1
<!DOCTYPE html>
1f574d93e195 First tests
veltr
parents:
diff changeset
     2
<html lang="fr">
1f574d93e195 First tests
veltr
parents:
diff changeset
     3
    <head>
1f574d93e195 First tests
veltr
parents:
diff changeset
     4
        <meta charset="utf-8" />
1f574d93e195 First tests
veltr
parents:
diff changeset
     5
    </head>
1f574d93e195 First tests
veltr
parents:
diff changeset
     6
    <body>
1f574d93e195 First tests
veltr
parents:
diff changeset
     7
        <script>
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
     8
            var TOPIC_COUNT = 15, WORDS_PER_TOPIC = 20, SEGMENT_COUNT = 200;
1
1f574d93e195 First tests
veltr
parents:
diff changeset
     9
1f574d93e195 First tests
veltr
parents:
diff changeset
    10
/* Thésaurus IEP Lyon
1f574d93e195 First tests
veltr
parents:
diff changeset
    11
 http://doc.sciencespo-lyon.fr/Signal/index.php?r=motcle/search
1f574d93e195 First tests
veltr
parents:
diff changeset
    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}))
1f574d93e195 First tests
veltr
parents:
diff changeset
    13
 * */
1f574d93e195 First tests
veltr
parents:
diff changeset
    14
1f574d93e195 First tests
veltr
parents:
diff changeset
    15
            var thesaurus = [{
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    17
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    19
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    21
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    23
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    25
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    27
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    29
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    31
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    33
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    35
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    37
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    39
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    41
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    42
                "words" : ["activité économique", "compétitivité", "crise économique", "cycle économique", "marché", "concurrence", "demande", "monopole", "offre", "stocks", "pénurie", "production", "produit", "productivité", "vie économique"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    43
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    45
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    47
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    49
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    51
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    53
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    55
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    57
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    59
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    61
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    63
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    65
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    67
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    68
                "words" : ["migration", "diaspora", "émigration", "émigré", "exil", "exode", "exode des cerveaux", "exode rural", "immigration", "immigré", "rapatrié", "réfugié", "réfugié politique"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    69
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    71
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    73
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    75
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    77
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    79
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    81
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    83
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    85
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    86
                "words" : ["mode de vie", "cadre de vie", "comportement", "homosexualité", "mode", "modernisation", "modernité", "moeurs", "nomadisme", "sédentarisation", "sexualité", "tradition", "vie privée", "vie quotidienne"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    87
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    88
                "words" : ["problèmes sociaux", "corruption", "criminalité", "mafia", "délinquance", "dopage", "drogue", "esclavage", "harcèlement", "mendicité", "pédophilie", "pornographie", "prostitution", "suicide", "toxicomanie", "violence"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    89
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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é"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    91
            }, {
1f574d93e195 First tests
veltr
parents:
diff changeset
    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"]
1f574d93e195 First tests
veltr
parents:
diff changeset
    93
            }];
1f574d93e195 First tests
veltr
parents:
diff changeset
    94
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
    95
    var topics = [],
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
    96
        topicPeaks = [],
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
    97
        allwords = Array.prototype.concat.apply([], thesaurus.map(function(t) { return t.words })),
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
    98
        awl = allwords.length,
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
    99
        peaknums = [],
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   100
        peakf = 6 * TOPIC_COUNT;
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   101
1f574d93e195 First tests
veltr
parents:
diff changeset
   102
    for (var i = 0; i < TOPIC_COUNT; i++) {
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   103
        var words = [],
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   104
            n = Math.floor(awl * Math.random()),
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   105
            wordindexes = [n],
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   106
            weightsum = 0;
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   107
        for (var j = 0; j < WORDS_PER_TOPIC; j++) {
1f574d93e195 First tests
veltr
parents:
diff changeset
   108
            while (wordindexes.indexOf(n) !== -1) {
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   109
                n = Math.min(awl - 1, Math.max(0, Math.floor(n + 16 * Math.random() - 8)));
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   110
            }
1f574d93e195 First tests
veltr
parents:
diff changeset
   111
            wordindexes.push(n);
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   112
            var word = allwords[n], weight = Math.random();
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   113
            words.push({
1f574d93e195 First tests
veltr
parents:
diff changeset
   114
                word : word,
1f574d93e195 First tests
veltr
parents:
diff changeset
   115
                weight : weight
1f574d93e195 First tests
veltr
parents:
diff changeset
   116
            });
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   117
            weightsum += weight;
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   118
        }
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   119
        words.sort(function(a, b) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   120
            return b.weight - a.weight;
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   121
        });
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   122
        words.forEach(function(w) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   123
            w.weight = w.weight / weightsum
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   124
        });
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   125
        topics.push({
1f574d93e195 First tests
veltr
parents:
diff changeset
   126
            index : i,
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   127
            words : words
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   128
        });
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   129
        var peaks = [], peakcount = Math.floor(2 * (1 + Math.random()));
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   130
        for (var j = 0; j < peakcount; j++) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   131
            var npeak = Math.floor(peakf * Math.random());
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   132
            while (peaknums.indexOf(npeak) !== -1) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   133
                npeak = Math.floor(peakf * Math.random());
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   134
            }
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   135
            peaknums.push(npeak);
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   136
            peaks.push({
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   137
                volume: 5 * (.2 + Math.random()),
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   138
                position: (npeak + Math.random() - .5) / peakf
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   139
            });
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   140
        }
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   141
        topicPeaks.push(peaks);
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   142
    }
1f574d93e195 First tests
veltr
parents:
diff changeset
   143
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   144
    var tc = 0, mmsos = [], threshold = .05;
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   145
1f574d93e195 First tests
veltr
parents:
diff changeset
   146
    for (var i = 0; i < SEGMENT_COUNT; i++) {
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   147
        var duration = Math.floor(Math.random() * 30) + 30, mmso = {
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   148
            start : tc,
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   149
            duration : duration
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   150
        }
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   151
        tc += duration;
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   152
        mmso.end = tc;
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   153
        
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   154
        var localtopics = [],
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   155
            localtopicids = [],
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   156
            pos = i;
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   157
        for (var j = 0; j < TOPIC_COUNT; j++) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   158
            var peaks = topicPeaks[j],
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   159
                total = 0;
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   160
            for (var k = 0; k < peaks.length; k++) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   161
                var peak = peaks[k],
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   162
                    delta = Math.abs(peak.position - i/SEGMENT_COUNT);
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   163
                if (delta < threshold) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   164
                    total += peak.volume * Math.max(0, .5 * (1 + Math.cos(Math.PI * delta / threshold)) + Math.random()*.2 - .1) * mmso.duration;
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   165
                }
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   166
            }
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   167
            if (total) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   168
                localtopics.push({
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   169
                    topic: j,
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   170
                    weight: total
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   171
                })
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   172
                localtopicids.push(j);
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   173
            }
1f574d93e195 First tests
veltr
parents:
diff changeset
   174
        }
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   175
        while (localtopics.length < 2) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   176
            var n = Math.floor(Math.random() * TOPIC_COUNT);
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   177
            while (localtopicids.indexOf(n) !== -1) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   178
                n = Math.floor(Math.random() * TOPIC_COUNT);
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   179
            }
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   180
            localtopics.push({
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   181
                topic: n,
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   182
                weight: mmso.duration * Math.random()
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   183
            });
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   184
            localtopicids.push(n);
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   185
        }
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   186
        localtopics = localtopics.sort(function(a,b) {
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   187
            return b.weight - a.weight;
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   188
        }).slice(0,5);
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   189
        var total = localtopics.reduce(function(mem,t) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   190
            return mem + t.weight
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   191
        },0);
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   192
        localtopics.forEach(function(t) {
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   193
            t.weight = t.weight / total;
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   194
        });
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   195
        mmso.tweet_count = Math.floor(total);
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   196
        mmso.topics = localtopics;
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   197
        
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   198
        mmsos.push(mmso);
1f574d93e195 First tests
veltr
parents:
diff changeset
   199
    }
2
0d947d167ec5 More tests
veltr
parents: 1
diff changeset
   200
    
1
1f574d93e195 First tests
veltr
parents:
diff changeset
   201
1f574d93e195 First tests
veltr
parents:
diff changeset
   202
    document.write(JSON.stringify({
1f574d93e195 First tests
veltr
parents:
diff changeset
   203
        topics : topics,
1f574d93e195 First tests
veltr
parents:
diff changeset
   204
        segments : mmsos,
1f574d93e195 First tests
veltr
parents:
diff changeset
   205
        duration : tc
1f574d93e195 First tests
veltr
parents:
diff changeset
   206
    }))
1f574d93e195 First tests
veltr
parents:
diff changeset
   207
1f574d93e195 First tests
veltr
parents:
diff changeset
   208
        </script>
1f574d93e195 First tests
veltr
parents:
diff changeset
   209
    </body>
1f574d93e195 First tests
veltr
parents:
diff changeset
   210
</html>