Это не простая проблема, но простой метод, который вы можете использовать, - это вычисление сходства на основе встраивания. Spacy позволяет вам сделать это из коробки. Давайте возьмем несколько примеров -
# install spacy, will take a lot of time
# Assuming you're in a Jupyter notebook environment
!pip install spacy
!python -m spacy download en_core_web_lg
# import required library and object
import spacy
nlp = spacy.load("en_core_web_lg") ##takes >1 min
# create 4 dummy reviews
sent1 = nlp("The view from the Eiffel Tower was breathtaking")
sent2 = nlp("I went to Paris and I saw all the attractions like Eiffel Tower")
sent3 = nlp("I loved visiting the Eiffel Tower, it was beautiful")
sent4 = nlp("Eiffel Tower is a spectacular place, a must visit")
# computer similarity
print(sent1.similarity(sent2))
print(sent1.similarity(sent3))
print(sent1.similarity(sent4))
Вывод
0.817639160810752
0.8530533383308888
0.8638433420158428
Так что, как мы видим выше, это даст более высокую оценку обзорам, подобным первому. Хотя разница не так уж и велика, я думаю, что вы должны смотреть больше в этом направлении, так как это будет лучше, чем частота слов.