Sunday, 03 June, 2001
Teaching the Computer to Understand Human Language
It struck me today that human language doesn't exist in a vacuum. Obvious, I know, but hear me out. Languages have evolved over thousands of years in response to the ever-increasing human body of knowledge. Early languages were simple because they only had to express simple concepts. As humans began learning more and developing more advanced concepts, we extended our languages to express those concepts. This evolution of language continues today, despite some governments' attempts to control their official languages. So what's the point?
Years ago I thought I wanted to study natural language processing--teaching a computer to understand and use written human languages rather than cryptic one- or two-word commands. I bought a couple of books and did a few weeks of research, and decided that I couldn't do the topic justice on a part-time "for fun" basis. At the time (15 or so years ago), most of the attempts I saw were dictionary based involving a database of words and common phrases somehow encoded with their associated meanings. The computer scans some text for recognizable words and phrases, looks up the meanings, and provides an appropriate response. The major problem with this approach is that it's limited by the size and accuracy of the database. More importantly, this approach doesn't allow the computer to learn new words or new meanings. Why? Context.
Context is the key to understanding natural languages. For humans, the context is the world and communicating with the people in it. We don't learn that the word "no" by having somebody tell us the definition, but rather by being told "No!" when we do something wrong. To a child, the word "no" means "don't do that." It's only later that we understand that "no" is a negative response to a question. But computer programs have no understanding of things, people, and places, and thus no real understanding of our context, which I think is required to understand our languages. The question researchers should be asking (I don't know if they are, as it's been a long time since I studied the field) is whether it's even possible to teach a computer to understand context.