NLP


"The limits of my language mean the limits of my world"


~Ludwig Wittgenstein


References / Learn More



[1] Wikipedia Page

[2] NLP FAQs - CMU Link

[3] Natural Language Processing

[4] Video - NLP with Python

[5] Video - Introduction to NLP


Natural Language Processing


Natural Language Processing, often abbreviated to NLP is a branch of computational linguistics, artificial intelligence and computer science that handles the analysis of the language that humans use naturally (in everyday speech) in order to connect with computers and machines in both written and spoken contexts.



As we all know, computers require us humans to communicate with them in programming languages. This requires extremely high precision, well-structured algorithms and absolutely no ambiguity in the program. The issue is that human speech isn't always a 100% clear-cut; there is a lot of ambiguity and the linguistic structure of people depends on several external factors such as regional dialects, social context, slang, methods of teaching and many more. Hence the development of NLP applications is relatively challenging.



Modern NLP programs are based on machine learning; this is again another branch of artificial intelligence that enables a program's own understanding through trend analysis of data. NLP typically takes in (as input) a large set of "features" that are generated from the input data. Nowadays, researchers are focusing on using statistical models that make probabilistic decisions depending on attaching real-valued weights to each input feature. As a result, instead of ending up with just one solution, these models enable several different outcomes to be analyzed. This means that researchers and others in the field have a lot more information to deal with, leading to better predictions and results.



There are numerous key techniques used in analyzing NLP. Some of them include pattern matching, syntactically driven parsing, semantic grammars and case frame instantiation. Researchers at Microsoft have had several projects under topics of Machine Translation, Recognizing Textual Entailment, etc...



There are many NLP applications that are widely used today. Their major tasks involve named entity recognition (NER), sentiment analysis, speech recognition, information retrieval, information extraction, relationship extraction, parsing, machine translation and so much more. A very simple and well known example of an application that involves the use of NLP is Apple's Siri. However this is only an example of where NLP will be taking us and is merely just a taste of the whole concept. As the world is getting more advanced, NLP branches such as speech recognition and command technology will be working better. Roughly 10 years from now, NLP will have made its way through general consumer technology and we will get to see a lot more if.



Questions on my mind



1. What are the biggest breakthroughs in the field?

2. Is it possible to predict the unpredictability of NLP results?

3. How does Google's language processing work? What technology is behind it?

4. What branches of Computer Science/AI should one study in order to be more familiar with NLP?


Amer Ahmad
CMU-Q Computer Science
Class of 2019