Friday, January 12, 2007

Fiddling with GCC

This is my second post on technical part..

I enjoy working on GCC...
Just try these out..
It would be fun..

gcc -E filename

gcc -c -save-temps filename

The second one would produce a .s file which
contains something which I expect the reader would
be aware of...

Do try this readers..
It is fun!!


Wednesday, January 10, 2007

NLP & Telecom

Imagine a world in which a system could answer your calls.

Imagine a world in which you have 24 hours uninterrupted

commercial services on your phone. A world in which humans dont have to incessantly keep on answering calls at the call centers. A simplified world in which your SMSs would be automatically interpreted by the systems and appropriate responses would be generated.

This is being made possible. Intensive Research is going on in the field of Natural Language Processing. The applications of NLP are immense and with time this will be embedded in our day to day life.


Natural Language Processing or NLP is a sub field of Artificial Intelligence. It is a vast field which deals with processing and understanding of textual data. To simplify the explanation, consider a conversation of two people. These two understand what they say to each other. Now replace one of the persons with a terminal which has a NLP mechanism to analyze and interpret things. This system would be talking to the person in the same manner as the first person. Hence an accomplished NLP system is capable of interpreting like a normal human being. The biggest advantage of NLP is that a NLP can be designed for different colloquial languages.

HOW NLP is designed?

NLP is an extensive area of research. I will try to explain the whole thing in as small text as possible. A standard NLP consists of different phases which are very similar to a compiler. These have been explained subsequently in a brief manner.

1. Lexical Analyzer

The given word is fed into the lexical analyzer for validation in that particular language. A separate dictionary is maintained which is being used in the process. It is similar to the lexical analyzer in a compiler.

2. Morphogical Analyzer

A morphological analyzer is used for extracting the root word for a word. The remaining part is called a morpheme. For instance, consider a word 'boys'. Here 'boy' is the root word and 's' is the morpheme.

3. Syntactic Analyzer

This is similar to the parser of the compiler which we are all aware of. The only difference lies in the implementation part. Grammars are based on the grammar of the colloquial language being implemented. Different syntactic analyzers are:

Top Down parser

Bottom Up parser

Recursive Transition Networks

Augmented Transition Networks

There are others too and they are in the development phase.

4. Semantic Analyzer

This is the most important phase. This phase does the main understanding part. Here we use predicate calculus for analyzing a part. To exemplify, consider the following statement:

The Ball is Red.

This statement has two important entities - Ball and Red.

We can show the statement as Red(Ball).

Consider another statement - Ram and Rohit.

This can be explained mathematically as Ram^Rohit.

After building this table of PC, we go for machine translation which conforms to analyzing and understanding

on the machine level.

5. Discourse

Discourse is a part of human talk. Nothing much has

been done in this field.

Different adaptive systems are being built on the basis of NLP. Learning has become a major part. Statistical analysis and neural network techniques are being used these days which have provided impetus to the research in this field.

Other phases can be implemented after this phase. We can build different systems like a QA system by using the above structure.


NLP has tremendous applications in the field of telecommunications. NLP engine can be used for automatically correcting grammatical errors in a SMS application. NLP can be used for parsing different

languages and analyzing them. Thus an integrated system can be provided which will automatically parse texts of any language. Problems on the customer side would be automatically debugged just by an SMS from the customer.

A popular example of the application of NLP in telecommunications is the 'AMITIES' project in Europe. It facilitates easier billing system for the customers. Also the telecom customers directly interact with the system.

More dimensions of exploration in the field are coming up day in and day out. With massive applications, NLP would be a driving technology to reckon with in coming days. Telecommunication would be revolutionized with its power.

Interesting Links