tldr: I have pairs of paragraphs (reviews and responses). Given a set of sentences as an input, what are some methods to output appropriate response sentences contingent on the context and sentiment of the input?
I am new to NLP and an idea that I am toying with for practice is to generate responses (e.g. "Thank you for your review. Glad you enjoyed your stay!") to reviews (e.g. "The place is amazing! Everything was very clean.). The dataset that I scraped includes pairs of reviews and responses, such as:
Review: 'Staff were really friendly, but it was filthy.'
Response: 'We are very sorry you thought the accommodation to be filthy!'
Review: 'The place is amazing! We loved our stay there. It was really amazing. Everything was very clean. The bedroom very cozy, the breakfast delicious! We felt like home.'
Response: 'Hello, thank you for your review, we enjoyed hosting you too. So glad that you had a good time. Would welcome you back anytime.'
It seems like there may be several things involved in a project like this such as topic modeling, sentiment analyses, learning of context and so on, and I would like suggestions for approaches to tackle this sort of problem.
One very naive method I was thinking of would be to convert each sentence into a vector using Google's Universal Sentence Encoder and then match sentences from the review section to the response section with something like cosine similarity. Along those lines, perhaps one way to think about it may be to frame it like a chatbot.
Another idea that seems relevant at the surface is the BoW RNN-LM behind Google's Smart Composer (https://ai.googleblog.com/2018/05/smart-compose-using-neural-networks-to.html) where perhaps the previous e-mail used as context can be replaced by the review to be responded to. Another interesting and perhaps relevant research would be https://www.ijcai.org/proceedings/2018/0567.pdf where it seems like sentences were generated from a few topic words using LSTMs.
Are there other approaches to problems like this using developments such as ELMo or BERT which may also be useful as a training exercise?
Thank you for your time.