Maybe you could add ^ and $ to your regular expressions for exact string matches:

nwr["tourism"~"^(hotel|museum)$"];

You put {self.city_name} in quotation marks, but you left them out for the country name {self.country_name}. I would use them everywhere to avoid issues with countries like “United States of America”.

If a user can provide any of these values as input, don’t forget to sanitize / escape values as needed.