We hired a carpet cleaner from Safeways,when our previous dog had problems like your yorkie and it worked brilliantly,cheap to hire too! why not give that a try before you decide?
I think the steamer may give it a cleaner look,(my Mum has one),but I'm not sure it would remove odours.
We didn't use the pet shampoo,but got the traffic cleaner which you spray and leave for a bit,then you shampoo with a dilute solution of the ordinary carpet cleaner.You can buy the liquids when you hire the machine and I bought enough to probably last me a lifetime