71 lines
2.1 KiB
Python
71 lines
2.1 KiB
Python
import gptc
|
|
|
|
amendments = [
|
|
("1st", "First"),
|
|
("2nd", "Second"),
|
|
("3rd", "Third"),
|
|
("4th", "Fourth"),
|
|
("5th", "Fifth"),
|
|
("6th", "Sixth"),
|
|
("7th", "Seventh"),
|
|
("8th", "Eighth"),
|
|
("9th", "Ninth"),
|
|
("10th", "Tenth"),
|
|
("11th", "Eleventh"),
|
|
("12th", "Twelfth"),
|
|
("13th", "Thirteenth"),
|
|
("14th", "Fourteenth"),
|
|
("15th", "Fifteenth"),
|
|
("16th", "Sixteenth"),
|
|
("17th", "Seventeenth"),
|
|
("18th", "Eighteenth"),
|
|
("19th", "Nineteenth"),
|
|
("20th", "Twentieth"),
|
|
("21st", "Twenty-first"),
|
|
("22nd", "Twenty-second"),
|
|
("23rd", "Twenty-third"),
|
|
("24th", "Twenty-fourth"),
|
|
("25th", "Twenty-fifth"),
|
|
("26th", "Twenty-sixth"),
|
|
("27th", "Twenty-seventh"),
|
|
]
|
|
|
|
with open("model.gptc", "rb") as f:
|
|
model = gptc.deserialize(f)
|
|
|
|
data = {}
|
|
|
|
for number, name in amendments:
|
|
number_data = model.get(number + " Amendment")
|
|
name_data = model.get(name + " Amendment")
|
|
|
|
if number_data and not name_data:
|
|
data[name] = number_data
|
|
elif name_data and not number_data:
|
|
data[name] = name_data
|
|
elif number_data and name_data:
|
|
data[name] = {
|
|
key: (number_data[key] + name_data[key]) / 2
|
|
for key in number_data.keys()
|
|
}
|
|
|
|
classified_amendments = sorted(data.items(), key=lambda x: x[1]["left"])
|
|
|
|
print("# Constitutional Amendment Analysis")
|
|
print()
|
|
print("""This is an analysis of which amendments to the U.S. Constitution are mentioned
|
|
more in right- or left-leaning American news sources. Data do not necessarily
|
|
correlate with support or opposition for the amendment among right- or
|
|
left-leaning Americans.""")
|
|
print()
|
|
print("| Amendment | Left | Right |")
|
|
print("+----------------+-------+-------+")
|
|
for amendment, data in classified_amendments:
|
|
percent_right = f"{data['right']*100:>4.1f}%"
|
|
percent_left = f"{data['left']*100:>4.1f}%"
|
|
|
|
amendment_padding = " "*(14 - len(amendment))
|
|
print(f"| {amendment}{amendment_padding} | {percent_left} | {percent_right} |")
|
|
print("+----------------+-------+-------+")
|
|
print("| Amendment | Left | Right |")
|