The weight array is a model of the opponent's hand. Each opponent p has an array of weights wp[h] where h represents each possible two card hand. There is a weight associated with each h (reset to 1 each new hand) which approximately represents the conditional probability that player p would have played in the observed manner (given that they held hand h). We call these values weights because they act as multipliers in the enumeration computations. If we want a probability distribution of possible hands held by p, we normalize the array by dividing each entry by the total sum of all the entries (the number of valid entries depends on which hands are still possible). The normalized entries w'p[h] represent the conditional probability that player p holds hand h (given the betting history).
This is a very detailed representation, although there is some error since interdependencies are not considered. In the multi-player scenario we do not address the fact that different opponents cannot hold the same card. For example, if we assign a high relative probability to one specific opponent holding an Ace, we do not reduce the relative probabilities of the other opponents holding an Ace. This also means that when a player folds, the information regarding which hands that player may have held is discarded. The weight array is not adjusted with respect to the weight arrays of the other opponents. However, we feel this error is minor in comparison to the savings in complexity and computation time.