Do you have a room without toys that is boring for her? Put her in that room everytime she starts this stuff. Don't let her come out either. Hold the doorknob from the outside, but DON'T let her know you are out there. Ignore her crying and screaming. When she finally quits, pretend that you just came back, open the door and say "Are you ready to act nice now?" If she starts screaming again, say "Since you aren't ready, you can stay in here until you ARE ready." And mean it, mom.
If you do this every single time, she will finally quit these shenanigans. You need to win this battle because it will just get worse if you don't. You don't give her any attention for tantrums and you never give in to what she wants when she acts like this. Putting her in a room away from everyone else takes away ANY attention. If you get tired of holding the doorknob, turn the doorknob around so that it locks from the outside.
You are right to encourage her to talk - try it before she has a full blow up. Consistently look straight faced at her and say "Use your words." And if you are out, like at the diner, grab her hands and hold them fast, and tell her that "Hands are for helping, not hurting." If she has a meltdown in the diner, then pick her up and take her to the car, fasten her up in her seat, and stand outside of the car until she stops screaming. She doesn't get to eat when she does this, and she will figure out that antics like this cause her to lose her dinner. Don't sit in the car with her - she needs you to NOT be there for her.
The only other thing to do is what you don't like - spanking her hand or taking her to the bathroom and spanking her bottom. Some kids will figure out real quick when you say "Do I have to take you to the bathroom?" when you are not at home that this means a real spanking, and they stop this stuff. But if you don't want to do that, do the rest of what I'm explaining. It will really make a difference. It doesn't fix this overnight, mom. But it will fix it.
Dawn