UG and MSc projects with Peter Hancox




As you will see from my project suggestions, my interests centre on the processing of language by computer.

Some of the most interesting projects are those that are proposed by the student them self. Sometimes students come up with a full-formed project; other students have an idea but want help in making it into a full-sized project. I'm very interested in hearing your ideas for projects. Although most of my suggestions are about language, this is not my only interest. Other topics that might appeal to me are:


Historical records

Working out family relationships in 18th century parish records
Parish records of births, deaths and marriages can reveal family relationships. Produce a system that can produce family groupings from a parish record. Such a system would have to use some fuzzy matching of names and have some knowledge of family relations built in, for instance to avoid parents over the age of (e.g.) 80 having children.

Marketing tools

Customer relations systems
Getting relevant information to potential customers is very important - and it is equally important to get good information to applicants at the best possible time. Build a customer relations system that will target applicants to provide them with emails giving information about (e.g.) studentships, open days, visas, English language programmes and many other things.

 
Applications of constraint programming
using Constraints over Finite Domains (CLP(FD)) or the Java-based JACOP constraint system.
A university timetabler
In the SW Prolog lectures, CLP(FD) was introduced as a programming paradigm where constraints were set then solutions generated within these constraints. This was demonstrated using a small puzzle which was solved in seconds rather than in the two months it would have taken Prolog.

CLP(FD) is well-suited to scheduling problems, of which university timetabling is a good example. One aspect of this project could be to timetable a significant part of the School's modules but other extensions are possible. For instance, it could be extended to allow individual students to choose options, based on the pre-requisites and co-requisites as well as other considerations such as load balancing. A further extension could be to generate sets of possible options for new programmes, based on the existing module provision.

Planning or scheduling -for instance, flexible planning for disabled/elderly people's ring-and-ride services
Ring-and-ride services are typically small buses that pick-up elderly and disabled people to take them to pre-arranged destinations. They are very much like taxis, except that they are shared. A planning system should not only be able to plan routes so that uses can be collected and delivered to their destination on time, but should ensure that the driver doesn't spend too long on the road, that the bus is not likely to run out of fuel and, hopefully, that routes can be replanned when new customers make booking or users cancel their bookings.

 
Some language projects
Natural language processing for Arabic
Learning to write Arabic seems a difficult problem to people who know only the western (Roman) alphabets. Produce a learner-friendly system for learning to write individual Arabic characters and then combine these into (MSA) words.

Spelling checking is an integral part of word processers. This task is to build a spelling checker for a fragment of Modern Standard Arabic. This task requires some knowledge of Natural Language Processing and a knowledge of Prolog would be helpful. (See: Towards Automatic Spell Checking for Arabic. Proceedings of the 4th Conference on Language Engineering, Egyptian Society of Language Engineering (ELSE), Oct. 21-22, Cairo, Egypt. pp. 240-247.)

Chatbot for giving Prolog help
Students who are learning a new programming language experience many difficulties and a lot of frustration. Often it is not possible for them to get the help they need because there is no expert available, because they are too shy to ask or because they cannot think of a way to express themselves without a fear of being thought stupid. How much better if there was a 24/7 non-judgemental source of friendly help!

Write a chatbot that will attempt to help beginners with Prolog. An interesting element in this project is whether all queries have to be given in natural language or would it be possible to have queries including some or only Prolog code. The system should be accessible over the WWW (for obvious reasons). It would be interesting to see if the chatbot could be given several personalities.

Chatbot for university admissions
Experience has shown that applicants are more likely to choose to come to a department where they believe that they are treated as a valued individual. The opportunity to communicate with on a one-to-one basis is highly valued. However with many hundreds of applications each year, one-to-one conversations are note feasible in most cases. However, the problem would be solved if the applicant could talk to a convincing chatbot, able to respond to their concerns with information about booking accommodation, paying fees in installments, what pre-sessional courses are on offer, ....

Child language acquisition
If we could find out how children learn language, then we would have insights into not only how adults understand and produce language but also how the brain develops a language faculty. This is too large a topic for a project but language learning takes place in small, incremental steps. Many of these steps can be investigated by developing computer models. Slight alterations to the power of the model can be made and the effects traced in the language that is learned. What we are looking for are models which can "grow" in performance as a child does. There are many parts of language learning that can be modelled (of which the most obvious is learning past tenses such as "go-goed-went"). One stage that might be interesting is looking at how children learn the syntactic label (noun, verb,, adjective, ...) of words depending on the distributional information they already know. This project could work on English or any other natural language.

Shallow parsing for Latin
This is a project for someone who has studied Latin up to GCSE level or further. Latin in unlike English because it does not use fairly rigid phrase order but relies on case and inflectional information. A shallow parser should be able to parse simple sentences (e.g. those from Book 1 of the Cambridge Latin Course) and assign syntactic label (noun, verb, etc) and appropriate features (e.g. cases nominative, dative, ...), number (singular, plural) and gender (e.g. for adjectives).

Re-implementing SHRDLU
SHRDLU is a natural language interface system created by Terry Winograd in the 1970s using a predecessor to Prolog called MicroPlanner. The interface is to a display of coloured blocks (cubes, pyramids, etc) on a table top. The system has to understand instructions about moving these blocks and then carry them out. Instructions such as "place the red block on the green block" are easy until it is found that the red block is at the bottom of a pile of other blocks, so the system has to carry out some simple planning. It might need also to do some simple inference. For instance, if there are two red blocks: one at the bottom of the pile; the other alone on the table top, then the system needs to infer that the instruction refers to this second red block.

The system was implemented using a procedural approach very different from the techniques introduced in Natural Language Processing I or Natural Language Processing and Applications. It would be interesting to see how much of a re-implementation could be achieved using more modern NLP methods.

This system should include an interface that displays the table top and its blocks world.

 
finally
Adding ornamentation to baroque music
This will only mean something to someone who has a reasonable knowledge of music. One kind of test of such a system's success is to give it part of the slow movement of the Bach E major violin concerto and see how close it gets to producing the style of ornamentation Bach added to the cembablo transcription of the concerto.

 


Maintained by P.J.Hancox@bham.ac.uk
Last update: 6th February 2013
Go to P J Hancox's Home Page