I would disagree on this, as there are nearly always signs you can look for in terms of people's body language and circumstances that can tip you off, you just have to know what to look for. It's not like a person is standing completely motionless and expressionless and then suddenly attacks you. The signs are there if you know what to look for, but the problem is that most people don't know what to look for and are rubbish at reading body language. You get the same thing when dealing with animals. A lot of uninformed people think that animals attack without warning, when this simply isn't true. All predators displays signs of intent before they attack, you just have to know what to look for. In all of this I am reminded of a recent situation at the pool I work at. There were this group of youths in the pool causing trouble for most of the day so we (the lifeguards) told them to leave. They got angry and started shouting insults, cussing and telling us to fight them. I watched the exchange between one of the youths and one of our lifeguards who was really going at it, and could see that no matter what they said they would never have started a fight, purely from looking at his body language. If he had changed his body language and gone into a more predatory mode, I would have seen it and stepped in, but he didn't and soon after he and his friends left.
Learning to read body language is a very important skill that is sadly overlooked by most people, who rely on their ears rather than their eyes to give them the information.