Improve results using user input
Understanding similarity between two phrases has two aspects


How similar are the unique tokens in the phrases ?
How much should the individual tokens contribute to the overall phrase similarity?


To answer 1, you can use vector similarity which can give you high similarity for tokens similar in meaning. To answer 2, you should look at giving importance/weights to the tokens. You can use a measure like tf-idf. While comparing hospital machine and building machine, machine being a frequent word in your corpus should get a lower score and hence would contribute lesser to the overall similarity. Most of the similarity would be then determined by the similarity between hospital and building which would solve your issue.