https://fastfacts101.medium.com/natural-language-processing-understand-interpret-and-generate-human-language-ebfdeda9527b