Broadly speaking, we can distinguish two aspects that are essential to any NLP problem: The "linguistic" part, which consists in preprocessing and transforming the input information into a usable dataset. The "machine learning" or "data science" part, which consists in applying Machine Learning or Deep Learning models to this dataset.