1. A method comprising: receiving, by an apparatus, data specifying a reference point-of-interest specified by a user and location data of a search region; retrieving, by the apparatus, a reference vector specifying a plurality of features associated with the reference point-of-interest; determining, by the apparatus, a plurality of candidates for similar points-of-interest based, at least in part, on the search region; retrieving, by the apparatus, candidate feature vectors specifying a plurality of features associated with respective candidates by at least real-time extracting semantic topics from one or more text descriptions and one or more user reviews for each of the candidates using a language model assigned a probability to each word thereof, and generating entries of the semantic topics in the feature vectors for each of the candidates, wherein the user reviews include one or more reviews by the user; determining, by the apparatus, a similarity score for each of the candidates via comparing the plurality of features of respective candidates to the plurality of features of the reference point-of-interest to determine a number of common features (n) shared between the plurality of features of the respective candidates and the plurality of features of the reference point-of-interest, and calculating the similarity score using an equation including a weighting vector (w), the reference feature vector (r), a respective candidate feature vector (p): similarity ⁢ ⁢ ( r , p ) = ∑ i = 1 -> n ⁢ w i ⁢ r i ⁢ p i where i=1 to the number of common features shared between the reference vector and the candidate feature vectors; and generating, by the apparatus, a list of one or more similar points-of-interest based on the similarity scores.