Friday, October 12, 2007

Can't Parse This? Coding Analogies for Literacy

This is one of those instances where a model in computational linguistics has actually led me back to thinking about natural language processing, as opposed to thinking in the other direction. As I was attempting to extract the .flv (Flash) file of an online video using a browser plug-in, I encountered an old friend: "Can't parse this file."

Now what does this mean? Parsing a file can operate on multiple levels: lexical and syntactic, just as parsing can operate for human beings as they process natural language. Parsing is essentially the recognition of patterning and structure within encoded meaning, and this includes text/speech.

If I listen to a foreign language that I have a cursory knowledge of, I am sometimes able to parse the text on a grammatical level, but not on a lexical level. In other words, I may be able to recognize the syntactic structure without understanding the meaning of all of the words. Likewise, if I know all of the lexical items, but I'm not aware of how the syntax influences the encoding of the idea, then I may not understand what is being communicated.

In terms of supposedly optimizing the language learning process, we have arguments for corpus linguistics that state that teaching words with the highest frequency first will assist in the parsing process. Many of the most frequent words are not even lexical items, but fall into the category of grammatical markers, such as prepositions, but then there are all extremely frequent morphemes that can help us parse a text, eg. "able" indicates that the word is going to be an adjective.

Now I intend to return to Halliday's functional grammar to revisit his concepts on alternative methods to parsing natural language, however, I have to wonder if adapting some of the systematic methods of codebreaking in a language learning class, and teaching code (whether computational, abstract, or another language) as a parallel in the language classroom could facilitate the language learning process.

My concept for application is parallel coding 'metaphors,' or analogies, in the second language classroom. Everyone familiar with Gardner's multiple intelligences knows that there are many ways to appeal to an individual's strengths and styles. Language learning has certainly come a long way, but I think we sometimes just get to a point of cosmetic embellishments. If reading and comprehension is essentially the process of parsing (including juggling items in memory), then wouldn't it be helpful to exercise these connections by directly connecting these processes to procedurally similar tasks?

In particular, I'm thinking about ways to make the process of learning "dry code" (vocabulary and grammar) both more stimulating and more memorable for students. However, the aim would not just be to improve language outcomes, but to increase intrinsic motivation, and the general flexibility of students' thinking.

Essentially, the more approaches, angles, connections and decoding skills that students are equipped with (including, hopefully, some that they can actually relate to), the more likely it is that they'll be able to translate those parsing skills across disciplines and into the life of natural language processing.

Before I get to some suggestions and examples, I'd like to state that my thinking on using structural analogies was motivated by my quest for an innovative way to approach grammar and syntax (that's my extrinsic motivation), however, intrinsically and more essentially I'm motivated as an educator to support and promote interdisciplinary learning and the decompartmentalization of 'knowledge domains,' as keeping them separate effectively cripples students in terms of activating prior knowledge and developing flexible thinking. The fact that there are bonuses in terms of linguistic reinforcement and utility is really just icing on the cake.

Some examples of structural analogies to develop concepts of syntax and grammar (articulated/full examples forthcoming):

(1) Using a computer language: due to the fact that computer/machine languages are usually based on strict syntax, computer languages are a way of demonstrating that if the code is flawed then it will not result in the desired function. Schema can be paralleled to the structure of a particular genre, and students may compare structures and elements to natural languages, eg. a command is like a verb; an object or a variable may be like a noun; a modifier may be like an adverb; opening and closing tags may function like the elements at the beginning and the end of a genre; non-optimized code may be compared to verbosity or redundancy.

(2) Movement sequences in video games could be compared to grammatical structure.

(in process... to be continued...)

No comments: