2
$\begingroup$

Amazon product page contains a section called Reviews that mention. The section lists the main things that users liked or dislike about the product. For example see this page. How exactly does it work?

This can be done using topic modelling using LDA. But this approach has several drawback.

  • You need to choose number of topics upfront. But in amazon reviews number of topics vary for each product. Number of topics are not the same even for products that belong to same category.

  • You need to give friendly name to each topic. With so many products its unlikely that amazon does that.

What approach would be suitable to do this in completely unsupervised way, without the drawbacks mentioned above.

$\endgroup$

1 Answer 1

2
$\begingroup$

One possible approach I can see is as follows:

  • Amazon considers (until now and based on its historic data, and checked every X time) a possible number of frequent categories (i.e. labels in a classification context)
  • In the product you send, you can see the considered categories:

enter image description here

and the most frequent terms users have writen on their reviews, used as filters:

enter image description here

  • by applying some techniques like word embeddings, you can build a classifier to find which categories those terms belong to, based on some predefined category labels

enter image description here

  • new ones categories could be found with unsupervised clustering techniques
$\endgroup$
4
  • $\begingroup$ Did you mean those filters (ie - value for money, working fine) etc are most frequent phrases in reviews? By clustering did you mean cluster word embedding (of words in reviews) and name those clusters? For my usecase i just need the filters (ie - value for money, working fine) etc. $\endgroup$ Nov 18, 2021 at 8:59
  • $\begingroup$ - Yes it seems to be the most frequent (and related) topics (you can check by clicking on each one and check the number of reviews containing such term or related) - About clustering, yes it should be with the word embedding representing the semantic distance among words/terms - If what you need is the main filters, I would try first by simply counting words/bigrams and improve from there $\endgroup$
    – German C M
    Nov 18, 2021 at 10:58
  • $\begingroup$ TF-IDF extracts most frequent n-grams, but we need to look at each word independently to find relevant n-grams. Can you elaborate clustering? $\endgroup$ Nov 18, 2021 at 11:02
  • $\begingroup$ once you have the embedding vector representation, you can find the priximity among words/expressions by metrics like cosine similarity (in case you want to compare a known reference vector to another) or you can also cluster these ones to find related words into topics $\endgroup$
    – German C M
    Nov 19, 2021 at 10:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.