I'm late to the party as usual, but...
This problem reminds me of the algorithm certain sites use to determine the similarity between scientific articles. First they define a wordlist containing vocabulary of the relevant scientific fields. This list will form the basis of a vector field. Then they assign a vector to every article in their database; the i-th element of the vector being the number of occurrences of the i-th word from the list. The similarity of two articles is calculated by the scalar product of the (normalized) vectors belonging to the two articles - which makes perfect sense, since the scalar product of two unit vectors is the cosine of the angle between the vectors, so the above definition basically calculates the angle between the word-vectors.