CSC 151-02, Fall 2006 : Schedule : Lab 19


Lab 19: Text Generation

Summary: In this laboratory, you will explore techniques for generating random texts.

Contents:


Exercises

Exercise 1: Preparation

a. Make your own copies of the following files. (Note that the easiest way to make your own copy is to right click on the file and select Save Link As ... or something similar.  Firefox may try to add a file extension of .htm or the like; if it does, just delete the .htm from the filename before clicking the Save button.)

b. Open your copy of textgen.ss. You will be working with this copy throughout this lab and the next.

Exercise 1: Initial Explorations

a. Generate ten random sentences using (sentence).

b. What sentence structures do you see in those ten sentences?

c. Make a list of the parts of speech you see, what words appear for each part of speech you see, and the relative frequency of each word within its part of speech.

d. Suppose we were to generate ten random nouns using (generate-part-of-speech 'noun). What words would you expect to see, and in what relative frequencies?

e. Look at nouns. Do the frequencies stated in that file match those you encountered in parts a and c?

Exercise 2: Your Own Words

a. Edit your copies of articles, adjectives, nouns, and/or tverbs to insert at least four more words. Note that you will also have to change the frequencies of the existing words to make the total be 1000. (You can check the frequencies with (check-words-file filename).) Spend no more than 5 minutes adding your own words!

b. Generate ten new sentences. Did your sentences include your own words? If not, read through the code to see where textgen.ss looks for the words and then update it to use your words.

Exercise 3: Capitalizing Sentences

One issue with the sentence procedure is that it does not capitalize the sentences it writes.

a. Write a procedure, (capitalize str), that capitalizes the first letter in str.

b. Update sentence to use this new procedure.

c. Generate ten or so sentences to ensure that your update has worked.

Exercise 4: Other Sentence Structures

a. Update sentence so that it randomly selects between two sentence structures. (You may choose the alternate structure.)

b. Generate ten or so sentences to ensure that your update has worked.

Exercise 5: Intransitive Verbs

a. Create a new words file, iverbs, that contains a variety of intransitive verbs. Recall that each line of the file should have the form ("word" frequency) and that the sum of the frequencies should be 1000.

b. Use check-words-file to make sure that your file has the correct format.

c. Update the list named parts-of-speech to include 'iverb.

d. Update sentence to add a third kind of sentence, one that includes intransitive verbs.   

For Those With Extra Time

If you find that you've finished all of the work, you might consider doing one of the following:


Janet Davis (davisjan@cs.grinnell.edu)

Created October 3, 2006 based on http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2006F/Labs/text-generation-1.html
Last revised October 4, 2006
With thanks to Sam Rebelsky