1. Task Overview and Background to the Task Background: The Eliza system developed by Weizenbaum in 1965 mimicked the behaviour of a Rogerian therapist by responding to user/patient comments in a very neutral way thus allowing the user/patient to reveal their feelings spontaneously. If you have interacted with one of the many Eliza systems on the web you may have realised how the program does this by a series of tricks e.g. responding to keywords or sequences of words, and using pronominal replacement in its answers (me/lbecomes you and vice versa etc.). Overview: Your task is to use Prolog to build a small NLP system that mimics a talk show host called Parky interviewing a celebrity (the user). The full specification is given in part 3 of this document. This assignment is intended to assess your 1. understanding of the theoretical concepts underlying NLP , 2. understanding of the practical concepts underlying NLP , 3. implementation skills, 4. documentation skills. 2. Deliverables You must hand in a report that contains ~ofthe following elements: 1. a discussion of the nature of the system: problem definition, applicable techniques, system architecture, 2. an explanation of the workings of the system: the techniques you have used. Here you should point out the typical tricks systems like Eliza use and say whether and where you have used them and also whether you consider them to be real NLP techniques. You should also point out which parts of the fragment in section 3 lend themselves to Eliza' s tricks e.g. 'Goodbye' is a trigger word to end the conversation. 3. instructions for running the system, 4. a discussion of how the system might be extended or changed in the light of your experience and investigation into the topic so that it could respond more realistically, 5. a printout of the program or programs, 6. a logfile proving that the system works (to whatever extent you manage to get it to work).
Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. Complete copyrights to all work purchased. program that fufills the requirements for an 'excellent' pass. Full Task Specification Build a talk show host named Parky using natural language techniques in Prolog. The system should ask the user/celebrity a number of questions (NL generation), 'understand' the answers (NL parsing) and respond appropriately. Your system should cover (but not necessarily be limited to) the following conversation: Porky; Welcome to the show, x. X; Thankyou Parky. Porky; What have you been doing recently? X; I have been shooting a video. Porky; Did you enjoy that? X; No. Porky; Why do you say no? X; I prefer writing songs. Porky; Thankyou for coming on the show, X. X; Thankyou for having me, Goodbye. Porky; Goodbye. 3.1. Expected Input A proper English sentence not a Prolog list. (This means you will need a component that accepts real sentences and converts them to list form. ) The top call to the system should be 'run-parky'. The system (Parky) should then welcome the guest to the talk show and produce a prompt for the celebrity to respond. [url removed, login to view] Output A proper English sentence not a Prolog list. (This means you will need a component that converts lists to sentence format for output. ) 4. Sueeested Approach As well as the components just mentioned, your program will probably need a parser which will interpret the user's input, a generator which will generate the computer's output and a dialog controller which will determine the appropriate responses (e.g. to certain trigger words. or replacing pronouns etc). You should program using DCGs as you have learned during the module. Parses in readable (bracketed list) form should be capable of being shown tor the input and output sentences. 5. Assessment Pass marks may be obtained for a system which incorporates a generator and parser and a basic dialog control system. Some degree of understanding of the relevant NLP issues must be demonstrated. Good marks may be obtained for a good system which can do the above more flexibly. A good understanding of the NLP issues must be demonstrated in both the report and the system. Excellent marks may be obtained for flexible systems which are able to cope cleanly with failure e.g. words/sentences outside the fragment given in section 3 do not just report 'no'. The report must clearly indicate an excellent understanding of the relevant NLP issues.
windows Using Prolog - preferably SWI PROLOG