Ein Jahr nach Aufhebung des Verbots von Online-Wahlen gab es eine große Anzahl von Nostradams im Netz, die Japan beenden würde, wenn eine Partei gewinnt, und Kibayashi-sans Ansturm kann nicht aufholen. Wie geht es Ihnen jetzt?
Übrigens werde ich diesmal versuchen, die Don't-Formel bei den proportionalen repräsentativen Wahlen zu berechnen.
http://needtec.sakura.ne.jp/analyze_election/page/dondt/shuin_47
Geben Sie die Anzahl der Stimmen ein und klicken Sie auf die Schaltfläche "Berechnen", um die Anzahl der Sitze entsprechend der Anzahl der Stimmen zu ermitteln. Wenn die Zustimmungsrate der Partei so wie sie ist erhöht wird, wird die LDP 140 Sitze erhalten und sogar die Restoration Society wird ausgelöscht.
Wenn Sie zum Zeitpunkt der Wahl des House of Councilors 2013 die Stimmenzahl für jede Partei bei den letzten Wahlen zur Tokyo Metropolitan Assembly eingeben, beträgt die Differenz zwischen dem geschätzten und dem tatsächlichen Ergebnis 1 Sitz.
https://github.com/mima3/analyze_election
Tatsächlich Berechnungsdatei für Formel nicht
dondt_util.py
# coding=utf-8
import os
import re
from collections import defaultdict
import math
import json
import copy
import operator
class political_party_info:
"""
Klasse zum Speichern von Partyinformationen
name :Parteinamen
votes:Anzahl der Stimmen
max :Anzahl der Kandidaten (Egal wie viele Stimmen Sie erhalten, Sie können nicht mehr Sitze bekommen)
seats:Anzahl der erworbenen Sitze
"""
def __init__(self, name, votes, max):
self.name = name
self.votes = votes
self.max = max
self.seats = 0
def select_political_party(votes):
"""
Der Name der Partei ist der Schlüssel, der Wert ist politisch_party_Holen Sie sich den Namen der Partei mit den meisten Stimmen im Wörterbuch mit Informationen
"""
max = -1
ret = None
for k, v in votes.items():
#Wenn die Nummer gleich ist, wird sie per Lotterie entschieden, diesmal jedoch in der Reihenfolge der Registrierung
if max < v.votes:
ret = k
max = v.votes
return ret
def dondt(votes_data, max):
"""
Mit nicht Methode
votes_data:Der Name der Partei ist der Schlüssel, der Wert ist politisch_party_Wörterbuch mit Info
max:Gesamtzahl der Sitzplätze
votes_data[x].Die Anzahl der Sitze wird in Sitzen gespeichert.
"""
tmp_votes = copy.deepcopy(votes_data)
for i in range(1, max+1):
s = select_political_party(tmp_votes)
if s is None:
return None
votes_data[s].seats += 1
tmp_votes[s].votes = math.floor(votes_data[s].votes / (votes_data[s].seats + 1))
if tmp_votes[s].max == votes_data[s].seats:
#Da die Anzahl der Kandidaten überschritten wurde, ist die Abstimmung für diese Partei ungültig.
tmp_votes[s].votes = 0
return votes_data
Brüche bei der Suche nach einem Quotienten werden abgerundet. Wenn die Anzahl der Stimmen gleich ist, wird dies ursprünglich per Lotterie entschieden, hier jedoch in der Reihenfolge des Zeichencodes (die Ex-Midori-Partei hat Vorrang vor der LDP).
Im Folgenden erfahren Sie, wie Sie die Don't-Formel berechnen. http://www.pref.tochigi.lg.jp/senkyo/sangisenkyo/qanda/qanda-9.html
Normalerweise sollten die Anzahl der Sitze im Block des proportionalen Distrikts und die Anzahl der Kandidaten für jede Partei auf der Seite des Ministeriums für innere Angelegenheiten und Kommunikation festgelegt werden. Das Ministerium für innere Angelegenheiten und Kommunikation veröffentlicht es jedoch nur als PDF, das nicht in Textform verarbeitet werden kann.
Unabhängig von der Anzahl der Sitze im Proportionalblock ist es schwierig, Daten für Kandidaten einzugeben. Deshalb habe ich versucht, eine CSV-Datei zu erstellen, indem ich die Homepage des Asahi Shimbun im Internet durchsucht habe. Die folgenden URLs werden als Ziel ausgewählt. http://www.asahi.com/senkyo/sousenkyo47/kouho/B01.html ~ http://www.asahi.com/senkyo/sousenkyo47/kouho/B11.html
Es hatte die gleiche HTML-Struktur wie 2012, sodass es wahrscheinlich bei der nächsten Auflösung verwendet werden kann.
script/analyze_asahi_hirei.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import urllib2
import lxml.html
import re
import os.path
import urlparse
def print_area(url):
r = urllib2.urlopen(url, timeout=30)
html = r.read()
dom = lxml.html.fromstring(html)
parties = dom.xpath('//div[@class="snkH2Box"]/h2')
tables = dom.xpath('//table[@class="snkTbl01"]')
block = dom.xpath('//div[@class="BreadCrumb"]/h1')[0].text_content().encode('utf-8')
block = block[block.find(':')+len(':'):]
for i in range(0, len(parties)):
h2 = parties[i].text_content().encode('utf-8')
partyName = h2.split('\n')[0]
members = tables[i].xpath('tbody/tr')
for m in members:
name = m.xpath('td[@class="namae"]')[0].text_content().encode('utf-8')
lstNum = m.xpath('td[@class="lstNum"]')[0].text_content().encode('utf-8')
age = m.xpath('td[@class="age"]')[0].text_content().encode('utf-8')
status = m.xpath('td[@class="status"]')[0].text_content().encode('utf-8')
net = m.xpath('td[@class="net"]/ul')[0]
twitterEl = net.xpath('li[@id="twitter"]/a')
facebookEl = net.xpath('li[@id="facebook"]/a')
hpEl = net.xpath('li[@id="HomePage1"]/a')
areaEl = m.xpath('td[@class="w"]/a')
area = ''
twitter = ''
facebook = ''
hp = ''
if twitterEl:
twitter = twitterEl[0].attrib['href'].encode('utf-8')
if facebookEl:
facebook = facebookEl[0].attrib['href'].encode('utf-8')
if hpEl:
hp = hpEl[0].attrib['href'].encode('utf-8')
if areaEl:
area =areaEl[0].text_content().encode('utf-8')
print ('%s,%s,%s,%s,%s,%s,%s,%s,%s,%s' % (block, partyName,lstNum, name, age, status, area, twitter, facebook, hp))
def main(argvs, argc):
"""
Dieses Skript bezieht die Kandidaten für den kleinen Wahlkreis aus den Informationen im Asahi Shimbun.
"""
for i in range(1, 12):
url = ('http://www.asahi.com/senkyo/sousenkyo47/kouho/B%s.html' % str(i).zfill(2))
print_area(url)
if __name__ == '__main__':
argvs = sys.argv
argc = len(argvs)
sys.exit(main(argvs, argc))
** Daten von Kandidaten für proportionale Stationen mit voller Breite, halber Breite oder "Präfektur" nach Erhalt von Daten von Asahi Shimbun ** https://github.com/mima3/analyze_election/blob/master/script/candidate_shuin_47_hirei.csv
** Proportionale Blockinformationen CSV, die beim Betrachten der Asahi Shimbun-Daten erstellt wurden ** https://github.com/mima3/analyze_election/blob/master/script/block_shuin_47_hirei.csv
Recommended Posts