Lab 9: Analyzing a Speech

With what we know now, we can use Python to figure out something about the vocabulary used by folks who give speeches. For this lab, we will pick on “Honest Abe” who once gave a speech you might had had to memorize at on time or another.

Here is his speech:

Four score and seven years ago our fathers brought forth on this continent a
new nation conceived in Liberty and dedicated to the proposition that all men
are created equal Now we are engaged in a great civil war testing whether that
nation or any nation so conceived and so dedicated can long endure We are met
on a great battle field of that war We have come to dedicate a portion of that
field as a final resting place for those who here gave their lives that that
nation might live It is altogether fitting and proper that we should do this
But in a larger sense we can not dedicate we can not consecrate we can not
hallow this ground The brave men living and dead who struggled here have
consecrated it far above our poor power to add or detract The world will little
note nor long remember what we say here but it can never forget what they did
here It is for us the living rather to be dedicated here to the unfinished work
which they who fought here have thus far so nobly advanced It is rather for us
to be here dedicated to the great task remaining before us that from these
honored dead we take increased devotion to that cause for which they gave the
last full measure of devotion that we here highly resolve that these dead shall
not have died in vain that this nation under God shall have a new birth of
freedom and that government of the people by the people for the people shall
not perish from the earth

Huh? You can’t read this?

I have cleaned this up a bit, removing annoying punctuation marks and blank lines, just leaving it stand as a bunch of words.

Your Job

Copy this speech into a file named “gettysburg.txt”

Next, set up a Python program that reads this file line by line (you can use the readline() method on the file object you get when you open the file for reading. You get a list of lines in the file using this method.)

You will need to create an empty dictionary where you will store the analysis. This dictionary will store an integer number, indicating the number of times that word appeared in the speech. The index will be the word itself.

Now loop over that list of lines, and break each line into a list of words, using the split method. Normalize the words, by converting them to all lower case text.

As you see a new word, check to see if that word is already in your dictionary. If so, add one to the count for that word. If not, add the word to the dictionary, with an initial count of one.

Once you are done, print out the results of your analysis in alphabetical order.