1. A computer-implemented method of associating media programs as part of a smart television platform, the method comprising: obtaining, using at least one processing circuit, first metadata for a first media program comprising a plurality of first fields and second metadata for a second media program comprising a plurality of second fields; extracting, using at least one processing circuit, a plurality of first tokens from each of the plurality of the first fields and a plurality of second tokens from each of the plurality of second fields; calculating, for each of the first tokens, a first weight factor and calculating, for each of the second tokens, a second weight factor, wherein the first weight factor and the second weight factor are based on the difference between: the ratio of the logarithm of the number of token occurrences to the logarithm of the sum of one and the total number of possible occurrences, and one; generating, for each of the first tokens, a first weighted token based on one of the first weight factors; generating, for each of the second tokens, a second weighted token based on one of the second weight factors; generating, for each of the first fields, a first vector comprising a plurality of the first weighted tokens; generating, for each of the second fields, a second vector comprising a plurality of the second weighted tokens. calculating a plurality of correlations indicative of similarities between the first fields and the second fields, wherein each of the plurality of correlations is a dot product of one of the first vectors and one of the second vectors that are selected based on a field type; determining a similarity score between the first metadata and the second metadata by combining the plurality of correlations; and associating the first and second media programs based on the determined similarity score.