1. Cosine similarity measures the similarity between two non-zero vectors using the dot product. It is defined as cos(0) = u.v / (|| u ||.||v||) A result of -1 indicates the two vectors are exactly opposite, 0 indicates they are orthogonal, and 1 indicates they are the same. (a) Write a function in Python that calculates the cosine self-similarity of a set of M vectors of dimension N. The input to the function will be an M N matrix. The output will be an M x M matrix of cosine similarity scores. (b) Generate a random M x N matrix and use it as input to your function to test it. (c) Create a matplotlib plot and use the matshow function to display the scores.