There is a product called Unsmoke that restoration companies use after fires in buildings. I have used it in the past as was very effective. It neutralizes the smoke molecule and removes the smell.
Also a Ozone generator can be effective, maybe a little hard to find though.