1. A system configured to identify situations, comprising: at least one processor and at least one memory, the at least one processor and the at least one memory cooperating to function as: a sample generator configured to receive temporal windows of token instances to which a user was exposed and affective response annotations, and to generate samples from the windows and annotations; wherein the temporal windows of token instances comprise token instances that have overlapping instantiation periods; a clustering module configured to cluster the samples into a plurality of clusters utilizing a distance function that computes a distance between a pair comprising first and second samples; wherein the distance function assigns weight greater than zero to difference between token instances belonging to the first and second samples, and to difference between the affective response annotations belonging to the first and second samples; the clustering module is further configured to assign to the samples situation identifiers corresponding to the clusters; and a machine learning trainer configured to utilize the samples and their corresponding situation identifiers to train a model that may be used by a machine learning-based predictor of situations; wherein the machine learning based predictor receives a sample comprising a temporal window of token instances and an affective response annotation, and utilizes the model to predict a situation identifier corresponding to the sample.