6.863J/9.611J Natural Language Processing

 Course Home
 Calendar & Lecture Schedule
 Lecture Notes & Readings
 Course Tools & Software
 Class messages  & Discussion Forum

Semantics & semantics-syntax projects


  1. There are many extensions of the semantic interpretation-db system - we list some of these projects here. Note that #3 was an acdtual project done last year - it's listed here so you can think about doing it in another domain, perhaps. (I will post a link to its write-up on the main web page.)  Note that this code is available in python and lisp form.
  2. 3-D parsing and semantic interpretation.  If linear precedence is not fixed by parsing, then that allows various free order in the scope of quantifiers, prepositional phrases, etc.  This can be used to get the ambiguous interpretations of sentences such as "Every guy likes some ice-cream".  Implement this using a 'set-based' right-hand side for Earley context-free rules, and use this to extend the existing semantic db system.
  3. Add quantification (every, some, all, the, a, etc.) to the questions the semantic interpreter can currentl handle, making sure that you
    can return different answers in the case of scoping ambiguities, e.g Did every guy sit on a park bench?'. This requires the lambda calculus interpretation of quantifiers discussed in class.  Doing the scoping properly is very challening in general - I can give you examples
  4. Modify the db-semantic system so that it actually uses SQL as sketched in lecture.  In addition - add one or two new semantic extensions, e.g., the difference between intersective adjectives (like 'big  book' means big AND book), vs. non-intersective adjectives (like "fake book", which does not mean "fake" AND book).
  5. Add relative clauses  to the semantic interpreter, along with rightward movement in the
    syntax, so the system can answer questions like Which guy with red hair sat on a park bench or Which book was published yesterday
    about nuclear war.
  6. Add conjunctions.  Note that the scope of conjunctions interacts with quantification and you should take this into account:
    John walks and talks is logically equivalent to John walks and John talks,  but  'some guy walks and talks'
    is not equivalent to 'some guy walks and some guy talks' (because we could be talking about two different guys in the second
  7. Extend our implementation such that it covers negated sentences like "it is not the case that Mary walks.''
  8. Find a suitable -expression for the determiner 'no', and add it to our implementation. Test your solution with sentences like 'No man walks.'
  9. Add a treatment of ditransitive verbs such as 'offer'. Hint: Move along the lines of transitive verbs. Test your solution with sentences like 'Mary offers John a siamese cat.'
  10. Add a treatment such that it covers negated sentences like 'It is not the case that Mary walks.' (It is helpful to start with 'if-then' sentences such as, 'If Mary talks, then Mary walks'.
  11. Add 'be' verbs, as in 'Mary is a student" and "Mary is not a lawyer'.
  12. Localize the system we've implemented. That is, take it to a language of your choice by adapting the lexicon and grammar accordingly.
  13. Add all the verbs and prepositions in lambda form in the file of verbs in http://www.mit.edu/~niyogi/evca.scm
  14. Add a representation of time so that the system can answer when something happened as well as whether it happened before
    or after some other event.  (One could simply add a new  TIME field to the event representation, to start, but I want you do more.)
    You should add the Reichenbach representation of time - I can get you this reference - as a minimum.   For a bigger challenge, add a reasoning component' that would represent the temporal contiguity and continguity of events, so deducing the order in which events occur.
  15. Add discourse processing like that suggested under the blocks world program below - that keeps track of pronouns like 'it', 'she', etc. across sentences.
  16.  Augment  a  blocks world or other 'miniworld' scenario with new actions and thematic role frames.  At least four or five new, semantically different actions should be added. For example, one should be able to talk about putting a block beside another one, or pushing a block towards another, or deflating the ball.  (See the examples under lexical semantics below as well.)
  17. Add an ability to answer why and how questions, by adding a record of the goal structures used to move objects. 
  18. Add a way to answer questions about comparatives and size, as in Move the biggest block  or  Is the ball smaller than the
    block.   Note that this implies a facility to parse comparatives.
  19. Add an ability to process multiple sentences, correctly handling backwards anaphora (it, pronouns, and definite Noun Phrases), as
    well as changes in focus.  For example, in the sequence:

    Pick up the red block.
    Put it on the table  'It'  refers to the red block.  Thus the system should save the NP referent when it tries to carry out the next command.  Add a data structure that can accomplish this.  Note the following dialog:

    Put the blue block on the table.
    Put it on the red block.  ('it' means block, not table)
    Move the ball onto it.
    Clear it.  (still the blue block, not the ball)
    Put the ball on the blue block.
    Put it back on the table. (now 'it' is the ball)  [See Brady and Berwick, Computational Models of Discourse, for more detail]

  20. Lexical semantics.  Look at the verbs in http://www.mit.edu/~niyogi/evca.scm and compare them to Wordnet.  Then add a significant chunk of new verbs, taken from Wordnet, in the style of the lambda forms in the web file. Demonstrate your system
  21. Add a 'meaning postulate' system based on Wordnet 'synonym sets'  to a set of basic verbs, to arrive at a reasoning component for semantic interpretation.


MIT Home
Massachusetts Institute of Technology Terms of Use Privacy