I dont see how that can be fixed. Suppse you have Paranormal.Retro and SciFi.Retro. Stripping the prefixes will means you have Retro and Retro.
One possibility is to have something like:
Character [Profession [Doctor, Lawyer], Type [Male, Female]], Paranormal [Vampire, Romance]
But this becomes really hard to understand if you scheme has several levels.
There is no good way to represent a hierarchical tree as a flat list that I can think of.