CS 5761 - Introduction to Natural Language Processing

"Programming" Assignment 6 - Due by 5pm Monday, April 1
(submit via email to patw0006@d.umn.edu as plain text by deadline, no demo required for this assignment)


To become familiar with WordNet, and the ideas of hyponomy, polysemy, and thematic roles.


Part I [5 points]

Rearrange the noun senses of five word that you shall select (based on criteria described below) from the WordNet 1.7 lexical database so that polysemous senses are distinct from homonyms.

For polysemous senses, explain how they are related. In some cases you might need to add a "subsuming sense" if there is one that is not already present in WordNet. However, in general you should avoid the addition of new senses and simply rearrange existing ones. Your explanation should be about a paragraph in length for each polysemous sense you identify, and include a description and example of the polysemy that is present.

Choose 5 nouns that are distinct types and not synonyms. Each noun should have at least 10 senses and require some rearrangement. There should be at least two polysemous senses in the nouns you select.

Show your re-arranged version as if it were displayed by:

wn word -synsn -g

After each revised display, provide your explanation and examples for the polysemous senses you identified.

Part II [5 points]

Select five sentences from the Brown corpus and identify the thematic roles used in that sentence. Use the thematic roles as defined in Figure 16.8, page 609 of our text. The Brown corpus is available at:


Please copy the sentences you tag with thematic roles exactly from this file.

Policies (from syllabus)

All programming assignments and your project will be demonstrated during designated lab sessions. You should also submit an electronic copy of your source code to the TA prior to the designated demo session. (His email address is patw0006@d.umn.edu.) There is no other way to submit your programming assignments or project. Failure to submit AND demo on time will result in a zero.

Any code you submit should be commented. I must be able to understand what your code does simply by reading the comments. This understanding should extend down to the details of your code. So do not simply describe the input and output, also include comments that describe your particular algorithm and coding techniques. Failure to comment to this degree will result in a zero.

All assignments and the project are to be done individually. You are required to write your own code. Unless otherwise specified, you must only turn in code that you personally wrote. The only possible exception to this is if I tell you to use a module that is available in a book or online archive. However, I will clearly indicate when this is permissible. Violations of this policy will result in severe grading penalties and/or failure in the class.