This lab is also available in PDF. Summary: In this laboratory, you will explore techniques for generating random texts. Contents:
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. If the browser tries to add a .htm or html extension, delete that extension and do not add .ss.) * textgen.ss * adjectives * articles * nouns * tverbs b. Open your copy of textgen.ss. You will be working with this copy throughout this lab and the next.
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 by opening it in DrScheme. Do the frequencies stated in that file match those you encountered in parts a and c?
a. Edit your copies of adjectives, nouns, and tverbs to insert at least four more words in each. (You can edit each file in DrScheme, but you should not try to run it.) 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).) You should not spend more than five or so minutes updating these copies. (You'll have a chance to make more changes later.) 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. (If you saved the files on your desktop, the path is likely to be "/home/username/Desktop/".)
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.
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.
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 parts-of-speech list so that it includes the symbol iverb. d. Update sentence to add a third kind of sentence, one that includes intransitive verbs.
If you find that you've finished all of the work, you might consider * Playing with more variants (longer word lists, new sentence structures, etc.); * Starting to read the second reading on text generation; * Thinking about the lab report.
* Created Monday, 2 October 2006 by Samuel A. Rebelsky * Last modified Tuesday, 3 October 2006 by Samuel A. Rebelsky * Complete history available at .