https://www.cojocarudavid.me/blog/understanding-natural-language-processing