1. A method comprising: receiving, by one or more processors, a set of natural language text; generating, by one or more processors, a set of first metadata for the set of natural language text, where the first metadata is generated using supervised learning method(s); generating, by one or more processors, a set of second metadata for the set of natural language text, where the second metadata is generated using unsupervised learning method(s); training, by one or more processors, an artificial neural network adapted to generate vector representations for natural language text, where the training is based, at least in part, on the received natural language text, the generated set of first metadata, and the generated set of second metadata; generating, by one or more processors, a set of at least two vector representations for the set of natural language text using the trained artificial neural network, where each vector representation of the set of at least two vector representations pertains to a respective subset of natural language text from the set of natural language text; and generating, by one or more processors, a vector representation pertaining to the set of natural language text by adding each of the vector representations in the generated set of at least two vector representations.