<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def nearest_neighbors(self, word, top_k=10):
 """Return the nearest k words to the given `word`. Args: word (string):
 single word. top_k (integer):
 decides how many neighbors to report. Returns: A list of words sorted by the distances. The closest is the first. Note: L2 metric is used to calculate distances. """

    #TODO(rmyeid): Use scikit ball tree, if scikit is available
    point = self[word]
    diff = self.vectors - point
    distances = np.linalg.norm(diff, axis=1)
    top_ids = distances.argsort()[1:top_k+1]
    return [self.vocabulary.id_word[i] for i in top_ids]