Natural Language Processing (NLP)
NLP = Natural Language Processing
# Approaching NLP through the most basic Concepts
# A brief analysis of Brain for NLP with Artificial Intelligence
Upon watching the stages of Intelligence of Human Brain, I have come to a Conclusion that, it is the Greatest gift that the man kind is gifted by God.
The beauty in the nature of Brain is, it Brain if gifted with Humongous amounts of Memory and a Basic Algorithm to operate the Memory very efficiently, when used to its peaks, it analyses itself. The only thing in the Nature that analyses itself.
The point is, analysing the Basic Algorithm (the is a default property of the Brain) is very important to our Approach.
The beauty of the Default Algorithm is the “ability to learn” with lots of precision. The logic what Brain uses, is beyond the understanding of the Brain itself.
As soon as the Brain starts getting inputs from all the Physical organs, it starts analysing with its Basic Logic (protecting itself from any disturbances).
As the Brain starts facing problems, it starts generating algorithms which can solve the problems. This is done using the Default Algorithm and the Vast set of inputs, which forms the Basic Working capabilities of the Brain.
Now, logically speaking, No Brain can simulate its own Basic Default Algorithm, because it is an Infinite Recursion with no base Condition.
The analysis of that Default Algorithm might help in increasing the efficiency of the Top level algorithms.
# NLP Basic Approach
I believe that “Language” is the Most Important Part of Communication. It can be either Verbal or Non-Verbal. In order for a machine to understand and communicate with the Humans, there should be a Common Medium. As Humans are Lazy to Learn Computer Language, it is good to train Computers or Machines in the Human understandable Language. Of course, NLP involves only Verbal Communication.
In order for the Machine to understand the Operating of Human Language, the Default Algorithm that is mentioned earlier, is absolutely Important. Because, it is good for a machine to understand the Language in terms of Human understanding, for a better communication.
Perfect Communication can only happen when the Machine understands what the Human Brain expects it to. So this needs a very strict Syntactic Discipline or set of Rules which is called a “Language”.
The concept of Machine is, of course, very close to the Working of Human Brain. But the only thing is that the Machine lacks necessary algorithms to operate.
There is a great need for an Algorithm that Simulates the Basic Algorithm of Brain, which is obviously called “Learning”. Of course, efficiency can’t be achieved in the Initial Stages, so let’s leave it to our brain to think a way to figure out this algorithm.
# Technical Approach towards NLP
As far as the Computational Processing is concerned, “Python” is a very great Language to start implementing NLP. Python is a very Light-Weight language which suits NLP very much.
A Simple Example that struck my mind was,
-> if we are giving a command to a machine in our Natural language, the “Verb” part of our sentence states the work that should be done on the object (Noun).
-> add 2 and 3 which can be probably probably interpreted as calling the add function()
def add(numList): // Function to add the
sum = 0
for number in numList:
sum = sum + number
This is the Most Basic Operation. These kinds of operations put together forms a bigger function perhaps (The method of creating high algorithms)
It is very obvious that this can be achieved.
There is a rich set of tool kit called “NLTK” (Natural Language Tool Kit) which was developed using Python. It does almost all the necessary stuff, starting with recognising the sentences through tagging the respective Parts Of Speech and recognising Proper Nouns, Persons, Places, Organisations, Abbreviations etc., followed by cutting down the sentences to First Order Logic. There is a huge Stuff that is to be gone through before understanding the whole concept of this analysis.
A pre-requisite for this field is “huge patience”, great understanding of the Language in which the study is done. For example, if NLP is to be done for Sanskrit (the most suitable language for NLP), a great deal of understanding of the Sanskrit Grammar is absolutely necessary.
# Diving Deep into NLP
# Technical Perspective
It is a good idea to bring the core concepts of Computer Science to understand this typical concept.
In CS, a “Compiler” is a program that accepts pieces of code and emits its respective output language. Likewise, it is a better idea to Design a Compiler like thing that can accept Natural Language, Process it, Emit respective Code that can do the given task. This procedure can be used when there is any Technical Computation.
We’ll use a very simple example to understand this better.
Command: “Print the numbers between 1 and 10”
Output : “print range(1, 11)”
The output is printed in the Standard Output device.
# Linguistic Perspective
This is a very typical area, where there are a lots of factors involved. If we start discussing the factors one after the other, the complexity of understanding the Language increases exponentially. Often, humans can’t understand their own language, very funny.
Few such factors are Intonation, Sarcasm, Hidden meaning etc. It is very obvious that these factors can’t be achieved forever because it has no Base Condition or Initial case.
Perhaps Poetry is also involved in the Language which is closely connected with the above mentioned qualities that affect the Language.
So, it is better not to touch this field and leave it to the self analysis of the Brain.
NLP is going to be the most important of all the Areas of Machine Development because it reduces the gap of Communication between the humans and the machines, which are the two dominating species on Earth.
Future would be Codeless. Only customising and maintaining Machines.
Great Source for studying these Concepts of NLP are http://www.nltk.org/ and http://www.nltk.org/book/
Thanks for my friend Narendra Babu, Sanjay Kranthi, Leeladhar MJ, Sandeep V for Supporting Me.