Has your house been previously owned? If so, the previous owners may have had a cat that urinated on the floor at one time in that area and your cat smells it. Steam cleaning will stop it for a short while, but the odor comes back and they start all over again.
WMmitty is right, cage your cat for a while. While it's caged, try to replace the carpet and treat the floor under the old carpet/pad with bleach before you put in the new one.
If you can't replace it, at least steam clean the old one. After the carpet dries for a week, sprinkle large amounts of baking soda on it and don't vaccum it up for 3-5 days. Be sure to walk across the treated areas, as that's what sets the baking soda in for good penetration.