In my opinion Natural Language processing won't ever work unless we find some way to make a machine feel emotion. The reason being that human language is so relient upon emotion.

Think about it: when you are young you do something wrong and your parents yell at you or smack you or something, you learn that no = pain/bad. So there you are, you learn the concept of 'no'. Without this binary distintion how can we link words to a meaning?

Dogs can learn that something is bad when you hit them or yell at them, but how do you train them?
Lets say you want to train your dog to 'sit'. First you would push your dog's butt down whilst saying 'sit'...after doing that for a while your dog will probably still be confused but you try saying sit and hope that he will sit unassisted. If he does you give him a treat or something of the sort thus creating a 'happy' emotion within the dog. After a few days of this training process the dog will have linked the word 'sit' with sitting down.

When you say sit the dog, at first, doesn't know what it means. Lets say the first time you said 'sit' the dog jumped un the air, and then the next time the dog sat, and the time after that it started panting. All the while you havn't given him any indication of whether he is doing right or wrong. How is that dog going to know what to do in some situation at a later date?

It won't! Unless emotions intervene the dog won't understand that command at all.

Until we can create a language completly detached from emotions computers will never understand Natural Language.