I would suggest that any relevant keyword be revealed as soon as any tokens are gained. There are cards that use the opponent's token values in their effects, so the values must be visible, and if you're seeing that a hidden keyword is gaining tokens, you're going to know what identifier it is in all but the most obscure cases.
But then, I don't know if this is necessary. Some decks don't rely on three keywords, and the players occasionally set dummy keywords for the vacant ones to throw off the opponent. One of my decks has Soldier set just in the event that I play the Rare card that fills your hand with Soldiers. There isn't a single Soldier card in that deck.
I suppose that if you play the same opponent enough times, you can start to recognize the deck based on the keywords. But you're likely to have just as much information by Round 3 in any case.