4 ms·
Processing natural language is a complex problem. Most syntactic parsing algorithms have a complexity of O(n^3). Add semantic reasoning and pragmatic understand
by BjoernKW 14y ago
Processing natural language is a complex problem. Most syntactic parsing algorithms have a complexity of O(n^3). Add semantic reasoning and pragmatic understanding on top of that and you're way beyond what any computer system available today can process in reasonable time.
There are approximations using statistical algorithms and heuristics such as chunk parsing and those work quite well. In fact, this might very well be the way how human language understanding works as well, i.e. human brains most likely don't need to completely parse a sentence for understanding it but use statistical reasoning and heuristics, too.
Nevertheless, while studying grammar is a discipline almost as old as philosophy, linguistics that is the search for a true understanding of the building blocks of human language is a rather young discipline. When we still don't even have a comprehensive grammar of the English language including all its idiosyncrasies and varieties how can we expect to accurately model languages in computer programs?
- indubitably 14y agoHuman language understanding certainly doesn't require a listener to completely parse a sentence before beginning the process of interpreting it. There is a lot of evidence from psycholinguistics that humans begin the interpretation process of a given word before the end of the word is even pronounced.
- whatshisface 14y agoThe only reason humans can do this is because our language interpreter is separate and parallel to our language parser. Unless we are making a language processing chip (transistors can be fully parallel) we want to avoid wasting work.
- Ihmahr 14y agoWhy "separate and parallel to our language parser"?
- whatshisface 14y agoNeurons are a bit like transistors, it's a lot harder for them to rewire than for them to perform their already-assigned task. As a result, it is most efficient to have blobs of neurons configure into task regions and do the same thing over and over. If you've already got a hardwired parser and a hardwired interpreter, there's really no reason to not have them run in parallel. (We have plenty of calories to run all the neurons that we need to, so any small chance of a benefit is worth a try.)
- indubitably 13y agoYou're pulling all of this out of your ass, right?