NLP vs NLU vs. NLG: the differences between three natural language processing concepts