NLP is the branch of computer science, focused on developing systems that allow computers to communicate with people using everyday language.
NLP is where computers attempt to derive meaning from human or natural input. we’ve seen huge strides in the last few years. There is several huge projects developed on it like CALO and Wordnet. Stanford’s CoreNLP (demo here) and Apache OpenNLP (for NodeJs its Wrapper is Nope OpenNLP) are strong NLP solutions available today.
General Principles of NLP:
- NLP is a model rather then a theory, It is related to subjective experience.
- NLP is a generative rather than a repair model, It provides useful solution instead of causes. NLP gives us so many choices.
- All human behavior has a structure If one human can do something then, potentially it is possible for almost everyone.
- The Capacity of Conscious mind is very limited – For example around 5-9 chunks of information.
The technology for statistical NLP comes mainly from machine learning and data mining, both of which are fields of artificial intelligence that involve learning from data.
Applications where Natural Language Processing is used:
- Apple Siri
- Google Voice
- Microsoft Cortana
Natural Language Search:
Challenges with natural language processing:
The major challenges we are facing with NLP is Ambiguity. These ambiguity comes from the following types of sentences:
- Long sentences
- Words with multiple definitions
It is also known as parse tree and its ordered rooted tree.
The parse tree breaks down the sentence into structured parts so that the computer can easily understand and process it.
The above is the example of parse tree.
var person = nlp.text(“John hit the ball”).people();
console.log( “Name of the person is:”, person) // john
This is a small application based on the same library where you can give a try. http://kmtabish.com/articles/NLP/