Ambiguity is the main factor which makes NLP hard for machines. Take for example the word “silver” which can be used as a noun, an adjective, or a verb. Another example “The car hit the pole while it was moving” the question is which one is moving the car or the pole?
For more example watch this lecture Why is NLP hard - Natural Language Processing | University of Michigan
Another reasons of why NLP is hard are:
- Non‐standard: language that used in some chat groups doesn’t look like following any rules