NLP can be used in two main ways for language learning: 1) To analyze learner language produced in response to exercises to provide feedback on errors, and 2) To analyze native language materials to provide learners with relevant examples and generate exercises. For the first use, NLP is needed to automatically analyze learner responses when there are too many possible responses to specify feedback for each one. NLP identifies common properties and errors rather than analyzing specific strings. For the second use, NLP supports finding and presenting native language materials and generating exercises based on them.