Как я могу найти силу ассоциации набора слов с набором предложений, используя Python - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть большая коллекция обзоров UGC, и я хочу выяснить, насколько сильно они связаны с аттракционом, например, Эйфелева башня.

Я пробовал частоту подсчета слов, но получил результаты типа «Я остался наотель и я могли видеть Эйфелеву башню оттуда 'вместе с соответствующими отзывами.

Был ли там вопрос с НЛП, чтобы найти отзывы, которые более тесно связаны с Эйфелевой башней, которые могут оценить "Вид с Эйфелевой башни"захватывало дух "выше, чем", я отправился в Париж и увидел все достопримечательности, такие как Эйфелева башня "

1 Ответ

2 голосов
/ 03 ноября 2019

Это не простая проблема, но простой метод, который вы можете использовать, - это вычисление сходства на основе встраивания. 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

Так что, как мы видим выше, это даст более высокую оценку обзорам, подобным первому. Хотя разница не так уж и велика, я думаю, что вы должны смотреть больше в этом направлении, так как это будет лучше, чем частота слов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...