How can Natural Language Processing models be created? What underlying technologies would I need to train my own model?