1. A method comprising: constructing, based on a set of data, a bipartite graph; wherein the set of data comprises a set of visual words, a set of linguistic words, and a set of associations between the set of visual words and the set of linguistic words; wherein each association in the set of associations is an association between a visual word in the set of visual words and a linguistic word in the set of linguistic words; wherein constructing the bipartite graph includes constructing a first partition and a second partition; wherein the first partition comprises a first set of nodes; wherein each node in the first set of nodes represents a linguistic word in the set of linguistic words; wherein the second partition comprises a second set of nodes; wherein each node in the second set of nodes represents a visual word in the set of visual words; deriving and storing in volatile or non-volatile memory, based on the bipartite graph, an association score between a first node of said bipartite graph and a second node of said bipartite graph.