This notebook performs the same task as DistanceComputtion.ipynb but for the topics, ie it computes the distance matrix for each votation subjects based on the topic modelling results.
In [2]:
import pandas as pd
import glob
import os
import numpy as np
import matplotlib.pyplot as plt
import sklearn
import sklearn.ensemble
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score, train_test_split, cross_val_predict, learning_curve
import sklearn.metrics
%matplotlib inline
%load_ext autoreload
%autoreload 2
# There's a lot of columns in the DF.
# Therefore, we add this option so that we can see more columns
pd.options.display.max_columns = 100
In [38]:
path = '../datas/treated_data/Vote/'
voting_no_topics_df = pd.read_csv(path+'legiid_47-50.csv')
voting_no_topics_df = voting_no_topics_df.drop_duplicates(['BillTitle'], keep = 'last')
print(len(voting_no_topics_df))
voting_no_topics_df.head(3)
3415
Out[38]:
Unnamed: 0
VoteEnd
BillTitle
BusinessTitle
Subject
MeaningNo
MeaningYes
BusinessShortNumber
ID
IdLegislativePeriod
IdSession
6
2615
2009-09-07
Arrêté fédéral concernant la contribution de l...
Réduction des disparités économiques et social...
Entrer en matière
Proposition de la minorité Stamm (ne pas entre...
Proposition de la majorité (entrer en matière)
9.0550
6398
48
4811
7
2616
2009-09-07
Renforcement du Traité sur la non-prolifératio...
Renforcement du Traité sur la non-prolifératio...
NaN
Rejeter la motion
Adopter la motion
7.3676
6400
48
4811
8
2617
2009-09-07
Une zone exempte d'armes nucléaires au coeur d...
Une zone exempte d'armes nucléaires au coeur d...
NaN
Rejeter la motion
Adopter la motion
7.3802
6401
48
4811
In [22]:
voting_no_topics_df.shape
Out[22]:
(8573, 11)
In [4]:
path = '../../datas/nlp_results/'
voting_df = pd.read_csv(path+'voting_with_topics.csv')
print('Entries in the DataFrame',voting_df.shape)
#Dropping the useless column
voting_df = voting_df.drop('Unnamed: 0',1)
#Putting numerical values into the columns that should have numerical values
#print(voting_df.columns.values)
num_cols = ['Decision', ' armée', ' asile / immigration', ' assurances', ' budget', ' dunno', ' entreprise/ finance',
' environnement', ' famille / enfants', ' imposition', ' politique internationale', ' retraite ']
voting_df[num_cols] = voting_df[num_cols].apply(pd.to_numeric)
#Inserting the full name at the second position
voting_df.insert(2,'Name', voting_df['FirstName'] + ' ' + voting_df['LastName'])
voting_df.head(5)
Entries in the DataFrame (1713854, 39)
Out[4]:
BillTitle
BusinessNumber
Name
BusinessShortNumber
BusinessTitle
Canton
CantonID
CantonName
Decision
DecisionText
FirstName
ID
IdLegislativePeriod
IdSession
IdVote
Language
LastName
MeaningNo
MeaningYes
ParlGroupCode
ParlGroupColour
ParlGroupName
ParlGroupNameAbbreviation
PersonNumber
RegistrationNumber
Subject
VoteEnd
text
armée
asile / immigration
assurances
budget
dunno
entreprise/ finance
environnement
famille / enfants
imposition
politique internationale
retraite
0
Arrêté fédéral concernant la contribution de l...
20090055
Chiara Simoneschi-Cortesi
9.055
Réduction des disparités économiques et social...
TI
21
Tessin
7
Die Präsidentin/der Präsident stimmt nicht
Chiara
1183799
48
4811
6392
FR
Simoneschi-Cortesi
Proposition de la minorité Stamm (ne pas entre...
Proposition de la majorité (entrer en matière)
CEg
#FFFFA500
Groupe conservateur-catholique
Groupe K
511
2652
Entrer en matière
2009-09-07T15:44:26.69
Arrêté fédéral concernant la contribution de l...
0.006995
0.930066
0.006993
0.006993
0.006993
0.006994
0.006993
0.006993
0.006993
0.006993
0.006993
1
Arrêté fédéral concernant la contribution de l...
20090055
Pascale Bruderer Wyss
9.055
Réduction des disparités économiques et social...
AG
1
Aargau
5
Hat nicht teilgenommen
Pascale
1183800
48
4811
6392
FR
Bruderer Wyss
Proposition de la minorité Stamm (ne pas entre...
Proposition de la majorité (entrer en matière)
S
#FFFF0000
Groupe socialiste
Groupe S
823
2652
Entrer en matière
2009-09-07T15:44:26.69
Arrêté fédéral concernant la contribution de l...
0.006995
0.930066
0.006993
0.006993
0.006993
0.006994
0.006993
0.006993
0.006993
0.006993
0.006993
2
Arrêté fédéral concernant la contribution de l...
20090055
Guy Parmelin
9.055
Réduction des disparités économiques et social...
VD
23
Waadt
5
Hat nicht teilgenommen
Guy
1183801
48
4811
6392
FR
Parmelin
Proposition de la minorité Stamm (ne pas entre...
Proposition de la majorité (entrer en matière)
V
#FF006400
Groupe des Paysans, Artisans et Bourgeois
Groupe B
1108
2652
Entrer en matière
2009-09-07T15:44:26.69
Arrêté fédéral concernant la contribution de l...
0.006995
0.930066
0.006993
0.006993
0.006993
0.006994
0.006993
0.006993
0.006993
0.006993
0.006993
3
Arrêté fédéral concernant la contribution de l...
20090055
Jean-René Germanier
9.055
Réduction des disparités économiques et social...
VS
24
Wallis
5
Hat nicht teilgenommen
Jean-René
1183802
48
4811
6392
FR
Germanier
Proposition de la minorité Stamm (ne pas entre...
Proposition de la majorité (entrer en matière)
RL
#FF00BFFF
Groupe radical-démocratique
Groupe R
1117
2652
Entrer en matière
2009-09-07T15:44:26.69
Arrêté fédéral concernant la contribution de l...
0.006995
0.930066
0.006993
0.006993
0.006993
0.006994
0.006993
0.006993
0.006993
0.006993
0.006993
4
Arrêté fédéral concernant la contribution de l...
20090055
Edi Engelberger
9.055
Réduction des disparités économiques et social...
NW
14
Nidwalden
5
Hat nicht teilgenommen
Edi
1183803
48
4811
6392
FR
Engelberger
Proposition de la minorité Stamm (ne pas entre...
Proposition de la majorité (entrer en matière)
RL
#FF00BFFF
Groupe radical-démocratique
Groupe R
318
2652
Entrer en matière
2009-09-07T15:44:26.69
Arrêté fédéral concernant la contribution de l...
0.006995
0.930066
0.006993
0.006993
0.006993
0.006994
0.006993
0.006993
0.006993
0.006993
0.006993
We first erase the duplicates and only collect the results of the topic modelling for each votation
In [81]:
voting_df_copy = voting_df.drop_duplicates(['BillTitle', 'BusinessTitle'], keep = 'last')
print(len(voting_df_copy))
for i in voting_df_copy.index:
if str(voting_df_copy.loc[i].BillTitle) == 'nan':
voting_df_copy.set_value(i,'BillTitle',voting_df_copy.loc[i].BusinessTitle)
voting_df_copy = voting_df_copy.drop_duplicates(['BillTitle'], keep = 'last')
print(len(voting_df_copy))
3470
3415
In [82]:
voting_subjects = voting_df_copy['BillTitle'].unique()
topics = [' armée', ' asile / immigration', ' assurances', ' budget', ' dunno', ' entreprise/ finance', ' environnement', ' famille / enfants', ' imposition', ' politique internationale', ' retraite ']
print("{n} subjects voted in the parliament from 2009 to 2015".format(n=voting_subjects.shape[0]))
voting_df_copy = voting_df_copy.set_index(['BillTitle'])
voting_df_copy = voting_df_copy[topics]
voting_df_copy.head()
3415 subjects voted in the parliament from 2009 to 2015
Out[82]:
armée
asile / immigration
assurances
budget
dunno
entreprise/ finance
environnement
famille / enfants
imposition
politique internationale
retraite
BillTitle
Arrêté fédéral concernant la contribution de la Suisse en faveur de la Bulgarie et de la Roumanie au titre de la réduction des disparités économiques et sociales dans l'Union européenne élargie
0.006995
0.930066
0.006993
0.006993
0.006993
0.006994
0.006993
0.006993
0.006993
0.006993
0.006993
Renforcement du Traité sur la non-prolifération des armes nucléaires
0.018182
0.018185
0.018183
0.271557
0.564795
0.018183
0.018182
0.018183
0.018183
0.018183
0.018184
Une zone exempte d'armes nucléaires au coeur de l'Europe
0.015152
0.389858
0.015152
0.232520
0.256405
0.015152
0.015152
0.015152
0.015152
0.015154
0.015152
Boycott de la liste des terroristes établie par l'ONU
0.022727
0.772700
0.022731
0.022729
0.022728
0.022728
0.022728
0.022736
0.022731
0.022732
0.022731
Ratification du Protocole de l'ONU sur les armes à feu et mise en oeuvre de l'instrument Thalmann
0.012987
0.549980
0.012987
0.012987
0.333134
0.012987
0.012987
0.012987
0.012987
0.012987
0.012987
We then implement the distance function, which is simply the euclidean distance between the vectors whose entries are the percentage for each topic computed by topic modelling.
In [84]:
def distance(p1, p2):
return np.linalg.norm(p1-p2)
We then apply it to every pairs of subjects in order to compute the distance matrix.
In [85]:
n = voting_subjects.shape[0]
distanceMatrix = np.zeros((n,n))
for i in range(n):
if i % 10 == 0:
print("Compute distances from subject " + str(i))
for j in range(n):
distanceMatrix[i][j] = distance(voting_df_copy.loc[voting_subjects[i]].values,
voting_df_copy.loc[voting_subjects[j]].values)
print("Mean distance : {d}".format(d = np.mean(distanceMatrix)))
Compute distances from subject 0
Compute distances from subject 10
Compute distances from subject 20
Compute distances from subject 30
Compute distances from subject 40
Compute distances from subject 50
Compute distances from subject 60
Compute distances from subject 70
Compute distances from subject 80
Compute distances from subject 90
Compute distances from subject 100
Compute distances from subject 110
Compute distances from subject 120
Compute distances from subject 130
Compute distances from subject 140
Compute distances from subject 150
Compute distances from subject 160
Compute distances from subject 170
Compute distances from subject 180
Compute distances from subject 190
Compute distances from subject 200
Compute distances from subject 210
Compute distances from subject 220
Compute distances from subject 230
Compute distances from subject 240
Compute distances from subject 250
Compute distances from subject 260
Compute distances from subject 270
Compute distances from subject 280
Compute distances from subject 290
Compute distances from subject 300
Compute distances from subject 310
Compute distances from subject 320
Compute distances from subject 330
Compute distances from subject 340
Compute distances from subject 350
Compute distances from subject 360
Compute distances from subject 370
Compute distances from subject 380
Compute distances from subject 390
Compute distances from subject 400
Compute distances from subject 410
Compute distances from subject 420
Compute distances from subject 430
Compute distances from subject 440
Compute distances from subject 450
Compute distances from subject 460
Compute distances from subject 470
Compute distances from subject 480
Compute distances from subject 490
Compute distances from subject 500
Compute distances from subject 510
Compute distances from subject 520
Compute distances from subject 530
Compute distances from subject 540
Compute distances from subject 550
Compute distances from subject 560
Compute distances from subject 570
Compute distances from subject 580
Compute distances from subject 590
Compute distances from subject 600
Compute distances from subject 610
Compute distances from subject 620
Compute distances from subject 630
Compute distances from subject 640
Compute distances from subject 650
Compute distances from subject 660
Compute distances from subject 670
Compute distances from subject 680
Compute distances from subject 690
Compute distances from subject 700
Compute distances from subject 710
Compute distances from subject 720
Compute distances from subject 730
Compute distances from subject 740
Compute distances from subject 750
Compute distances from subject 760
Compute distances from subject 770
Compute distances from subject 780
Compute distances from subject 790
Compute distances from subject 800
Compute distances from subject 810
Compute distances from subject 820
Compute distances from subject 830
Compute distances from subject 840
Compute distances from subject 850
Compute distances from subject 860
Compute distances from subject 870
Compute distances from subject 880
Compute distances from subject 890
Compute distances from subject 900
Compute distances from subject 910
Compute distances from subject 920
Compute distances from subject 930
Compute distances from subject 940
Compute distances from subject 950
Compute distances from subject 960
Compute distances from subject 970
Compute distances from subject 980
Compute distances from subject 990
Compute distances from subject 1000
Compute distances from subject 1010
Compute distances from subject 1020
Compute distances from subject 1030
Compute distances from subject 1040
Compute distances from subject 1050
Compute distances from subject 1060
Compute distances from subject 1070
Compute distances from subject 1080
Compute distances from subject 1090
Compute distances from subject 1100
Compute distances from subject 1110
Compute distances from subject 1120
Compute distances from subject 1130
Compute distances from subject 1140
Compute distances from subject 1150
Compute distances from subject 1160
Compute distances from subject 1170
Compute distances from subject 1180
Compute distances from subject 1190
Compute distances from subject 1200
Compute distances from subject 1210
Compute distances from subject 1220
Compute distances from subject 1230
Compute distances from subject 1240
Compute distances from subject 1250
Compute distances from subject 1260
Compute distances from subject 1270
Compute distances from subject 1280
Compute distances from subject 1290
Compute distances from subject 1300
Compute distances from subject 1310
Compute distances from subject 1320
Compute distances from subject 1330
Compute distances from subject 1340
Compute distances from subject 1350
Compute distances from subject 1360
Compute distances from subject 1370
Compute distances from subject 1380
Compute distances from subject 1390
Compute distances from subject 1400
Compute distances from subject 1410
Compute distances from subject 1420
Compute distances from subject 1430
Compute distances from subject 1440
Compute distances from subject 1450
Compute distances from subject 1460
Compute distances from subject 1470
Compute distances from subject 1480
Compute distances from subject 1490
Compute distances from subject 1500
Compute distances from subject 1510
Compute distances from subject 1520
Compute distances from subject 1530
Compute distances from subject 1540
Compute distances from subject 1550
Compute distances from subject 1560
Compute distances from subject 1570
Compute distances from subject 1580
Compute distances from subject 1590
Compute distances from subject 1600
Compute distances from subject 1610
Compute distances from subject 1620
Compute distances from subject 1630
Compute distances from subject 1640
Compute distances from subject 1650
Compute distances from subject 1660
Compute distances from subject 1670
Compute distances from subject 1680
Compute distances from subject 1690
Compute distances from subject 1700
Compute distances from subject 1710
Compute distances from subject 1720
Compute distances from subject 1730
Compute distances from subject 1740
Compute distances from subject 1750
Compute distances from subject 1760
Compute distances from subject 1770
Compute distances from subject 1780
Compute distances from subject 1790
Compute distances from subject 1800
Compute distances from subject 1810
Compute distances from subject 1820
Compute distances from subject 1830
Compute distances from subject 1840
Compute distances from subject 1850
Compute distances from subject 1860
Compute distances from subject 1870
Compute distances from subject 1880
Compute distances from subject 1890
Compute distances from subject 1900
Compute distances from subject 1910
Compute distances from subject 1920
Compute distances from subject 1930
Compute distances from subject 1940
Compute distances from subject 1950
Compute distances from subject 1960
Compute distances from subject 1970
Compute distances from subject 1980
Compute distances from subject 1990
Compute distances from subject 2000
Compute distances from subject 2010
Compute distances from subject 2020
Compute distances from subject 2030
Compute distances from subject 2040
Compute distances from subject 2050
Compute distances from subject 2060
Compute distances from subject 2070
Compute distances from subject 2080
Compute distances from subject 2090
Compute distances from subject 2100
Compute distances from subject 2110
Compute distances from subject 2120
Compute distances from subject 2130
Compute distances from subject 2140
Compute distances from subject 2150
Compute distances from subject 2160
Compute distances from subject 2170
Compute distances from subject 2180
Compute distances from subject 2190
Compute distances from subject 2200
Compute distances from subject 2210
Compute distances from subject 2220
Compute distances from subject 2230
Compute distances from subject 2240
Compute distances from subject 2250
Compute distances from subject 2260
Compute distances from subject 2270
Compute distances from subject 2280
Compute distances from subject 2290
Compute distances from subject 2300
Compute distances from subject 2310
Compute distances from subject 2320
Compute distances from subject 2330
Compute distances from subject 2340
Compute distances from subject 2350
Compute distances from subject 2360
Compute distances from subject 2370
Compute distances from subject 2380
Compute distances from subject 2390
Compute distances from subject 2400
Compute distances from subject 2410
Compute distances from subject 2420
Compute distances from subject 2430
Compute distances from subject 2440
Compute distances from subject 2450
Compute distances from subject 2460
Compute distances from subject 2470
Compute distances from subject 2480
Compute distances from subject 2490
Compute distances from subject 2500
Compute distances from subject 2510
Compute distances from subject 2520
Compute distances from subject 2530
Compute distances from subject 2540
Compute distances from subject 2550
Compute distances from subject 2560
Compute distances from subject 2570
Compute distances from subject 2580
Compute distances from subject 2590
Compute distances from subject 2600
Compute distances from subject 2610
Compute distances from subject 2620
Compute distances from subject 2630
Compute distances from subject 2640
Compute distances from subject 2650
Compute distances from subject 2660
Compute distances from subject 2670
Compute distances from subject 2680
Compute distances from subject 2690
Compute distances from subject 2700
Compute distances from subject 2710
Compute distances from subject 2720
Compute distances from subject 2730
Compute distances from subject 2740
Compute distances from subject 2750
Compute distances from subject 2760
Compute distances from subject 2770
Compute distances from subject 2780
Compute distances from subject 2790
Compute distances from subject 2800
Compute distances from subject 2810
Compute distances from subject 2820
Compute distances from subject 2830
Compute distances from subject 2840
Compute distances from subject 2850
Compute distances from subject 2860
Compute distances from subject 2870
Compute distances from subject 2880
Compute distances from subject 2890
Compute distances from subject 2900
Compute distances from subject 2910
Compute distances from subject 2920
Compute distances from subject 2930
Compute distances from subject 2940
Compute distances from subject 2950
Compute distances from subject 2960
Compute distances from subject 2970
Compute distances from subject 2980
Compute distances from subject 2990
Compute distances from subject 3000
Compute distances from subject 3010
Compute distances from subject 3020
Compute distances from subject 3030
Compute distances from subject 3040
Compute distances from subject 3050
Compute distances from subject 3060
Compute distances from subject 3070
Compute distances from subject 3080
Compute distances from subject 3090
Compute distances from subject 3100
Compute distances from subject 3110
Compute distances from subject 3120
Compute distances from subject 3130
Compute distances from subject 3140
Compute distances from subject 3150
Compute distances from subject 3160
Compute distances from subject 3170
Compute distances from subject 3180
Compute distances from subject 3190
Compute distances from subject 3200
Compute distances from subject 3210
Compute distances from subject 3220
Compute distances from subject 3230
Compute distances from subject 3240
Compute distances from subject 3250
Compute distances from subject 3260
Compute distances from subject 3270
Compute distances from subject 3280
Compute distances from subject 3290
Compute distances from subject 3300
Compute distances from subject 3310
Compute distances from subject 3320
Compute distances from subject 3330
Compute distances from subject 3340
Compute distances from subject 3350
Compute distances from subject 3360
Compute distances from subject 3370
Compute distances from subject 3380
Compute distances from subject 3390
Compute distances from subject 3400
Compute distances from subject 3410
Mean distance : 0.8547101104810126
We save the matrix. We observe as expected that the diagonal of the distance matrix contains only 0 as the distance between some subject and itself is 0.
In [86]:
import pandas as pd
df = pd.DataFrame(distanceMatrix, index = voting_subjects, columns = voting_subjects)
df.to_csv("distanceMatrixSubjects.csv")
df.head()
Out[86]:
Arrêté fédéral concernant la contribution de la Suisse en faveur de la Bulgarie et de la Roumanie au titre de la réduction des disparités économiques et sociales dans l'Union européenne élargie
Renforcement du Traité sur la non-prolifération des armes nucléaires
Une zone exempte d'armes nucléaires au coeur de l'Europe
Boycott de la liste des terroristes établie par l'ONU
Ratification du Protocole de l'ONU sur les armes à feu et mise en oeuvre de l'instrument Thalmann
Accompagner la construction du nouvel Etat du Kosovo
Renonciation à des projets d'aide au développement menés par l'Etat
Meilleure protection juridique pour les défenseurs de l'environnement
La Suisse doit oeuvrer pour préserver l'unité de la Macédoine
Promouvoir l'Observatoire du Conseil de l'Europe pour le respect des droits de l'homme en Palestine et en Israël
Eclaircissements relatifs au Traité sur la non-prolifération des armes nucléaires
Vérité des coûts au DFAE
Halte au versement des contributions à la Bulgarie
Contribution de la Suisse à la scolarisation d'un million d'enfants africains
Prévention des génocides. Combattre les génocides culturels
Loi fédérale sur l'examen et le contrôle de la sécurité technique (Loi sur le contrôle de la sécurité, LCS)
Loi fédérale sur les installations de transport par conduites de combustibles ou carburants liquides ou gazeux (Loi sur les installations de transport par conduites, LITC)
Arrêté fédéral concernant le crédit-cadre de la Confédération pour la réalisation de la 1ère étape de la 3e correction du Rhône (R3) pour la période de 2009 à 2014
Interdiction dès 2012 des ampoules inefficaces
Remplacement des ampoules à filament par des ampoules économiques
Révision partielle de la LTC. Requête de la Comcom, de la Comco et du Surveillant des prix
Mesures visant à réguler la population des oiseaux piscivores et à indemniser les dégâts causés à la pêche professionnelle
Politique énergétique extérieure de la Suisse
Paysage ferroviaire suisse. Consolidation par les CFF
Certificat énergétique cantonal des bâtiments
Promouvoir l'efficacité énergétique dans le secteur du bâtiment en accordant des avantages en termes d'utilisation des sols pour la construction
Extension de la taxe sur le CO2 aux émissions grises
Les redevances de la SSR doivent être baissées de 20 pour cent
Programmes de réduction des émissions de CO2
Faciliter l'engagement politique
Transports publics en comparaison internationale
Lutte contre les risques naturels
Déchets. Des alternatives à l'incinération
Manifestations aériennes en Suisse. Décréter un moratoire pour préserver le climat
CO2 et gouvernement d'entreprise
Loi fédérale sur l'assurance-maladie (LAMal) (Mesures pour endiguer l'évolution des coûts)
Opération NAVFOR Atalanta. Service d'appui à l'étranger et révision de la LAAM
Loi fédérale sur l'encouragement de la culture (Loi sur l'encouragement de la culture, LEC)
Sécurité sociale pour les professions avec changements de place fréquents ou engagements de durée limitée
Loi fédérale sur les allégements fiscaux en faveur des familles avec enfants
Allègements fiscaux en faveur des familles qui gardent elles-mêmes leurs enfants
Passer au système de l'imposition individuelle
Loi fédérale sur des mesures de stabilisation conjoncturelle temporaire dans les domaines du marché du travail, des technologies de l'information et de la communication et du pouvoir d'achat
Employés des services douaniers à la retraite vivant dans la Principauté du Liechtenstein. Imposition en fonction du domicile
Traité douanier entre la Suisse et le Liechtenstein. Domicile légal des parents des employés des services douaniers
Mesures incitatives pour la construction d'installations photovoltaïques
Pas d'indemnités de départ pour le personnel de la Confédération
Lutte contre la corruption. Interdire le pantouflage
Pas de deniers publics pour les prix décernés par la Confédération
Résoudre les problèmes de financement des projets FTP dans le cadre de la troisième phase des mesures de stabilisation conjoncturelle
...
Promotion des exportations et du commerce des PME avec la Chine
La croissance économique ne doit pas être un facteur pénalisant. Mettre au jour la progression à froid réelle
Imposition d'après la dépense. Harmoniser les règles, renforcer les contrôles
Prévoyance vieillesse 2020. Réforme
Arrêté fédéral portant approbation de l’échange de notes entre la Suisse et l’UE concernant la reprise du règlement (UE) no 1077/2011 portant création d’une agence européenne pour la gestion opérationnelle des systèmes d’information à grande échelle (Développement de l’acquis de Schengen et de l’acquis «Dublin/Eurodac») (du 06.07.2016)
Arrêté fédéral portant approbation de la convention des Nations Unies sur la transparence dans l’arbitrage entre investisseurs et Etats fondé sur des traités (Convention des Nations Unies sur la transparence)
Arrêté fédéral concernant la représentation équitable des régions linguistiques au Conseil fédéral avec neuf membres
Modifier l'article 32 alinéa 1 de l'ordonnance relative à l'admission, au séjour et à l'exercice d'une activité lucrative
Punir plus sévèrement les agressions dont sont victimes les fonctionnaires et les autorités
Défense du fédéralisme. Juridiction constitutionnelle limitée en faveur des cantons
Autorité de protection de l'enfant et de l'adulte. Améliorer l'exécution
Renégocier et adapter l'accord sur la libre circulation
Appliquer le principe de causalité aux frais de recouvrement. Préciser l'article 106 CO
Pour une étude sur les effets du nouveau droit du nom
Pour une interdiction efficace du financement du terrorisme en Suisse
Interdiction de se dissimuler le visage
Franc fort. Publier les procès-verbaux de la BNS
Loi fédérale sur la réforme de la prévoyance vieillesse 2020
Arrêté fédéral sur le financement additionnel de l’AVS par le biais d’un relèvement de la taxe sur la valeur ajoutée
Arrêté fédéral sur la garantie de l’équilibre financier de l’AVS
Dépolitiser les paramètres techniques de la LPP
Aide sociale matérielle. Respecter la Constitution
Lutte coordonnée contre la prolifération des punaises de lit en Suisse
Commission fédérale pour les questions liées au vieillissement et aux relations entre les générations
Test de paternité sans le consentement de la mère
Eviter les conflits d'intérêts pour les experts médicaux
Pour une assurance d'indemnités journalières efficace en cas de maladie
Prévention et pilotage des prestations dans l'assurance-maladie
Adaptation du financement de la formation médicale spécialisée et des professions médicales universitaires
Instituer un médiateur dans le domaine du deuxième pilier
Systèmes d'incitation. Encourager les gens à consommer des fruits et des légumes
Renforcer les compétences de la Commission fédérale contre le racisme
Uniformisation des paquets de cigarettes
LAMal. Reconnaissance des prestations des pédicures-podologues diplômés pour les soins prodigués sur prescription médicale
La prévention de la violence domestique. Une mission de santé publique
Lutte contre l'islamophobie et l'antisémitisme par des mesures actives de prévention en complément des sanctions pour xénophobie ou racisme
Congé parental
Sortir les médecins-conseils du dilemme
Loi fédérale concernant des mesures en matière de lutte contre le travail au noir
Enregistrement de la durée du travail. Compléter immédiatement l'ordonnance 1 relative à la loi sur le travail
Améliorer le taux de réussite aux examens de fin d'apprentissage
Lutte contre les prix élevés en Suisse. Présenter une version élaguée de la révision de la loi sur les cartels
Droit international par la Suisse. Appliquer les règles adoptées pour la Crimée annexée aux territoires occupés de Palestine
Simplifier la répartition et le contrôle des aides financières destinées aux associations de consommateurs
Analyser l'efficacité des mesures prises pour renforcer la sécurité de l'approvisionnement
Préciser les bases légales qui régissent l'allocation d'aides financières aux associations de consommateurs
Ne pas défavoriser les étables à stabulation entravée
Dettes envers l'assurance-chômage. Que les chefs des entreprises en faillite passent à la caisse
Dépistage du cancer
Arrêté fédéral relatif à l’initiative populaire «Réparation de l’injustice faite aux enfants placés de force et aux victimes de mesures de coercition prises à des fins d’assistance (initiative sur la réparation)»
Arrêté fédéral concernant la contribution de la Suisse en faveur de la Bulgarie et de la Roumanie au titre de la réduction des disparités économiques et sociales dans l'Union européenne élargie
0.000000
1.101664
0.636730
0.165047
0.501155
0.117361
1.042010
1.088768
0.403387
0.062863
1.084145
0.880115
0.557675
1.094996
0.244502
1.220921
1.251844
1.188197
1.065885
1.220935
1.105868
1.172565
0.403402
1.073658
1.136010
0.910715
1.072574
1.136001
0.244488
0.165028
0.909924
0.743737
1.041999
1.065907
1.135995
1.129739
0.390801
1.259505
1.110287
1.281431
1.243285
1.136004
1.309310
0.981140
1.026340
1.220933
1.042006
1.086773
1.136004
1.259502
...
0.552391
1.220931
1.188193
1.136003
0.806474
0.309872
1.090482
1.167950
1.220927
1.188196
1.188200
0.165039
1.220928
0.880115
0.745585
1.071230
1.021756
1.220929
1.111903
1.220924
1.136004
1.088931
0.403396
0.561389
1.042008
0.561071
1.188198
1.081984
1.243286
1.188193
1.220925
0.704765
1.077974
1.243289
0.854437
0.566264
1.042012
1.136002
0.628033
1.101137
1.136008
0.843345
0.117354
1.060109
1.097282
1.044066
1.064944
1.200885
1.042011
1.327827
Renforcement du Traité sur la non-prolifération des armes nucléaires
1.101664
0.000000
0.484605
0.961878
0.635254
1.001474
0.777685
0.671942
0.777686
1.047556
0.138791
0.552090
0.832524
0.842955
0.897646
1.001471
0.806311
0.961890
0.805933
1.001489
0.364179
0.727760
0.777676
0.650225
0.897663
0.705414
0.380771
0.277468
0.897653
0.961891
0.673609
0.656626
0.592797
0.805964
0.897641
0.886917
0.728810
1.047557
0.863157
1.073489
1.028258
0.897657
1.106217
0.590100
0.321517
0.773032
0.777680
0.832692
0.897654
1.047553
...
0.582087
1.001485
0.961888
0.897657
0.421428
0.960083
0.837529
0.935481
1.001480
0.961888
0.961890
0.961881
1.001482
0.552090
0.760470
0.812989
0.746594
1.001483
0.864263
1.001478
0.897654
0.835507
0.777680
0.808993
0.777685
0.708023
0.961891
0.826431
1.028257
0.961886
1.001477
0.764624
0.821852
1.028261
0.849830
0.847396
0.777690
0.897653
0.854812
0.850916
0.897662
0.389596
1.001481
0.525031
0.691294
0.471200
0.437764
0.975930
0.777689
1.127814
Une zone exempte d'armes nucléaires au coeur de l'Europe
0.636730
0.484605
0.000000
0.495625
0.282416
0.534985
0.696957
0.607673
0.333240
0.581501
0.448593
0.427464
0.472007
0.770419
0.433763
0.941126
0.770887
0.898722
0.729380
0.941143
0.490476
0.680762
0.333233
0.582962
0.829315
0.483772
0.563298
0.605049
0.433769
0.495639
0.461501
0.328133
0.518043
0.729413
0.829292
0.818494
0.316832
0.990199
0.792345
1.017688
0.969684
0.829308
1.052267
0.577768
0.525018
0.733458
0.696951
0.759044
0.829305
0.990195
...
0.253411
0.941140
0.898718
0.829308
0.380464
0.520516
0.764344
0.870772
0.941134
0.898720
0.898723
0.495628
0.941136
0.427464
0.503997
0.737171
0.663227
0.941138
0.793837
0.941132
0.829306
0.762131
0.333236
0.449090
0.696955
0.264789
0.898723
0.752170
0.969684
0.898717
0.941131
0.483887
0.746935
0.969688
0.640466
0.491376
0.696961
0.829305
0.528038
0.779122
0.829313
0.366388
0.534993
0.599530
0.628203
0.563082
0.573395
0.914193
0.696960
1.075022
Boycott de la liste des terroristes établie par l'ONU
0.165047
0.961878
0.495625
0.000000
0.383158
0.047686
0.898202
0.947079
0.238341
0.102184
0.941761
0.715068
0.430880
0.953683
0.079455
1.096444
1.129063
1.060629
0.921535
1.096461
0.966146
1.041197
0.238356
0.930515
1.003123
0.791842
0.929264
1.003115
0.079441
0.000020
0.784763
0.613049
0.898190
0.921559
1.003106
0.992498
0.269489
1.138465
0.971743
1.162247
1.120829
1.003113
1.192390
0.843463
0.895275
1.096458
0.898198
0.944784
1.003119
1.138461
...
0.425558
1.096458
1.060618
1.003119
0.687252
0.223650
0.949049
1.036267
1.096450
1.060625
1.060629
0.000013
1.096455
0.715068
0.602580
0.927712
0.870115
1.096456
0.972376
1.096451
1.003116
0.947267
0.238349
0.427966
0.898198
0.427639
1.060630
0.939270
1.120829
1.060624
1.096450
0.565530
0.935488
1.120826
0.729102
0.444156
0.898207
1.003115
0.508854
0.960726
1.003123
0.704252
0.047692
0.913005
0.956306
0.894747
0.920446
1.072789
0.898201
1.212353
Ratification du Protocole de l'ONU sur les armes à feu et mise en oeuvre de l'instrument Thalmann
0.501155
0.635254
0.282416
0.383158
0.000000
0.413958
0.793255
0.851640
0.303756
0.452757
0.654287
0.569268
0.463327
0.859356
0.340591
1.015146
1.051434
0.975852
0.822547
1.015163
0.752565
0.955972
0.303755
0.832595
0.912135
0.752067
0.622095
0.636493
0.340591
0.383167
0.733566
0.581370
0.793239
0.822577
0.912115
0.902840
0.113838
1.060916
0.878984
1.086682
1.041746
0.912128
1.119208
0.626609
0.536454
1.015160
0.793249
0.849088
0.912127
1.060913
...
0.059836
1.015159
0.975848
0.912128
0.310611
0.429973
0.853831
0.950418
1.015153
0.975850
0.975853
0.383159
1.015155
0.569268
0.555996
0.829462
0.764499
1.015157
0.880514
1.015151
0.912127
0.851849
0.303755
0.448405
0.793254
0.448202
0.975853
0.842949
1.041746
0.975847
1.015151
0.526962
0.838151
1.041750
0.686029
0.480261
0.793259
0.912125
0.528000
0.867167
0.912133
0.379118
0.413962
0.672787
0.862266
0.638139
0.638412
0.990422
0.793258
1.140677
5 rows × 3415 columns
We finally compute for each subject the topic which appears the most.
In [87]:
topic_df = pd.DataFrame(index = voting_subjects)
topic_df['Topic'] = voting_df_copy[topics].idxmax(axis=1)
topic_df.head()
Out[87]:
Topic
Arrêté fédéral concernant la contribution de la Suisse en faveur de la Bulgarie et de la Roumanie au titre de la réduction des disparités économiques et sociales dans l'Union européenne élargie
asile / immigration
Renforcement du Traité sur la non-prolifération des armes nucléaires
dunno
Une zone exempte d'armes nucléaires au coeur de l'Europe
asile / immigration
Boycott de la liste des terroristes établie par l'ONU
asile / immigration
Ratification du Protocole de l'ONU sur les armes à feu et mise en oeuvre de l'instrument Thalmann
asile / immigration
In [88]:
topic_df.to_csv("SubjectTopicMapping.csv")
Content source: thom056/ada-parliament-ML
Similar notebooks: