What is NLP in Deep Learning? ”Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination.” (Albert Einstein)
When we are engaged in a conversation with someone we both know the meaning what other is saying, because computers are only programmed to understand machine language but some specific instructions written in that language. Human language is more complex and sometimes ambiguous, suppose we say ”It is raining cats and dogs”,this idiom is understandable for humans but not for computers. In today’s world where we are dealing with ”big data”, what if we teach the computers to understand us, and one way of doing this is, by ”Processing the Natural Language” for computers.
- Natural Language Processing?
Natural Language Processing abbreviated as NLP, is a branch of artificial intelligence which makes human and computer interaction more easy using Natural Language.The ultimate goal of Natural Language Processing is to make computers understand the Natural Language along with its semantics. The Natural Language Processing is considered as relatively challenging task, because computers traditionally requires to be communicated in a programming language that is meaningful,precise and structured.
The Natural Language Processing basically consists of to major parts, syntax which makes the language to be written in grammatically correct manner,and semantics which makes meanings of the sentence(s) more clearer.https://www.overleaf.com/project/5df31425bba67a00010a87a0 In technical terms we can say that NLP deals with building computational algorithms to automatically analyse and represent human language.
- 1 Convolutional Neural Network (CNN)
- 2 Recurrent Neural Network (RNN)
- 3 NLP in python
- 4 Applications of NLP
- 5 Conclusion
As we briefly introduced what is NLP, now we will discuss how NLP is related to Deep Learning. Before Deep Learning approach,Rule based and Machine Learning approaches were used for NLP problems.Since linguistics information was represented with high-dimensional features so, the major problem with these approaches was curse of dimensionality.
Comparing machine learning and hand crafted:
However while comparing machine learning models like Logistic regression and svm e.t.c with neural based models,the neural based models achieved promising results on NLP tasks by using word embeddings,otherwise hand crafted features were used before word embeddings. We will encourage you to read about word embeddings and some pre-trained word embedding models,like Word2Vec, fastText,e.t.c.
Convolutional Neural Network (CNN)
A Convolutional neural network is a neural based approach which can used for many Natural Language Processing tasks such as machine translation, sentiment analysis,and questions answers e.t.c. CNN basically represents feature function that applied to words or n-grams to extract higher level features. Overall CNNs are effective because they can keep information about semantics but they are not very good in preserving sequential order. Therefore another approach RNN used for NLP problems.
Recurrent Neural Network (RNN)
RNNs are special kind of neural approaches,RNNs are good for processing sequential information. The RNNs have a major strength and that is the capacity to memorize the results of previous computations. RNNs have used for many NLP tasks like image captioning, machine translation e.t.c.In comparison with CNN, RNNs can be slightly better than CNN at specific NLP tasks but not superior becuase both approaches deals with different aspects of data.
Input data to the RNNs
The input data to the RNNs is usually one hot-encoding or word embeddings, but it can also be the output from a CNN. There are some variants of RNNs like,LSTM, GRU, and RestNets which basically overcomes the vanishing gradient problem in simple RNNs,we encourage you to read about these variants.
NLP in python
python a very powerful high level programming language created Guido van Rossum and first released in 1991. It is also widely for data science, Machine learning and Deep Learning tasks. When dealing with NLP tasks, python is one the best option, since it has many libraries for NLP tasks like
- Natural Language Toolkit (NLTK)
- Intel NLP
Applications of NLP
NLP has many practical applications, we will briefly discuss some of them for your motivation and interest.
A very famous application of NLP is Google translate which you may have used several times.
You may have noticed auto suggest in your phone or even in your gmail, this is also an application of NLP which determines how likely a certain sentence should be in a language.
Once again i will go with an example of one of the google’s product, i.e. Google search engine, which retrieves mostly accurate information about any topic you want to search.
Text summarization is very useful application of NLP, it mainly divided into two categories (i) Abstractive, and (ii) Extractive. When you search any topic online, you get a summary about that topic at the very top.
Natural Language Processing playing vital role in human and computer interaction as we know that language effective communication,and as with the passage of time more researchers are working on Natural Language Processing and we might see interesting breakthroughs in this field.