def closest(self, w, n=10): """ Assumes the vectors have been normalized. """ scores = self.m.dot(self.represent(w)) return heapq.nlargest(n, zip(scores, self.iw))