Branches of NLP
NLP involves two major branches that help us to develop NLP applications. One is computational, the Computer Science branch, and the other one is the Linguistics branch.
Refer to Figure 3.1:
The Linguistics branch focuses on how NL can be analyzed using various scientific techniques. So, the Linguistics branch does scientific analysis of the form, meaning, and context.
All linguistics analysis can be implemented with the help of computer science techniques. We can use the analysis and feed elements of analysis in a machine learning algorithm to build an NLP application. Here, the machine learning algorithm is a part of Computer Science, and the analysis of language is Linguistics.
Computational linguistics is a field that helps you to understand both computer science and linguistics approaches together.
Here is a list of tools that are linguistics concepts and are implemented with the help of computer science techniques. These tools are often used for developing NLP applications:
- For POS tagging, POS taggers are used. Famous libraries are nltk and pycorenlp.
- Morph analyzers are used to generate word-level stemming. For this, the nltk and polyglot libraries are used.
- Parsers are used to identify the structure of the sentences. For this, we are using Stanford CoreNLP and nltk to generate a parsing tree. You can use Python package called spaCy.