├── .sass-cache ├── 9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6 │ ├── base.scssc │ ├── custom.scssc │ ├── layout.scssc │ ├── mixin.scssc │ ├── syntax.scssc │ └── typography.scssc └── c37f90f0a1709f0f429a0073d46e45f57e37ed62 │ ├── base.scssc │ ├── custom.scssc │ ├── layout.scssc │ ├── mixin.scssc │ ├── syntax.scssc │ └── typography.scssc ├── 404.md ├── README.md ├── _config.yml ├── _includes ├── footer.html ├── head.html ├── header-custom.html ├── header.html ├── link.html ├── menu.html ├── nav-footer-custom.html ├── nav-footer.html └── script.html ├── _layouts ├── default.html ├── page.html └── post.html ├── _posts ├── .2017-02-20-first-blog-post.md.swo ├── .2017-02-20-first-blog-post.md.swp ├── 2017-11-10-hello-world.md ├── 2017-11-22-frequently-asked-questions.md └── 2017-11-30-science-toilet-paper-reviews.md ├── _sass ├── base.scss ├── custom.scss ├── layout.scss ├── mixin.scss ├── syntax.scss └── typography.scss ├── _site ├── 404.html ├── README.md ├── about.html ├── atom.xml ├── contribute.html ├── css │ └── main.css ├── frequently-asked-questions.html ├── hello-world.html ├── img │ ├── default-ogimage.png │ ├── favicon.png │ ├── img-test.png │ ├── instron.jpg │ ├── monochrome-mobile.png │ ├── monochrome.svg │ ├── monochrome01.png │ ├── shopping.jpg │ ├── tp-header.png │ └── tp-ogimage.png ├── index.html ├── js │ └── main.js ├── license.md ├── robots.txt ├── science-toilet-paper-reviews.html └── sitemap.xml ├── about.md ├── atom.xml ├── css └── main.scss ├── img ├── default-ogimage.png ├── favicon.png ├── img-test.png ├── instron.jpg ├── monochrome-mobile.png ├── monochrome.svg ├── monochrome01.png ├── shopping.jpg ├── tp-header.png └── tp-ogimage.png ├── index.html ├── js └── main.js └── license.md /.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/base.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/base.scssc -------------------------------------------------------------------------------- /.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/custom.scssc: -------------------------------------------------------------------------------- 1 | 3.4.23 (Selective Steve) 2 | 6d5342f15250339719bbdabc22cd6c2496eebf57 3 | o:Sass::Tree::RootNode :@children[o:Sass::Tree::CommentNode : @value[I"/*- Custom style -*/:ET: 4 | @type: normal;[:@filename0: @options{: 5 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;i: @offseti: @end_poso;;i;i: 6 | @fileI"@/home/dyuti/work/jekyll-layout/monochrome/_sass/custom.scss; T:@importero: Sass::Importers::Filesystem: 7 | @rootI"4/home/dyuti/work/jekyll-layout/monochrome/_sass; F:@real_rootI"4/home/dyuti/work/jekyll-layout/monochrome/_sass; F:@same_name_warningso:Set: 8 | @hash{o; ;[I"5/* -- Put custom style under this point -- // */; T; 9 | : silent;[; 0; @ ;i;o; ;o;;i;i;o;;i;i3;@;@; 0; @ :@templateI"H/*- Custom style -*/ 10 | 11 | // -- Put custom style under this point -- //; T;i;o; ;o;;i;i;o;;i;i;@;@:@has_childrenT -------------------------------------------------------------------------------- /.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/layout.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/layout.scssc -------------------------------------------------------------------------------- /.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/mixin.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/mixin.scssc -------------------------------------------------------------------------------- /.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/syntax.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/syntax.scssc -------------------------------------------------------------------------------- /.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/typography.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/9d5f1fc03c023c58a3e0f0d3fa4742f778bbdef6/typography.scssc -------------------------------------------------------------------------------- /.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/base.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/base.scssc -------------------------------------------------------------------------------- /.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/custom.scssc: -------------------------------------------------------------------------------- 1 | 3.4.23 (Selective Steve) 2 | 6d5342f15250339719bbdabc22cd6c2496eebf57 3 | o:Sass::Tree::RootNode :@children[o:Sass::Tree::CommentNode : @value[I"/*- Custom style -*/:ET: 4 | @type: normal;[:@filename0: @options{: 5 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;i: @offseti: @end_poso;;i;i: 6 | @fileI",/home/dyuti/work/blog/_sass/custom.scss; T:@importero: Sass::Importers::Filesystem: 7 | @rootI" /home/dyuti/work/blog/_sass; F:@real_rootI" /home/dyuti/work/blog/_sass; F:@same_name_warningso:Set: 8 | @hash{o; ;[I"5/* -- Put custom style under this point -- // */; T; 9 | : silent;[; 0; @ ;i;o; ;o;;i;i;o;;i;i3;@;@; 0; @ :@templateI"H/*- Custom style -*/ 10 | 11 | // -- Put custom style under this point -- //; T;i;o; ;o;;i;i;o;;i;i;@;@:@has_childrenT -------------------------------------------------------------------------------- /.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/layout.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/layout.scssc -------------------------------------------------------------------------------- /.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/mixin.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/mixin.scssc -------------------------------------------------------------------------------- /.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/syntax.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/syntax.scssc -------------------------------------------------------------------------------- /.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/typography.scssc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/.sass-cache/c37f90f0a1709f0f429a0073d46e45f57e37ed62/typography.scssc -------------------------------------------------------------------------------- /404.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: 404 - Page not found 4 | --- 5 | 404 - Page not found 6 | ==================== 7 | Sorry, we couldn’t find the requested URL. You can try again by going [back to the homepage]({{ site.baseurl }}). 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## About 2 | 3 | [TheReviewIndex blog](https://thereviewindex.com/blog), made with Jekyll. 4 | 5 | ## Template used 6 | 7 | [Monochrome](https://github.com/dyutibarma/monochrome) 8 | 9 | 10 | ## Author 11 | 12 | - TheReviewIndex 13 | - Web site: [Review Aggregation and Summary Site for India - TheReviewIndex](https://thereviewindex.com) 14 | 15 | ## License 16 | Released under [MIT License](license.md). 17 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # Site settings 2 | title: Blog - technology and science at TheReviewIndex 3 | description: "A blog for sharing thoughts on technology, science and insights at TheReviewIndex." 4 | url: "http://www.thereviewindex.github.io/blog" 5 | ogimage: "img/default-ogimage.png" 6 | author: 7 | name: "The Review Index" 8 | email: "root@thereviewindex.com" 9 | url: "https://thereviewindex.com" 10 | 11 | 12 | # Build settings 13 | baseurl: /blog # Change this to your relative path (ex: /blog/), or leave just a / 14 | markdown: kramdown 15 | source: . 16 | destination: ./_site 17 | permalink: /:title 18 | paginate: 8 19 | paginate_path: /page:num/ 20 | 21 | # Default values 22 | defaults: 23 | - 24 | scope: 25 | path: "" 26 | type: "posts" 27 | values: 28 | layout: "post" 29 | 30 | # Plugins 31 | gems: 32 | - jekyll-paginate 33 | - jekyll-sitemap 34 | 35 | # Custom variables 36 | version: "1.0.0" 37 | 38 | # Options 39 | custom_header: false 40 | custom_nav_footer: false 41 | reverse: false 42 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /_includes/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {%if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %} 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /_includes/header-custom.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /_includes/header.html: -------------------------------------------------------------------------------- 1 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /_includes/link.html: -------------------------------------------------------------------------------- 1 | Site 2 | Blog 3 | -------------------------------------------------------------------------------- /_includes/menu.html: -------------------------------------------------------------------------------- 1 | 25 | -------------------------------------------------------------------------------- /_includes/nav-footer-custom.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/nav-footer.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_includes/script.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include head.html %} 5 | 6 | 7 | 8 |
9 | 16 | 17 |
18 | 19 | 20 | {% include menu.html %} 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | {% if site.custom_header == true %} 29 | {% include header-custom.html %} 30 | {% else %} 31 | {% include header.html %} 32 | {% endif %} 33 | 34 | 35 |
36 | 37 |
38 | 39 | {{ content }} 40 | 41 |
42 | 43 | 44 | {% if paginator.total_pages > 1 %} 45 | 70 | {% endif %} 71 | 72 |
73 | 74 | 75 |
76 | {% include footer.html %} 77 |
78 | 79 | 80 | {% include script.html %} 81 | 82 |
83 | 84 | 85 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 | 6 | {{ content }} 7 | 8 |
-------------------------------------------------------------------------------- /_layouts/post.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 |
5 |
6 | 7 | 8 | 11 | 12 | 13 |     14 | 15 | 16 | 19 | 20 |
21 | 22 |

{%if page.header %}{{ page.header }}{% else %}{{ page.title }}{% endif %}

23 |
24 | 25 |    ·    26 | {{ page.duration }} 27 |
28 |
29 | 30 | {{ content }} 31 | 32 |
33 | 34 |
35 | 36 | 37 | 40 | 41 | 42 |     43 | 44 | 45 | 48 | 49 |
50 | 51 | 52 |
53 |
54 |
55 | 56 |
57 | 58 | -------------------------------------------------------------------------------- /_posts/.2017-02-20-first-blog-post.md.swo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_posts/.2017-02-20-first-blog-post.md.swo -------------------------------------------------------------------------------- /_posts/.2017-02-20-first-blog-post.md.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_posts/.2017-02-20-first-blog-post.md.swp -------------------------------------------------------------------------------- /_posts/2017-11-10-hello-world.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Hello World - TheReviewIndex 3 | description: The first blog post to introduce TheReviewIndex. 4 | header: Hello World! 5 | duration: 1 minute read 6 | --- 7 | 8 |   9 | 10 | Hi there. 11 | 12 | We are TheReviewIndex. 13 | 14 | We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It's impossible to make sense of that many reviews, let alone compare across products. 15 | 16 | So we built [The Review Index](https://thereviewindex.com) that uses Neural Networks to detect and quantify recurring patterns in reviews, enabling one to go through thousands of reviews in a few minutes. 17 | 18 | Also - we call out products with significant volumes of spam / fake reviews so that one doesn't end up trusting them. 19 | 20 | We recently launched a public beta for Amazon (US) electronic / gadget / appliance reviews, and are iterating over the website and algorithms. We will expand to include other marketplaces soon. 21 | 22 | There is a lot of data waiting to be churned and presented - stay tuned! 23 | 24 | 25 |   26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /_posts/2017-11-22-frequently-asked-questions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Frequently Asked Questions - TheReviewIndex 3 | description: The first blog post to introduce TheRevie 4 | header: Frequently Asked Questions 5 | duration: 5 minutes read 6 | --- 7 | 8 | What is TheReviewIndex all about? 9 | 10 | > We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It's impossible to make sense of that many reviews, let alone compare across products. 11 | So we built [The Review Index](https://thereviewindex.com) that uses Neural Networks to detect and quantify recurring patterns in reviews, enabling one to go through thousands of reviews in a few minutes. We are unbiased, independent and aspire to simplify online shopping. 12 | 13 | 14 | How does it work? 15 | 16 | > All you have to do is enter the url of the product you're looking to purchase. Our machines will, at real time, fetch the lastest user reviews from sites like Amazon. Then, the fetched reviews will be parsed to detect fine-grained topics and implicit sentiment, after blacklisting potentially unnatural content. This information will be churned and presented as an unbiased, feature-wise summary scorecard of the aggregate opinion. 17 | 18 | 19 | Where does TheReviewIndex get the data? 20 | 21 | > TheReviewIndex requires data such as product details, reviews, etc. We crawl all available information from across various public webpages. This data is then churned to get presentable insights. 22 | 23 | 24 | I noticed some discrepencies in the data quality? What do I do? 25 | 26 | > We leverage Neural Networks to detect topics of discussion and sentiment in review sentences and constantly monitor the quality of algorithms and data to maximize accuracy and ensure that outliers do not influence the eventual conclusions. 27 | > However, it is still possible that there will be a few cases of incorrect classification. 28 | > If you discover any large discrepencies or quality issues, you can provide feedback using the link provided in the site or write to us at **root@thereviewindex.com** with the details and we will take these inputs into consideration while tweaking our algorithms. 29 | 30 | 31 | How can I trust TheReviewIndex? How do I know that the evaluation is fair? 32 | 33 | > We have deliberated over this question from the very beginning. Since building and keeping trust with you is very important to us, we have designed the product to ensure that every score or recommendation is strongly supported by solid evidence. If you want to drill deeper, you can click through and read all individual user comments that contributes toward the score of each feature. Not just that, all these comments are properly attributed and linked back to the origin. 34 | 35 | 36 | How do you deal with review spam? 37 | 38 | > One of the major concerns of online opinions is the problem of spam and incentivized reviews. Although, a single spammy review does not receive too much importance (since we rely on mass opinion for making our judgements), several spammy reviews can be misleading, often drowning actual user opinion. 39 | > We think that spam, much like any other crime, will leave behind a trail. This is true especially when spamming is done at scale. We try to identify these and in the spirit of transparency (like rest of the site), we are starting to expose the underlying data points that contributed to our decision. 40 | > Right now we expose only a few of signals out, but we will be rolling out a more comprehensive set of signals in the near future. 41 | 42 | 43 | I'm a brand and my product is rated poorly. What can I do? 44 | 45 | > Short answer - improve your product. We rely on user reviews from marketplaces to derive and present our conclusions. As the sentiment in organic reviews improves, our summaries will improve too. 46 | 47 |   48 | 49 | Have more questions? Send them out to **root@thereviewindex.com** and we will revert as soon as possible. 50 | 51 | 52 |   53 | -------------------------------------------------------------------------------- /_posts/2017-11-30-science-toilet-paper-reviews.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Let's science the sh*t out of Toilet Paper Reviews 3 | description: Thousands of toilet paper reviews analyzed scientifically to determine the best quality products. 4 | header: Let's science the sh*t out of Toilet Paper Reviews 5 | duration: 7 minutes read 6 | ogimage: img/tp-ogimage.png 7 | --- 8 | 9 | 10 | 11 | Toilet papers. A trivial household item, but touches us in our everyday lives. Amazon.com lists over 50 brands of Toilet Papers. With over 9000 product listings, how exactly does one pick the right toilet paper - hopefully in a quantified, scientific way? 12 | 13 | Let us look at the possible methods of evaluation: 14 | * Physical / Mechanical tests 15 | * Surveys 16 | * Reviews 17 | 18 | ### Physical / Mechanical Tests 19 | These often involve analyzing the physical characteristics of TP using tests such as the following: 20 | * Water absorption test 21 | * Paper strength using mechanical puncturing device 22 | * Tearing tests 23 | 24 | 25 |
Instron - an electomechanical tension / compression device (Image credit: https://instron.us)
26 | 27 | 28 |   29 | 30 | The good part about such types of evaluations is that they can be completely objective. The tests (if conducted properly) can provide objective and precise measurements. 31 | 32 | The issue with this kind of evaluation, though, is that it is often impossible to arrive at tests that can grade each and every aspect of a product or incorporate actual consumer experiences - for example. what kind of a test can be used to quantify "comfort" ? 33 | 34 | ### Surveys 35 | A possible solution to the above problem, is to perhaps involve the consumers in the grading process - after all who better to measure the product than the end users of the product itself! 36 | 37 | Surveys work great if designed right. However, designing the right survey to incite unbiased responses can be challenging due to factors like [Response Bias](https://en.wikipedia.org/wiki/Response_bias). Even if we were to be able to come up with a questionnaire that records participants true responses across all aspects of the product, keeping it updated over time can get challenging. 38 | 39 | ### Reviews 40 | Reviews are informative nuggets of free text and are already available for most products that are sold on the internet. They are the voice of the consumers in a public forum. 41 | 42 | > " People often talk about the things they care about " 43 | 44 | ... and the same is true for online reviews. 45 | 46 | By itself, a single review represents an individual's experience - but these become even more interesting when we start to look at repeated patterns across many reviews. 47 | 48 | What if we could use this information to scientifically come up with conclusions about the product? 49 | 50 | Using Neural Networks + Natural Language Processing, it is possible to extract the topics and sentiment, enabling us to quantify objective metrics for the product. 51 | 52 | Now let's try and analyze TP reviews from Amazon.com. 53 | 54 | After crawling Amazon.com to gather reviews, we need to preprocess the data to address the following issues: 55 | * Unverified reviews - These are reviews by people who have not bought the product from the marketplace. Since there is no evidence that these buyers are genuine, we do not consider them. 56 | * Old reviews - Consumer expectations and products change over time. Keeping this in mind, we remove reviews that are more than a couple of years old. 57 | * Review spam - many brands and sellers create "fake" reviews or incentivize reviewers by giving away free samples of their products. This results in significant biases creeping into the review data of a product. We can mitigate this using outlier detection on the reviewer history to identify products that have significant spammy reviews. 58 | * Product variants - Some websites like Amazon group reviews of a bunch of products into the same listing - thankfully, Amazon does provide a (somewhat hidden - "show only this format") option to filter the reviews by variant. 59 | * Too few reviews - it is difficult to draw meaningful conclusions based on a small number of reviews, hence for this blog post, we discard products with fewer than 200 reviews. 60 | 61 | After the above clean ups, we end up with 29574 reviews across 274 products (only considering upto 1000 most recent reviews for each product). 62 | 63 | We can now cluster the review sentences to extract the most spoken about topics in the reviews. Following are the recurring topics that start to emerge: 64 | 65 | 66 | 67 | 70 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 |
68 | TOPIC CLUSTERS 69 | 71 | SAMPLE PHRASES 72 |
Overall"the product was great", "did the job" ...
Marketplace / Delivery      "was delivered on time", "doorstep delivery" ...
Paper Quality"strong", "durable", "doesn't tear" ...
Comfort"soft", "cushy", "softest TP out there", "little ruff on the bum" ...
Value For Money"worth the price", "bargain", "rip off" ...
Lasts Long"lasts forever", "ran out in a day", "larger than expected" ...
Cleaning"squeaky clean bum", "leaves quite a bit of fuzz behind" ...
Clogging"clogs the sewer line", "gentle on the plumbing", "had to use the plunger" ...
Dispenser"barely fit my holder", "might not fit in your dispenser" ...
Gag Gift"gag gift for my roommate", "gift as a prank" ...
Eco-Friendly"environmentally friendly", "made of recycled paper" ...
Travel"carry in your purse or pocket", "great for travel" ...
Perfumed TPs"smell is so strong", "smell soooooo good" ...
126 | 127 |   128 | 129 | 130 | For the purpose of this exercise, we will not consider the top two topics in the above list - reason being that the "Overall Product" statements are too generic, loosely used and volume-wise dominates every other topic, and the "Marketplace / Delivery" topic is not directly related to the product. We discard the (bottom four) low volume clusters as well. 131 | 132 | Let's look at the final set of clusters with their volume distribution: 133 | 134 |
135 | 136 |
137 | 138 |
139 | 140 |
141 | 142 | 143 | 144 | All the cluster sentences are then passed through our custom sentiment classifier to arrive at the positive and negative polarity. This gives us a topic-wise polarity of the products. We can now start to compare topics across products to arrive at an overall product ranking. 145 | 146 | The best products, according to our analysis are (#1, #2): 147 | 148 | [//]: # (Best 2 - Overall) 149 | 150 |
151 |
152 | 153 |
154 | 155 |
156 | 157 |
158 | 159 | 160 |
161 | 162 |
163 |
164 |
165 | 166 |
167 | 168 |
169 | 170 |
171 |
172 |
173 | 174 | ... and the worst products on our list are (#243, #242): 175 | 176 | [//]: # (Worst 2 - Overall) 177 | 178 |
179 |
180 | 181 | 182 |
183 | 184 |
185 | 186 |
187 | 188 | 189 |
190 |
191 |
192 |
193 | 194 |
195 | 196 |
197 | 198 |
199 |
200 |
201 | 202 | 203 | Note that we not only have a ranking, but also a justification - for example the worst product is a Tubeless TP, which seems to have a lot of holder / dispenser related compaints. 204 | 205 | We can even sort by any topic and pick the topic-wise best products, for example the best TPs for preventing clogging are (Clog #1, Clog #2): 206 | 207 | 208 | [//]: # (Best 2 - Clog) 209 | 210 |
211 |
212 | 213 |
214 | 215 |
216 | 217 |
218 | 219 | 220 |
221 | 222 |
223 |
224 |
225 | 226 |
227 | 228 |
229 | 230 |
231 |
232 |
233 | 234 | Why stop at just toilet papers? 235 | 236 | We at [TheReviewIndex.com](https://thereviewindex.com) believe that similar techniques can be used for analyzing all kinds of reviews - which is why we've just launched a tool that creates spam filtered review summaries for any Amazon.com electronic / gadget / appliance. 237 | 238 | You can try it out here: 239 | 240 | [https://thereviewindex.com](https://thereviewindex.com) 241 | 242 |   243 | 244 | 245 | 246 | 247 | 248 | 249 | -------------------------------------------------------------------------------- /_sass/base.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * Monochrome is a simple, responsive blog theme built for Jekyll. 3 | */ 4 | 5 | /*- Base reset -*/ 6 | 7 | * { 8 | -webkit-box-sizing: border-box; 9 | -moz-box-sizing: border-box; 10 | box-sizing: border-box; 11 | } 12 | 13 | html, body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, img { 14 | margin: 0; 15 | padding: 0; 16 | border: 0; 17 | } 18 | 19 | body { 20 | 21 | } 22 | 23 | /*- Base color -*/ 24 | 25 | $background-color: #FFFFFF; 26 | $text-color: #000000; 27 | $text-light-color: rgba(0,0,0,0.6); 28 | $text-dark-color: #000000; 29 | 30 | /*- Base settings -*/ 31 | 32 | html { 33 | background-color: $background-color; 34 | font-size: 16px; 35 | @media (min-width: 940px) { 36 | font-size: 18px; 37 | } 38 | line-height: 1.8em; 39 | color: $text-color; 40 | } 41 | 42 | body { 43 | max-width: 800px; 44 | margin: 0 auto; 45 | padding: 0 10px; 46 | } 47 | 48 | /*- Link -*/ 49 | a { 50 | color: $text-color; 51 | text-decoration: none; 52 | font-weight: 400; 53 | &:hover, 54 | &:focus { 55 | color: darken($text-color, 5%); 56 | } 57 | } 58 | 59 | /* Media Queries */ 60 | 61 | @media screen and (max-width: 600px) { 62 | .show-only-large {display:none} 63 | .show-only-small {display:block} 64 | } 65 | 66 | @media screen and (min-width: 600px) { 67 | .show-only-large {display:block} 68 | .show-only-small {display:none} 69 | } 70 | 71 | /* Common classes */ 72 | 73 | .f-right { float: right; } 74 | .f-left { float: left; } 75 | .clear { clear:both; } 76 | 77 | // to align div vertically and horizontally in center of another div 78 | .parent { display: flex;} 79 | .inner { align-self: center; } 80 | 81 | // justify 82 | .justify-center { justify-content: center; } 83 | .justify-spaceBetween { justify-content: space-between; } 84 | 85 | .w100 { width: 100% } 86 | .h100 { height: 100% } 87 | .wh100 { width: 100%; height: 100%} 88 | 89 | // position 90 | .absolute { position: absolute; } 91 | .relative { position: relative; } 92 | .top { top: 0 } 93 | .bottom { bottom: 0 } 94 | .right { right: 0 } 95 | .left { left: 0 } 96 | 97 | // padding 98 | .m-t-6e {margin-top:6em} 99 | 100 | // fonts 101 | .fw-300 {font-weight: 300} 102 | .fw-400 {font-weight: 400} 103 | .fw-500 {font-weight: 500} 104 | 105 | .fs-12e {font-size: 1.2em} 106 | 107 | .fc-light {color: #777777} 108 | 109 | // borders 110 | .border-l-l {border-left: 1px solid #f2f2f2} 111 | 112 | //code 113 | .code 114 | { 115 | font-family:monospace; 116 | } 117 | 118 | // tables 119 | td {border-bottom: 1px solid #f2f2f2} 120 | -------------------------------------------------------------------------------- /_sass/custom.scss: -------------------------------------------------------------------------------- 1 | /*- Custom style -*/ 2 | 3 | // -- Put custom style under this point -- // -------------------------------------------------------------------------------- /_sass/layout.scss: -------------------------------------------------------------------------------- 1 | /* -- General Layout -- */ 2 | 3 | /* Navigation */ 4 | 5 | #nav, #nav-left { 6 | a { 7 | display: block; 8 | color: $text-color; 9 | padding: 0.33334em 0; 10 | font-size: 1.5em; 11 | font-weight: 400; 12 | @media (min-width: 940px) { 13 | font-size: 1em; 14 | } 15 | &:hover { 16 | background-color: lighten($text-light-color, 5%); 17 | } 18 | } 19 | span { 20 | font-weight: 200; 21 | } 22 | } 23 | 24 | #nav { 25 | @include nav-position(right); 26 | } 27 | 28 | #nav-left { 29 | @include nav-position(left); 30 | } 31 | 32 | /* Toggle class to open menu */ 33 | 34 | #nav.menu-open { 35 | @include open(-14rem); 36 | } 37 | 38 | #nav-left.menu-open-left { 39 | @include open(14rem); 40 | } 41 | 42 | #nav-links { 43 | @media (max-width: 940px) { 44 | display:none; 45 | } 46 | a { 47 | padding-left: 10px; 48 | color: $text-color; 49 | font-weight: 300 50 | } 51 | } 52 | 53 | /* Separator after menu */ 54 | 55 | #nav-list:after { 56 | display: block; 57 | content: ''; 58 | width: 5rem; 59 | height: 1px; 60 | margin: 23px auto; 61 | background-color: $text-color; 62 | } 63 | 64 | /* Icon menu */ 65 | 66 | #nav-menu { 67 | @include icon-position(right); 68 | @media (min-width: 940px) { 69 | display:none; 70 | } 71 | } 72 | 73 | #nav-menu-left { 74 | @include icon-position(left); 75 | @media (min-width: 940px) { 76 | display:none; 77 | } 78 | } 79 | 80 | #menu { 81 | height: 4px; 82 | width: 1.5em; 83 | background-color: $text-color; 84 | margin-top: 8px; 85 | &:after, &:before { 86 | content: ""; 87 | display: block; 88 | position: relative; 89 | height: 4px; 90 | width: 1.5em; 91 | background-color: $text-color; 92 | transition: all 0.3s ease-in; 93 | } 94 | &:before { 95 | top: -8px; 96 | } 97 | &:after { 98 | top: 4px; 99 | } 100 | &.btn-close { 101 | background: none; 102 | } 103 | &.btn-close:before { 104 | top: 0; 105 | -webkit-transform: rotate(-45deg); 106 | -moz-transform: rotate(-45deg); 107 | -ms-transform: rotate(-45deg); 108 | transform: rotate(-45deg); 109 | background-color: $text-color; 110 | } 111 | &.btn-close:after { 112 | top: -4px; 113 | -webkit-transform: rotate(45deg); 114 | -moz-transform: rotate(45deg); 115 | -ms-transform: rotate(45deg); 116 | transform: rotate(45deg); 117 | background-color: $text-color; 118 | } 119 | } 120 | 121 | /* Main content */ 122 | 123 | .fixed { 124 | position: fixed; 125 | width: 100%; 126 | @media (min-width: 940px) { 127 | position: static; 128 | } 129 | } 130 | 131 | #container { 132 | margin:0 auto; 133 | } 134 | 135 | #header { 136 | border-bottom: 1px solid rgba(0,0,0,0.14); 137 | text-align: center; 138 | margin-bottom: 2em; 139 | height: 5em; 140 | position: relative; 141 | a { 142 | text-decoration: none; 143 | display: inline-block; 144 | } 145 | div { 146 | margin: 0 auto; 147 | } 148 | h1 { 149 | font-size: 2em; 150 | padding-bottom: 0; 151 | span { 152 | color: $text-light-color; 153 | font-weight: 300; 154 | } 155 | } 156 | } 157 | 158 | /* Posts */ 159 | 160 | #posts { 161 | li { 162 | list-style-type: none; 163 | } 164 | } 165 | 166 | #post-page { 167 | margin-bottom: 1.5em; 168 | @media (min-width: 940px) { 169 | margin-bottom: 1.3334em; 170 | } 171 | } 172 | 173 | .post+.post:before { 174 | display: block; 175 | content: ''; 176 | width: 5rem; 177 | height: 1px; 178 | margin: 23px auto; 179 | background-color: lighten($text-color, 70%); 180 | } 181 | 182 | .by-line { 183 | display: block; 184 | color: lighten($text-color, 25%); 185 | line-height: 1.8em; 186 | margin-bottom: 1.5em; /* 24px/16px */ 187 | font-weight: 200; 188 | @media (min-width: 940px) { 189 | display: block; 190 | color: lighten($text-color, 25%); 191 | line-height: 1.8em; 192 | margin-bottom: 1.3334em; /* 24px/18px */ 193 | font-weight: 200; 194 | } 195 | } 196 | 197 | img { 198 | max-width: 100%; 199 | display: block; 200 | margin: 0 auto; 201 | margin-bottom: 24px; 202 | -webkit-border-radius: 4px; 203 | -moz-border-radius: 4px; 204 | -ms-border-radius: 4px; 205 | border-radius: 4px; 206 | } 207 | 208 | img[title="Monochrome"] { 209 | box-shadow: 0 2px 6px #ddd; 210 | } 211 | 212 | code { 213 | color: lighten($text-color, 35%); 214 | background-color: lighten($background-color, 35%); 215 | } 216 | 217 | /* Set the vertical rhythm (and padding-left) for lists inside post content */ 218 | 219 | .content ul, .content ol { 220 | line-height: 1.8em; 221 | padding-left: 1.5em; 222 | @media (min-width: 940px) { 223 | line-height: 1.8em; 224 | } 225 | } 226 | 227 | /* Social Icons */ 228 | .social-icon 229 | { 230 | fill: rgba(0,0,0,0.68); 231 | height: 29px; 232 | } 233 | 234 | /* Pages */ 235 | 236 | #page ul, #page ol { 237 | padding-left: 1.5em; 238 | } 239 | 240 | /* Paginator */ 241 | 242 | .pagination { 243 | text-align: center; 244 | margin: 2.666668em; 245 | span { 246 | background-color: darken($background-color, 5%); 247 | color: $text-color; 248 | } 249 | a:hover { 250 | background-color: lighten($text-color, 5%); 251 | } 252 | } 253 | .page-item { 254 | background-color: lighten($text-color, 10%); 255 | color: $background-color; 256 | padding: 4px 8px; 257 | font-weight: 400; 258 | padding: 0.5em 1em; 259 | -webkit-border-radius: 4px; 260 | -moz-border-radius: 4px; 261 | -ms-border-radius: 4px; 262 | border-radius: 4px; 263 | } 264 | 265 | /* Footer */ 266 | 267 | footer { 268 | background-color: $background-color; 269 | color: $text-color; 270 | text-align: center; 271 | padding: 0.6667em 0; 272 | } 273 | -------------------------------------------------------------------------------- /_sass/mixin.scss: -------------------------------------------------------------------------------- 1 | // -- Mixins -- // 2 | 3 | // Nav menu 4 | 5 | @mixin icon-position($position) { 6 | display: block; 7 | position: fixed; 8 | top: 35px; 9 | #{$position}: 25px; 10 | z-index: 10; 11 | height: 24px; 12 | } 13 | 14 | @mixin open($x) { 15 | -webkit-transform: translateX($x); 16 | -moz-transform: translateX($x); 17 | -ms-transform: translateX($x); 18 | transform: translateX($x); 19 | width: 100%; 20 | @media (min-width: 940px) { 21 | width: 30%; 22 | } 23 | } 24 | 25 | @mixin nav-position($position) { 26 | width: 14rem; 27 | position: fixed; 28 | background-color: $background-color; 29 | top: 0; 30 | bottom: 0; 31 | #{$position}: -14rem; 32 | color: $background-color; 33 | opacity: 0.95; 34 | -webkit-transition: all 0.3s ease-in; 35 | -moz-transition: all 0.3s ease-in; 36 | -ms-transition: all 0.3s ease-in; 37 | transition: all 0.3s ease-in; 38 | z-index: 1; 39 | padding: 72px 0; 40 | text-align: center; 41 | } 42 | -------------------------------------------------------------------------------- /_sass/syntax.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * A Github stylesheet to highlight code snippet 3 | * https://github.com/mojombo/tpw/blob/master/css/syntax.css 4 | */ 5 | 6 | // .highlight { background-color: #FFF; } 7 | .lineno { color: darken($background-color, 25%); margin-right: 1em; } 8 | .highlight .c { color: #999988; font-style: italic } /* Comment */ 9 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ 10 | .highlight .k { font-weight: bold } /* Keyword */ 11 | .highlight .o { font-weight: bold } /* Operator */ 12 | .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ 13 | .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ 14 | .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ 15 | .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ 16 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ 17 | .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ 18 | .highlight .ge { font-style: italic } /* Generic.Emph */ 19 | .highlight .gr { color: #aa0000 } /* Generic.Error */ 20 | .highlight .gh { color: #999999 } /* Generic.Heading */ 21 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ 22 | .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ 23 | .highlight .go { color: #888888 } /* Generic.Output */ 24 | .highlight .gp { color: #555555 } /* Generic.Prompt */ 25 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 26 | .highlight .gu { color: #aaaaaa } /* Generic.Subheading */ 27 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */ 28 | .highlight .kc { font-weight: bold } /* Keyword.Constant */ 29 | .highlight .kd { font-weight: bold } /* Keyword.Declaration */ 30 | .highlight .kp { font-weight: bold } /* Keyword.Pseudo */ 31 | .highlight .kr { font-weight: bold } /* Keyword.Reserved */ 32 | .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ 33 | .highlight .m { color: #009999 } /* Literal.Number */ 34 | .highlight .s { color: #d14 } /* Literal.String */ 35 | .highlight .na { color: #008080 } /* Name.Attribute */ 36 | .highlight .nb { color: #0086B3 } /* Name.Builtin */ 37 | .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ 38 | .highlight .no { color: #008080 } /* Name.Constant */ 39 | .highlight .ni { color: #800080 } /* Name.Entity */ 40 | .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ 41 | .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ 42 | .highlight .nn { color: #555555 } /* Name.Namespace */ 43 | .highlight .nt { color: #000080 } /* Name.Tag */ 44 | .highlight .nv { color: #008080 } /* Name.Variable */ 45 | .highlight .ow { font-weight: bold } /* Operator.Word */ 46 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 47 | .highlight .mf { color: #009999 } /* Literal.Number.Float */ 48 | .highlight .mh { color: #009999 } /* Literal.Number.Hex */ 49 | .highlight .mi { color: #009999 } /* Literal.Number.Integer */ 50 | .highlight .mo { color: #009999 } /* Literal.Number.Oct */ 51 | .highlight .sb { color: #d14 } /* Literal.String.Backtick */ 52 | .highlight .sc { color: #d14 } /* Literal.String.Char */ 53 | .highlight .sd { color: #d14 } /* Literal.String.Doc */ 54 | .highlight .s2 { color: #d14 } /* Literal.String.Double */ 55 | .highlight .se { color: #d14 } /* Literal.String.Escape */ 56 | .highlight .sh { color: #d14 } /* Literal.String.Heredoc */ 57 | .highlight .si { color: #d14 } /* Literal.String.Interpol */ 58 | .highlight .sx { color: #d14 } /* Literal.String.Other */ 59 | .highlight .sr { color: #009926 } /* Literal.String.Regex */ 60 | .highlight .s1 { color: #d14 } /* Literal.String.Single */ 61 | .highlight .ss { color: #990073 } /* Literal.String.Symbol */ 62 | .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ 63 | .highlight .vc { color: #008080 } /* Name.Variable.Class */ 64 | .highlight .vg { color: #008080 } /* Name.Variable.Global */ 65 | .highlight .vi { color: #008080 } /* Name.Variable.Instance */ 66 | .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ 67 | -------------------------------------------------------------------------------- /_sass/typography.scss: -------------------------------------------------------------------------------- 1 | /*- Typography -*/ 2 | // 3 | // Based on the typographic scale: 12, 14, 16, 18, 21, 24, 36, 48, 60, 72. 4 | // 5 | 6 | body 7 | { 8 | font-family : "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 9 | font-style: normal; 10 | font-weight: 300; 11 | font-size : 16px; 12 | color: #000000; 13 | } 14 | 15 | /*- Typography for medium and small screen, based on 16px font-size -*/ 16 | 17 | p, ul, ol { 18 | font-size: 1.1em; /* 16px */ 19 | line-height: 1.8em; 20 | margin-bottom: 1.5em; /* 24px/16px */ 21 | } 22 | 23 | h1 { 24 | font-size: 2.25em; /* 36px/16px */ 25 | line-height: 1.8em; 26 | font-weight: 400; 27 | padding: 0.33335em 0; /* 12px/36px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ 28 | } 29 | 30 | h2 { 31 | font-size: 1.5em; /* 24px/16px */ 32 | font-weight: 400; 33 | line-height: 1.8em; 34 | padding: 1.5em 0 0 0; /* 12px/24px * 2, only top (Use padding instead of margin to maintain proximity with paragwithph) */ 35 | } 36 | 37 | h3{ 38 | font-size: 1.25em; /* 18px/16px */ 39 | font-weight: 400; 40 | line-height: 1.8em; 41 | padding: 0.66667em 0; /* 12px/18px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ 42 | } 43 | 44 | h4, h5, h6 { 45 | font-size: 1.2em; /* 18px/16px */ 46 | font-weight: 400; 47 | color: #666666; 48 | line-height: 1.8em; 49 | padding: 0.66667em 0; /* 12px/18px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ 50 | } 51 | 52 | 53 | blockquote { 54 | font-style: italic; 55 | margin: 1.5em; /* 24px/18px */ 56 | -webkit-border-radius: 4px; 57 | -moz-border-radius: 4px; 58 | -ms-border-radius: 4px; 59 | border-radius: 4px; 60 | padding: 0 1.5em; /* 24px/18px */ 61 | border-left: 2px solid #f2f2f2; 62 | p, ul, ol { 63 | padding: 1.5em 0; /* 24px/18px */ 64 | } 65 | } 66 | 67 | /*- Typography for big screen, based on 18px font-size -*/ 68 | 69 | @media (min-width: 940px) { //Breakpoint set to 940px 70 | 71 | p, ul, ol { 72 | font-size: 1.1em; /* 18px */ 73 | line-height: 1.8em; 74 | margin-bottom: 1.3334em; /* 24px/18px */ 75 | } 76 | 77 | h1 { 78 | font-size: 2.6667em; /* 48px/18px */ 79 | font-weight: 400; 80 | line-height: 1.8em; 81 | padding: 0.25em 0; /* 12px/48px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ 82 | } 83 | 84 | h2 { 85 | font-size: 2em; /* 36px/18px */ 86 | font-weight: 400; 87 | line-height: 1.8em; 88 | padding: 1em 0 0 0; /* 12px/36px * 2, pnly top (Use padding instead of margin to maintain proximity with paragraph) */ 89 | } 90 | 91 | h3{ 92 | font-size: 1.5em; /* 24px/18px */ 93 | font-weight: 400; 94 | line-height: 1.8em; 95 | padding: 0.5em 0; /* 12px/24px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ 96 | } 97 | 98 | h4, h5, h6 { 99 | font-size: 1.4em; /* 18px/16px */ 100 | font-weight: 400; 101 | color: #666666; 102 | line-height: 1.8em; 103 | padding: 0.66667em 0; /* 12px/18px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ 104 | } 105 | 106 | blockquote { 107 | font-style: italic; 108 | margin: 1.3334em; /* 24px/18px */ 109 | -webkit-border-radius: 4px; 110 | -moz-border-radius: 4px; 111 | -ms-border-radius: 4px; 112 | border-radius: 4px; 113 | padding: 0 1.33334em; /* 24px/18px */ 114 | border-left: 2px solid #f2f2f2; 115 | p, ul, ol { 116 | padding: 1.33334em 0; /* 24px/18px */ 117 | } 118 | } 119 | 120 | } 121 | -------------------------------------------------------------------------------- /_site/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 404 - Page not found 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | 71 | 72 |
73 | 74 | 75 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 |
169 | 170 |
171 | 172 |

404 - Page not found

173 |

Sorry, we couldn’t find the requested URL. You can try again by going back to the homepage.

174 | 175 | 176 |
177 | 178 | 179 | 180 | 181 |
182 | 183 | 184 |
185 |
©2017 - TheReviewIndex
186 | 187 |
188 | 189 | 190 | 191 | 192 | 193 |
194 | 195 | 196 | -------------------------------------------------------------------------------- /_site/README.md: -------------------------------------------------------------------------------- 1 | ## About 2 | 3 | [TheReviewIndex blog](https://thereviewindex.com/blog), made with Jekyll. 4 | 5 | ## Template used 6 | 7 | [Monochrome](https://github.com/dyutibarma/monochrome) 8 | 9 | 10 | ## Author 11 | 12 | - TheReviewIndex 13 | - Web site: [Review Aggregation and Summary Site for India - TheReviewIndex](https://thereviewindex.com) 14 | 15 | ## License 16 | Released under [MIT License](license.md). 17 | -------------------------------------------------------------------------------- /_site/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | About Us 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | 71 | 72 |
73 | 74 | 75 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 |
169 | 170 |
171 | 172 |
173 | 174 |

About Us

175 | 176 |

 

177 | 178 |

We are TheReviewIndex.

179 | 180 |

We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It’s impossible to make sense of that many reviews, let alone compare across products.

181 | 182 |

So we built The Review Index that uses Neural Networks to detect and quantify recurring patterns in reviews, enabling one to go through thousands of reviews in a few minutes.

183 | 184 |

Also - we call out products with significant volumes of spam / fake reviews so that one doesn’t end up trusting them.

185 | 186 |

We recently launched a public beta for Amazon (US) electronic / gadget / appliance reviews, and are iterating over the website and algorithms. We will expand to include other marketplaces soon.

187 | 188 |

There is a lot of data waiting to be churned and presented - stay tuned!

189 | 190 |

 

191 | 192 |

 

193 | 194 |

 

195 | 196 | 197 | 198 |
199 | 200 |
201 | 202 | 203 | 204 | 205 |
206 | 207 | 208 |
209 |
©2017 - TheReviewIndex
210 | 211 |
212 | 213 | 214 | 215 | 216 | 217 |
218 | 219 | 220 | -------------------------------------------------------------------------------- /_site/atom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Blog - technology and science at TheReviewIndex 5 | 6 | http://localhost:4000 7 | 2017-12-26T10:17:15-03:00 8 | 9 | The Review Index 10 | https://thereviewindex.com 11 | root@thereviewindex.com 12 | 13 | 14 | 15 | 16 | 17 | Help Keep TheReviewIndex Free! 18 | 19 | http://localhost:4000/contribute 20 | 2017-12-25T00:00:00-03:00 21 | <p>We believe this site should remain independent, unbaised and always free for users. Help keep it this way.</p> 22 | 23 | <p>Coming Soon!</p> 24 | 25 | <p> </p> 26 | 27 | <p>Have more questions? Send them out to <strong>root@thereviewindex.com</strong> and we will revert as soon as possible.</p> 28 | 29 | <p> </p> 30 | 31 | 32 | 33 | 34 | 35 | 36 | Let's science the sh*t out of Toilet Paper Reviews 37 | 38 | http://localhost:4000/science-toilet-paper-reviews 39 | 2017-11-30T00:00:00-03:00 40 | <p><img src="img/tp-header.png" /></p> <p>Toilet papers. A trivial household item, but touches us in our everyday lives. Amazon.com lists over 50 brands of Toilet Papers. With over 9000 product listings, how exactly does one pick the right toilet paper - hopefully in a quantified, scientific way?</p> <p>Let us look at the... 41 | 42 | 43 | 44 | 45 | 46 | Frequently Asked Questions - TheReviewIndex 47 | 48 | http://localhost:4000/frequently-asked-questions 49 | 2017-11-22T00:00:00-03:00 50 | <p>What is TheReviewIndex all about?</p> <blockquote> <p>We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It’s impossible to make sense of that many reviews, let alone compare across products. So we built <a href="https://thereviewindex.com">The Review Index</a> that uses... 51 | 52 | 53 | 54 | 55 | 56 | Hello World - TheReviewIndex 57 | 58 | http://localhost:4000/hello-world 59 | 2017-11-10T00:00:00-03:00 60 | <p> </p> <p>Hi there.</p> <p>We are TheReviewIndex.</p> <p>We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It’s impossible to make sense of that many reviews, let alone compare across products.</p> <p>So we built <a href="https://thereviewindex.com">The Review Index</a> that uses... 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /_site/contribute.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Help Keep TheReviewIndex Free! 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | 71 | 72 |
73 | 74 | 75 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 |
169 | 170 |
171 | 172 |
173 |
174 | 175 | 176 | 179 | 180 | 181 |     182 | 183 | 184 | 187 | 188 |
189 | 190 |

Help Keep TheReviewIndex Free!

191 | 196 |
197 | 198 |

We believe this site should remain independent, unbaised and always free for users. Help keep it this way.

199 | 200 |

Coming Soon!

201 | 202 |

 

203 | 204 |

Have more questions? Send them out to root@thereviewindex.com and we will revert as soon as possible.

205 | 206 |

 

207 | 208 | 209 |
210 | 211 |
212 | 213 | 214 | 217 | 218 | 219 |     220 | 221 | 222 | 225 | 226 |
227 | 228 | 229 |
230 |
231 |
232 | 233 |
234 | 235 | 236 | 237 |
238 | 239 | 240 | 241 | 242 |
243 | 244 | 245 |
246 |
©2017 - TheReviewIndex
247 | 248 |
249 | 250 | 251 | 252 | 253 | 254 |
255 | 256 | 257 | -------------------------------------------------------------------------------- /_site/css/main.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Monochrome is a simple, responsive blog theme built for Jekyll. 3 | */ 4 | /*- Base reset -*/ 5 | * { 6 | -webkit-box-sizing: border-box; 7 | -moz-box-sizing: border-box; 8 | box-sizing: border-box; } 9 | 10 | html, body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, img { 11 | margin: 0; 12 | padding: 0; 13 | border: 0; } 14 | 15 | /*- Base color -*/ 16 | /*- Base settings -*/ 17 | html { 18 | background-color: #FFFFFF; 19 | font-size: 16px; 20 | line-height: 1.8em; 21 | color: #000000; } 22 | @media (min-width: 940px) { 23 | html { 24 | font-size: 18px; } } 25 | 26 | body { 27 | max-width: 800px; 28 | margin: 0 auto; 29 | padding: 0 10px; } 30 | 31 | /*- Link -*/ 32 | a { 33 | color: #000000; 34 | text-decoration: none; 35 | font-weight: 400; } 36 | a:hover, a:focus { 37 | color: black; } 38 | 39 | /* Media Queries */ 40 | @media screen and (max-width: 600px) { 41 | .show-only-large { 42 | display: none; } 43 | 44 | .show-only-small { 45 | display: block; } } 46 | @media screen and (min-width: 600px) { 47 | .show-only-large { 48 | display: block; } 49 | 50 | .show-only-small { 51 | display: none; } } 52 | /* Common classes */ 53 | .f-right { 54 | float: right; } 55 | 56 | .f-left { 57 | float: left; } 58 | 59 | .clear { 60 | clear: both; } 61 | 62 | .parent { 63 | display: flex; } 64 | 65 | .inner { 66 | align-self: center; } 67 | 68 | .justify-center { 69 | justify-content: center; } 70 | 71 | .justify-spaceBetween { 72 | justify-content: space-between; } 73 | 74 | .w100 { 75 | width: 100%; } 76 | 77 | .h100 { 78 | height: 100%; } 79 | 80 | .wh100 { 81 | width: 100%; 82 | height: 100%; } 83 | 84 | .absolute { 85 | position: absolute; } 86 | 87 | .relative { 88 | position: relative; } 89 | 90 | .top { 91 | top: 0; } 92 | 93 | .bottom { 94 | bottom: 0; } 95 | 96 | .right { 97 | right: 0; } 98 | 99 | .left { 100 | left: 0; } 101 | 102 | .m-t-6e { 103 | margin-top: 6em; } 104 | 105 | .fw-300 { 106 | font-weight: 300; } 107 | 108 | .fw-400 { 109 | font-weight: 400; } 110 | 111 | .fw-500 { 112 | font-weight: 500; } 113 | 114 | .fs-12e { 115 | font-size: 1.2em; } 116 | 117 | .fc-light { 118 | color: #777777; } 119 | 120 | .border-l-l { 121 | border-left: 1px solid #f2f2f2; } 122 | 123 | .code { 124 | font-family: monospace; } 125 | 126 | td { 127 | border-bottom: 1px solid #f2f2f2; } 128 | 129 | /*- Typography -*/ 130 | body { 131 | font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial", sans-serif; 132 | font-style: normal; 133 | font-weight: 300; 134 | font-size: 16px; 135 | color: #000000; } 136 | 137 | /*- Typography for medium and small screen, based on 16px font-size -*/ 138 | p, ul, ol { 139 | font-size: 1.1em; 140 | /* 16px */ 141 | line-height: 1.8em; 142 | margin-bottom: 1.5em; 143 | /* 24px/16px */ } 144 | 145 | h1 { 146 | font-size: 2.25em; 147 | /* 36px/16px */ 148 | line-height: 1.8em; 149 | font-weight: 400; 150 | padding: 0.33335em 0; 151 | /* 12px/36px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ } 152 | 153 | h2 { 154 | font-size: 1.5em; 155 | /* 24px/16px */ 156 | font-weight: 400; 157 | line-height: 1.8em; 158 | padding: 1.5em 0 0 0; 159 | /* 12px/24px * 2, only top (Use padding instead of margin to maintain proximity with paragwithph) */ } 160 | 161 | h3 { 162 | font-size: 1.25em; 163 | /* 18px/16px */ 164 | font-weight: 400; 165 | line-height: 1.8em; 166 | padding: 0.66667em 0; 167 | /* 12px/18px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ } 168 | 169 | h4, h5, h6 { 170 | font-size: 1.2em; 171 | /* 18px/16px */ 172 | font-weight: 400; 173 | color: #666666; 174 | line-height: 1.8em; 175 | padding: 0.66667em 0; 176 | /* 12px/18px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ } 177 | 178 | blockquote { 179 | font-style: italic; 180 | margin: 1.5em; 181 | /* 24px/18px */ 182 | -webkit-border-radius: 4px; 183 | -moz-border-radius: 4px; 184 | -ms-border-radius: 4px; 185 | border-radius: 4px; 186 | padding: 0 1.5em; 187 | /* 24px/18px */ 188 | border-left: 2px solid #f2f2f2; } 189 | blockquote p, blockquote ul, blockquote ol { 190 | padding: 1.5em 0; 191 | /* 24px/18px */ } 192 | 193 | /*- Typography for big screen, based on 18px font-size -*/ 194 | @media (min-width: 940px) { 195 | p, ul, ol { 196 | font-size: 1.1em; 197 | /* 18px */ 198 | line-height: 1.8em; 199 | margin-bottom: 1.3334em; 200 | /* 24px/18px */ } 201 | 202 | h1 { 203 | font-size: 2.6667em; 204 | /* 48px/18px */ 205 | font-weight: 400; 206 | line-height: 1.8em; 207 | padding: 0.25em 0; 208 | /* 12px/48px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ } 209 | 210 | h2 { 211 | font-size: 2em; 212 | /* 36px/18px */ 213 | font-weight: 400; 214 | line-height: 1.8em; 215 | padding: 1em 0 0 0; 216 | /* 12px/36px * 2, pnly top (Use padding instead of margin to maintain proximity with paragraph) */ } 217 | 218 | h3 { 219 | font-size: 1.5em; 220 | /* 24px/18px */ 221 | font-weight: 400; 222 | line-height: 1.8em; 223 | padding: 0.5em 0; 224 | /* 12px/24px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ } 225 | 226 | h4, h5, h6 { 227 | font-size: 1.4em; 228 | /* 18px/16px */ 229 | font-weight: 400; 230 | color: #666666; 231 | line-height: 1.8em; 232 | padding: 0.66667em 0; 233 | /* 12px/18px * 2 (Use padding instead of margin to maintain proximity with paragraph) */ } 234 | 235 | blockquote { 236 | font-style: italic; 237 | margin: 1.3334em; 238 | /* 24px/18px */ 239 | -webkit-border-radius: 4px; 240 | -moz-border-radius: 4px; 241 | -ms-border-radius: 4px; 242 | border-radius: 4px; 243 | padding: 0 1.33334em; 244 | /* 24px/18px */ 245 | border-left: 2px solid #f2f2f2; } 246 | blockquote p, blockquote ul, blockquote ol { 247 | padding: 1.33334em 0; 248 | /* 24px/18px */ } } 249 | /* -- General Layout -- */ 250 | /* Navigation */ 251 | #nav a, #nav-left a { 252 | display: block; 253 | color: #000000; 254 | padding: 0.33334em 0; 255 | font-size: 1.5em; 256 | font-weight: 400; } 257 | @media (min-width: 940px) { 258 | #nav a, #nav-left a { 259 | font-size: 1em; } } 260 | #nav a:hover, #nav-left a:hover { 261 | background-color: rgba(13, 13, 13, 0.6); } 262 | #nav span, #nav-left span { 263 | font-weight: 200; } 264 | 265 | #nav { 266 | width: 14rem; 267 | position: fixed; 268 | background-color: #FFFFFF; 269 | top: 0; 270 | bottom: 0; 271 | right: -14rem; 272 | color: #FFFFFF; 273 | opacity: 0.95; 274 | -webkit-transition: all 0.3s ease-in; 275 | -moz-transition: all 0.3s ease-in; 276 | -ms-transition: all 0.3s ease-in; 277 | transition: all 0.3s ease-in; 278 | z-index: 1; 279 | padding: 72px 0; 280 | text-align: center; } 281 | 282 | #nav-left { 283 | width: 14rem; 284 | position: fixed; 285 | background-color: #FFFFFF; 286 | top: 0; 287 | bottom: 0; 288 | left: -14rem; 289 | color: #FFFFFF; 290 | opacity: 0.95; 291 | -webkit-transition: all 0.3s ease-in; 292 | -moz-transition: all 0.3s ease-in; 293 | -ms-transition: all 0.3s ease-in; 294 | transition: all 0.3s ease-in; 295 | z-index: 1; 296 | padding: 72px 0; 297 | text-align: center; } 298 | 299 | /* Toggle class to open menu */ 300 | #nav.menu-open { 301 | -webkit-transform: translateX(-14rem); 302 | -moz-transform: translateX(-14rem); 303 | -ms-transform: translateX(-14rem); 304 | transform: translateX(-14rem); 305 | width: 100%; } 306 | @media (min-width: 940px) { 307 | #nav.menu-open { 308 | width: 30%; } } 309 | 310 | #nav-left.menu-open-left { 311 | -webkit-transform: translateX(14rem); 312 | -moz-transform: translateX(14rem); 313 | -ms-transform: translateX(14rem); 314 | transform: translateX(14rem); 315 | width: 100%; } 316 | @media (min-width: 940px) { 317 | #nav-left.menu-open-left { 318 | width: 30%; } } 319 | 320 | @media (max-width: 940px) { 321 | #nav-links { 322 | display: none; } } 323 | #nav-links a { 324 | padding-left: 10px; 325 | color: #000000; 326 | font-weight: 300; } 327 | 328 | /* Separator after menu */ 329 | #nav-list:after { 330 | display: block; 331 | content: ''; 332 | width: 5rem; 333 | height: 1px; 334 | margin: 23px auto; 335 | background-color: #000000; } 336 | 337 | /* Icon menu */ 338 | #nav-menu { 339 | display: block; 340 | position: fixed; 341 | top: 35px; 342 | right: 25px; 343 | z-index: 10; 344 | height: 24px; } 345 | @media (min-width: 940px) { 346 | #nav-menu { 347 | display: none; } } 348 | 349 | #nav-menu-left { 350 | display: block; 351 | position: fixed; 352 | top: 35px; 353 | left: 25px; 354 | z-index: 10; 355 | height: 24px; } 356 | @media (min-width: 940px) { 357 | #nav-menu-left { 358 | display: none; } } 359 | 360 | #menu { 361 | height: 4px; 362 | width: 1.5em; 363 | background-color: #000000; 364 | margin-top: 8px; } 365 | #menu:after, #menu:before { 366 | content: ""; 367 | display: block; 368 | position: relative; 369 | height: 4px; 370 | width: 1.5em; 371 | background-color: #000000; 372 | transition: all 0.3s ease-in; } 373 | #menu:before { 374 | top: -8px; } 375 | #menu:after { 376 | top: 4px; } 377 | #menu.btn-close { 378 | background: none; } 379 | #menu.btn-close:before { 380 | top: 0; 381 | -webkit-transform: rotate(-45deg); 382 | -moz-transform: rotate(-45deg); 383 | -ms-transform: rotate(-45deg); 384 | transform: rotate(-45deg); 385 | background-color: #000000; } 386 | #menu.btn-close:after { 387 | top: -4px; 388 | -webkit-transform: rotate(45deg); 389 | -moz-transform: rotate(45deg); 390 | -ms-transform: rotate(45deg); 391 | transform: rotate(45deg); 392 | background-color: #000000; } 393 | 394 | /* Main content */ 395 | .fixed { 396 | position: fixed; 397 | width: 100%; } 398 | @media (min-width: 940px) { 399 | .fixed { 400 | position: static; } } 401 | 402 | #container { 403 | margin: 0 auto; } 404 | 405 | #header { 406 | border-bottom: 1px solid rgba(0, 0, 0, 0.14); 407 | text-align: center; 408 | margin-bottom: 2em; 409 | height: 5em; 410 | position: relative; } 411 | #header a { 412 | text-decoration: none; 413 | display: inline-block; } 414 | #header div { 415 | margin: 0 auto; } 416 | #header h1 { 417 | font-size: 2em; 418 | padding-bottom: 0; } 419 | #header h1 span { 420 | color: rgba(0, 0, 0, 0.6); 421 | font-weight: 300; } 422 | 423 | /* Posts */ 424 | #posts li { 425 | list-style-type: none; } 426 | 427 | #post-page { 428 | margin-bottom: 1.5em; } 429 | @media (min-width: 940px) { 430 | #post-page { 431 | margin-bottom: 1.3334em; } } 432 | 433 | .post + .post:before { 434 | display: block; 435 | content: ''; 436 | width: 5rem; 437 | height: 1px; 438 | margin: 23px auto; 439 | background-color: #b3b3b3; } 440 | 441 | .by-line { 442 | display: block; 443 | color: #404040; 444 | line-height: 1.8em; 445 | margin-bottom: 1.5em; 446 | /* 24px/16px */ 447 | font-weight: 200; } 448 | @media (min-width: 940px) { 449 | .by-line { 450 | display: block; 451 | color: #404040; 452 | line-height: 1.8em; 453 | margin-bottom: 1.3334em; 454 | /* 24px/18px */ 455 | font-weight: 200; } } 456 | 457 | img { 458 | max-width: 100%; 459 | display: block; 460 | margin: 0 auto; 461 | margin-bottom: 24px; 462 | -webkit-border-radius: 4px; 463 | -moz-border-radius: 4px; 464 | -ms-border-radius: 4px; 465 | border-radius: 4px; } 466 | 467 | img[title="Monochrome"] { 468 | box-shadow: 0 2px 6px #ddd; } 469 | 470 | code { 471 | color: #595959; 472 | background-color: white; } 473 | 474 | /* Set the vertical rhythm (and padding-left) for lists inside post content */ 475 | .content ul, .content ol { 476 | line-height: 1.8em; 477 | padding-left: 1.5em; } 478 | @media (min-width: 940px) { 479 | .content ul, .content ol { 480 | line-height: 1.8em; } } 481 | 482 | /* Social Icons */ 483 | .social-icon { 484 | fill: rgba(0, 0, 0, 0.68); 485 | height: 29px; } 486 | 487 | /* Pages */ 488 | #page ul, #page ol { 489 | padding-left: 1.5em; } 490 | 491 | /* Paginator */ 492 | .pagination { 493 | text-align: center; 494 | margin: 2.666668em; } 495 | .pagination span { 496 | background-color: #f2f2f2; 497 | color: #000000; } 498 | .pagination a:hover { 499 | background-color: #0d0d0d; } 500 | 501 | .page-item { 502 | background-color: #1a1a1a; 503 | color: #FFFFFF; 504 | padding: 4px 8px; 505 | font-weight: 400; 506 | padding: 0.5em 1em; 507 | -webkit-border-radius: 4px; 508 | -moz-border-radius: 4px; 509 | -ms-border-radius: 4px; 510 | border-radius: 4px; } 511 | 512 | /* Footer */ 513 | footer { 514 | background-color: #FFFFFF; 515 | color: #000000; 516 | text-align: center; 517 | padding: 0.6667em 0; } 518 | 519 | /* 520 | * A Github stylesheet to highlight code snippet 521 | * https://github.com/mojombo/tpw/blob/master/css/syntax.css 522 | */ 523 | .lineno { 524 | color: #bfbfbf; 525 | margin-right: 1em; } 526 | 527 | .highlight .c { 528 | color: #999988; 529 | font-style: italic; } 530 | 531 | /* Comment */ 532 | .highlight .err { 533 | color: #a61717; 534 | background-color: #e3d2d2; } 535 | 536 | /* Error */ 537 | .highlight .k { 538 | font-weight: bold; } 539 | 540 | /* Keyword */ 541 | .highlight .o { 542 | font-weight: bold; } 543 | 544 | /* Operator */ 545 | .highlight .cm { 546 | color: #999988; 547 | font-style: italic; } 548 | 549 | /* Comment.Multiline */ 550 | .highlight .cp { 551 | color: #999999; 552 | font-weight: bold; } 553 | 554 | /* Comment.Preproc */ 555 | .highlight .c1 { 556 | color: #999988; 557 | font-style: italic; } 558 | 559 | /* Comment.Single */ 560 | .highlight .cs { 561 | color: #999999; 562 | font-weight: bold; 563 | font-style: italic; } 564 | 565 | /* Comment.Special */ 566 | .highlight .gd { 567 | color: #000000; 568 | background-color: #ffdddd; } 569 | 570 | /* Generic.Deleted */ 571 | .highlight .gd .x { 572 | color: #000000; 573 | background-color: #ffaaaa; } 574 | 575 | /* Generic.Deleted.Specific */ 576 | .highlight .ge { 577 | font-style: italic; } 578 | 579 | /* Generic.Emph */ 580 | .highlight .gr { 581 | color: #aa0000; } 582 | 583 | /* Generic.Error */ 584 | .highlight .gh { 585 | color: #999999; } 586 | 587 | /* Generic.Heading */ 588 | .highlight .gi { 589 | color: #000000; 590 | background-color: #ddffdd; } 591 | 592 | /* Generic.Inserted */ 593 | .highlight .gi .x { 594 | color: #000000; 595 | background-color: #aaffaa; } 596 | 597 | /* Generic.Inserted.Specific */ 598 | .highlight .go { 599 | color: #888888; } 600 | 601 | /* Generic.Output */ 602 | .highlight .gp { 603 | color: #555555; } 604 | 605 | /* Generic.Prompt */ 606 | .highlight .gs { 607 | font-weight: bold; } 608 | 609 | /* Generic.Strong */ 610 | .highlight .gu { 611 | color: #aaaaaa; } 612 | 613 | /* Generic.Subheading */ 614 | .highlight .gt { 615 | color: #aa0000; } 616 | 617 | /* Generic.Traceback */ 618 | .highlight .kc { 619 | font-weight: bold; } 620 | 621 | /* Keyword.Constant */ 622 | .highlight .kd { 623 | font-weight: bold; } 624 | 625 | /* Keyword.Declaration */ 626 | .highlight .kp { 627 | font-weight: bold; } 628 | 629 | /* Keyword.Pseudo */ 630 | .highlight .kr { 631 | font-weight: bold; } 632 | 633 | /* Keyword.Reserved */ 634 | .highlight .kt { 635 | color: #445588; 636 | font-weight: bold; } 637 | 638 | /* Keyword.Type */ 639 | .highlight .m { 640 | color: #009999; } 641 | 642 | /* Literal.Number */ 643 | .highlight .s { 644 | color: #d14; } 645 | 646 | /* Literal.String */ 647 | .highlight .na { 648 | color: #008080; } 649 | 650 | /* Name.Attribute */ 651 | .highlight .nb { 652 | color: #0086B3; } 653 | 654 | /* Name.Builtin */ 655 | .highlight .nc { 656 | color: #445588; 657 | font-weight: bold; } 658 | 659 | /* Name.Class */ 660 | .highlight .no { 661 | color: #008080; } 662 | 663 | /* Name.Constant */ 664 | .highlight .ni { 665 | color: #800080; } 666 | 667 | /* Name.Entity */ 668 | .highlight .ne { 669 | color: #990000; 670 | font-weight: bold; } 671 | 672 | /* Name.Exception */ 673 | .highlight .nf { 674 | color: #990000; 675 | font-weight: bold; } 676 | 677 | /* Name.Function */ 678 | .highlight .nn { 679 | color: #555555; } 680 | 681 | /* Name.Namespace */ 682 | .highlight .nt { 683 | color: #000080; } 684 | 685 | /* Name.Tag */ 686 | .highlight .nv { 687 | color: #008080; } 688 | 689 | /* Name.Variable */ 690 | .highlight .ow { 691 | font-weight: bold; } 692 | 693 | /* Operator.Word */ 694 | .highlight .w { 695 | color: #bbbbbb; } 696 | 697 | /* Text.Whitespace */ 698 | .highlight .mf { 699 | color: #009999; } 700 | 701 | /* Literal.Number.Float */ 702 | .highlight .mh { 703 | color: #009999; } 704 | 705 | /* Literal.Number.Hex */ 706 | .highlight .mi { 707 | color: #009999; } 708 | 709 | /* Literal.Number.Integer */ 710 | .highlight .mo { 711 | color: #009999; } 712 | 713 | /* Literal.Number.Oct */ 714 | .highlight .sb { 715 | color: #d14; } 716 | 717 | /* Literal.String.Backtick */ 718 | .highlight .sc { 719 | color: #d14; } 720 | 721 | /* Literal.String.Char */ 722 | .highlight .sd { 723 | color: #d14; } 724 | 725 | /* Literal.String.Doc */ 726 | .highlight .s2 { 727 | color: #d14; } 728 | 729 | /* Literal.String.Double */ 730 | .highlight .se { 731 | color: #d14; } 732 | 733 | /* Literal.String.Escape */ 734 | .highlight .sh { 735 | color: #d14; } 736 | 737 | /* Literal.String.Heredoc */ 738 | .highlight .si { 739 | color: #d14; } 740 | 741 | /* Literal.String.Interpol */ 742 | .highlight .sx { 743 | color: #d14; } 744 | 745 | /* Literal.String.Other */ 746 | .highlight .sr { 747 | color: #009926; } 748 | 749 | /* Literal.String.Regex */ 750 | .highlight .s1 { 751 | color: #d14; } 752 | 753 | /* Literal.String.Single */ 754 | .highlight .ss { 755 | color: #990073; } 756 | 757 | /* Literal.String.Symbol */ 758 | .highlight .bp { 759 | color: #999999; } 760 | 761 | /* Name.Builtin.Pseudo */ 762 | .highlight .vc { 763 | color: #008080; } 764 | 765 | /* Name.Variable.Class */ 766 | .highlight .vg { 767 | color: #008080; } 768 | 769 | /* Name.Variable.Global */ 770 | .highlight .vi { 771 | color: #008080; } 772 | 773 | /* Name.Variable.Instance */ 774 | .highlight .il { 775 | color: #009999; } 776 | 777 | /* Literal.Number.Integer.Long */ 778 | /*- Custom style -*/ 779 | -------------------------------------------------------------------------------- /_site/frequently-asked-questions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Frequently Asked Questions - TheReviewIndex 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | 71 | 72 |
73 | 74 | 75 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 |
169 | 170 |
171 | 172 |
173 |
174 | 175 | 176 | 179 | 180 | 181 |     182 | 183 | 184 | 187 | 188 |
189 | 190 |

Frequently Asked Questions

191 | 196 |
197 | 198 |

What is TheReviewIndex all about?

199 | 200 |
201 |

We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It’s impossible to make sense of that many reviews, let alone compare across products. 202 | So we built The Review Index that uses Neural Networks to detect and quantify recurring patterns in reviews, enabling one to go through thousands of reviews in a few minutes. We are unbiased, independent and aspire to simplify online shopping.

203 |
204 | 205 |

How does it work?

206 | 207 |
208 |

All you have to do is enter the url of the product you’re looking to purchase. Our machines will, at real time, fetch the lastest user reviews from sites like Amazon. Then, the fetched reviews will be parsed to detect fine-grained topics and implicit sentiment, after blacklisting potentially unnatural content. This information will be churned and presented as an unbiased, feature-wise summary scorecard of the aggregate opinion.

209 |
210 | 211 |

Where does TheReviewIndex get the data?

212 | 213 |
214 |

TheReviewIndex requires data such as product details, reviews, etc. We crawl all available information from across various public webpages. This data is then churned to get presentable insights.

215 |
216 | 217 |

I noticed some discrepencies in the data quality? What do I do?

218 | 219 |
220 |

We leverage Neural Networks to detect topics of discussion and sentiment in review sentences and constantly monitor the quality of algorithms and data to maximize accuracy and ensure that outliers do not influence the eventual conclusions. 221 | However, it is still possible that there will be a few cases of incorrect classification.
222 | If you discover any large discrepencies or quality issues, you can provide feedback using the link provided in the site or write to us at root@thereviewindex.com with the details and we will take these inputs into consideration while tweaking our algorithms.

223 |
224 | 225 |

How can I trust TheReviewIndex? How do I know that the evaluation is fair?

226 | 227 |
228 |

We have deliberated over this question from the very beginning. Since building and keeping trust with you is very important to us, we have designed the product to ensure that every score or recommendation is strongly supported by solid evidence. If you want to drill deeper, you can click through and read all individual user comments that contributes toward the score of each feature. Not just that, all these comments are properly attributed and linked back to the origin.

229 |
230 | 231 |

How does the site make money?

232 | 233 |
234 |

We do not make any money from the site. The site has been and will always remain free for our users.

235 |
236 | 237 |

How do you deal with review spam?

238 | 239 |
240 |

One of the major concerns of online opinions is the problem of spam and incentivized reviews. Although, a single spammy review does not receive too much importance (since we rely on mass opinion for making our judgements), several spammy reviews can be misleading, often drowning actual user opinion. 241 | We think that spam, much like any other crime, will leave behind a trail. This is true especially when spamming is done at scale. We try to identify these and in the spirit of transparency (like rest of the site), we are starting to expose the underlying data points that contributed to our decision. 242 | Right now we expose only a few of signals out, but we will be rolling out a more comprehensive set of signals in the near future.

243 |
244 | 245 |

I’m a brand and my product is rated poorly. What can I do?

246 | 247 |
248 |

Short answer is nothing. We rely on user reviews from marketplaces to derive and present our conclusions. As the sentiment in organic reviews improves, our summaries will improve too.

249 |
250 | 251 |

 

252 | 253 |

Have more questions? Send them out to root@thereviewindex.com and we will revert as soon as possible.

254 | 255 |

 

256 | 257 | 258 |
259 | 260 |
261 | 262 | 263 | 266 | 267 | 268 |     269 | 270 | 271 | 274 | 275 |
276 | 277 | 278 |
279 |
280 |
281 | 282 |
283 | 284 | 285 | 286 |
287 | 288 | 289 | 290 | 291 |
292 | 293 | 294 |
295 |
©2017 - TheReviewIndex
296 | 297 |
298 | 299 | 300 | 301 | 302 | 303 |
304 | 305 | 306 | -------------------------------------------------------------------------------- /_site/hello-world.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Hello World - TheReviewIndex 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | 71 | 72 |
73 | 74 | 75 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 |
169 | 170 |
171 | 172 |
173 |
174 | 175 | 176 | 179 | 180 | 181 |     182 | 183 | 184 | 187 | 188 |
189 | 190 |

Hello World!

191 | 196 |
197 | 198 |

 

199 | 200 |

Hi there.

201 | 202 |

We are TheReviewIndex.

203 | 204 |

We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It’s impossible to make sense of that many reviews, let alone compare across products.

205 | 206 |

So we built The Review Index that uses Neural Networks to detect and quantify recurring patterns in reviews, enabling one to go through thousands of reviews in a few minutes.

207 | 208 |

Also - we call out products with significant volumes of spam / fake reviews so that one doesn’t end up trusting them.

209 | 210 |

We recently launched a public beta for Amazon (US) electronic / gadget / appliance reviews, and are iterating over the website and algorithms. We will expand to include other marketplaces soon.

211 | 212 |

There is a lot of data waiting to be churned and presented - stay tuned!

213 | 214 |

 

215 | 216 | 217 | 218 |
219 | 220 |
221 | 222 | 223 | 226 | 227 | 228 |     229 | 230 | 231 | 234 | 235 |
236 | 237 | 238 |
239 |
240 |
241 | 242 |
243 | 244 | 245 | 246 |
247 | 248 | 249 | 250 | 251 |
252 | 253 | 254 |
255 |
©2017 - TheReviewIndex
256 | 257 |
258 | 259 | 260 | 261 | 262 | 263 |
264 | 265 | 266 | -------------------------------------------------------------------------------- /_site/img/default-ogimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_site/img/default-ogimage.png -------------------------------------------------------------------------------- /_site/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_site/img/favicon.png -------------------------------------------------------------------------------- /_site/img/img-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_site/img/img-test.png -------------------------------------------------------------------------------- /_site/img/instron.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_site/img/instron.jpg -------------------------------------------------------------------------------- /_site/img/monochrome-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_site/img/monochrome-mobile.png -------------------------------------------------------------------------------- /_site/img/monochrome.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 89 | 91 | 93 | 94 | 95 | 97 | 98 | 99 | 100 | 102 | 104 | 105 | 106 | 107 | 108 | 110 | 111 | 112 | 113 | monochrome 114 | 115 | 116 | -------------------------------------------------------------------------------- /_site/img/monochrome01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_site/img/monochrome01.png -------------------------------------------------------------------------------- /_site/img/shopping.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_site/img/shopping.jpg -------------------------------------------------------------------------------- /_site/img/tp-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_site/img/tp-header.png -------------------------------------------------------------------------------- /_site/img/tp-ogimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/_site/img/tp-ogimage.png -------------------------------------------------------------------------------- /_site/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Blog - technology and science at TheReviewIndex 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | 71 | 72 |
73 | 74 | 75 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 |
169 | 170 |
171 | 172 | 173 |
174 | 175 | 176 | 177 |
178 |

Help Keep TheReviewIndex Free!

179 | 184 |

We believe this site should remain independent, unbaised and always free for users. Help keep it this way. 185 | 186 | Coming Soon! 187 | 188 |   189 | 190 | Have more questions? Send them out to root@thereviewindex.com and we will revert as soon as possible. 191 | 192 |   193 |

194 |
195 | 196 | 197 | 198 |
199 |

Let's science the sh*t out of Toilet Paper Reviews

200 | 205 |

Toilet papers. A trivial household item, but touches us in our everyday lives. Amazon.com lists over 50 brands of Toilet Papers. With over 9000 product listings, how exactly does one pick the right toilet paper - hopefully in a quantified, scientific way? Let us look at the possible methods of...

206 |
207 | 208 | 209 | 210 |
211 |

Frequently Asked Questions

212 | 217 |

What is TheReviewIndex all about? We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It’s impossible to make sense of that many reviews, let alone compare across products. So we built The Review Index that uses Neural Networks...

218 |
219 | 220 | 221 | 222 |
223 |

Hello World!

224 | 229 |

  Hi there. We are TheReviewIndex. We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It’s impossible to make sense of that many reviews, let alone compare across products. So we built The Review Index that uses Neural...

230 |
231 | 232 | 233 | 234 |
235 | 236 | 237 |
238 | 239 | 240 | 241 | 242 |
243 | 244 | 245 |
246 |
©2017 - TheReviewIndex
247 | 248 |
249 | 250 | 251 | 252 | 253 | 254 |
255 | 256 | 257 | -------------------------------------------------------------------------------- /_site/js/main.js: -------------------------------------------------------------------------------- 1 | var normal = document.getElementById("nav-menu"); 2 | var reverse = document.getElementById("nav-menu-left"); 3 | 4 | var icon = normal !== null ? normal : reverse; 5 | 6 | // Toggle the "menu-open" % "menu-opn-left" classes 7 | function toggle() { 8 | var navRight = document.getElementById("nav"); 9 | var navLeft = document.getElementById("nav-left"); 10 | var nav = navRight !== null ? navRight : navLeft; 11 | 12 | var button = document.getElementById("menu"); 13 | var site = document.getElementById("wrap"); 14 | 15 | if (nav.className == "menu-open" || nav.className == "menu-open-left") { 16 | nav.className = ""; 17 | button.className = ""; 18 | site.className = ""; 19 | } else if (reverse !== null) { 20 | nav.className += "menu-open-left"; 21 | button.className += "btn-close"; 22 | site.className += "fixed"; 23 | } else { 24 | nav.className += "menu-open"; 25 | button.className += "btn-close"; 26 | site.className += "fixed"; 27 | } 28 | } 29 | 30 | // Ensures backward compatibility with IE old versions 31 | function menuClick() { 32 | if (document.addEventListener && icon !== null) { 33 | icon.addEventListener('click', toggle); 34 | } else if (document.attachEvent && icon !== null) { 35 | icon.attachEvent('onclick', toggle); 36 | } else { 37 | return; 38 | } 39 | } 40 | 41 | menuClick(); -------------------------------------------------------------------------------- /_site/license.md: -------------------------------------------------------------------------------- 1 | ## Released under MIT License 2 | 3 | Copyright (c) 2017 The Review Index 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /_site/robots.txt: -------------------------------------------------------------------------------- 1 | Sitemap: http://localhost:4000/blog/sitemap.xml 2 | -------------------------------------------------------------------------------- /_site/science-toilet-paper-reviews.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Let's science the sh*t out of Toilet Paper Reviews 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
64 | 71 | 72 |
73 | 74 | 75 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 |
169 | 170 |
171 | 172 |
173 |
174 | 175 | 176 | 179 | 180 | 181 |     182 | 183 | 184 | 187 | 188 |
189 | 190 |

Let's science the sh*t out of Toilet Paper Reviews

191 | 196 |
197 | 198 |

199 | 200 |

Toilet papers. A trivial household item, but touches us in our everyday lives. Amazon.com lists over 50 brands of Toilet Papers. With over 9000 product listings, how exactly does one pick the right toilet paper - hopefully in a quantified, scientific way?

201 | 202 |

Let us look at the possible methods of evaluation:

203 |
    204 |
  • Physical / Mechanical tests
  • 205 |
  • Surveys
  • 206 |
  • Reviews
  • 207 |
208 | 209 |

Physical / Mechanical Tests

210 |

These often involve analyzing the physical characteristics of TP using tests such as the following:

211 |
    212 |
  • Water absorption test
  • 213 |
  • Paper strength using mechanical puncturing device
  • 214 |
  • Tearing tests
  • 215 |
216 | 217 |

218 |
Instron - an electomechanical tension / compression device (Image credit: https://instron.us)
219 | 220 |

 

221 | 222 |

The good part about such types of evaluations is that they can be completely objective. The tests (if conducted properly) can provide objective and precise measurements.

223 | 224 |

The issue with this kind of evaluation, though, is that it is often impossible to arrive at tests that can grade each and every aspect of a product or incorporate actual consumer experiences - for example. what kind of a test can be used to quantify “comfort” ?

225 | 226 |

Surveys

227 |

A possible solution to the above problem, is to perhaps involve the consumers in the grading process - after all who better to measure the product than the end users of the product itself!

228 | 229 |

Surveys work great if designed right. However, designing the right survey to incite unbiased responses can be challenging due to factors like Response Bias. Even if we were to be able to come up with a questionnaire that records participants true responses across all aspects of the product, keeping it updated over time can get challenging.

230 | 231 |

Reviews

232 |

Reviews are informative nuggets of free text and are already available for most products that are sold on the internet. They are the voice of the consumers in a public forum.

233 | 234 |
235 |

” People often talk about the things they care about “

236 |
237 | 238 |

… and the same is true for online reviews.

239 | 240 |

By itself, a single review represents an individual’s experience - but these become even more interesting when we start to look at repeated patterns across many reviews.

241 | 242 |

What if we could use this information to scientifically come up with conclusions about the product?

243 | 244 |

Using Neural Networks + Natural Language Processing, it is possible to extract the topics and sentiment, enabling us to quantify objective metrics for the product.

245 | 246 |

Now let’s try and analyze TP reviews from Amazon.com.

247 | 248 |

After crawling Amazon.com to gather reviews, we need to preprocess the data to address the following issues:

249 |
    250 |
  • Unverified reviews - These are reviews by people who have not bought the product from the marketplace. Since there is no evidence that these buyers are genuine, we do not consider them.
  • 251 |
  • Old reviews - Consumer expectations and products change over time. Keeping this in mind, we remove reviews that are more than a couple of years old.
  • 252 |
  • Review spam - many brands and sellers create “fake” reviews or incentivize reviewers by giving away free samples of their products. This results in significant biases creeping into the review data of a product. We can mitigate this using outlier detection on the reviewer history to identify products that have significant spammy reviews.
  • 253 |
  • Product variants - Some websites like Amazon group reviews of a bunch of products into the same listing - thankfully, Amazon does provide a (somewhat hidden - “show only this format”) option to filter the reviews by variant.
  • 254 |
  • Too few reviews - it is difficult to draw meaningful conclusions based on a small number of reviews, hence for this blog post, we discard products with fewer than 200 reviews.
  • 255 |
256 | 257 |

After the above clean ups, we end up with 29574 reviews across 274 products (only considering upto 1000 most recent reviews for each product).

258 | 259 |

We can now cluster the review sentences to extract the most spoken about topics in the reviews. Following are the recurring topics that start to emerge:

260 | 261 | 262 | 265 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 |
263 | TOPIC CLUSTERS 264 | 266 | SAMPLE PHRASES 267 |
Overall"the product was great", "did the job" ...
Marketplace / Delivery      "was delivered on time", "doorstep delivery" ...
Paper Quality"strong", "durable", "doesn't tear" ...
Comfort"soft", "cushy", "softest TP out there", "little ruff on the bum" ...
Value For Money"worth the price", "bargain", "rip off" ...
Lasts Long"lasts forever", "ran out in a day", "larger than expected" ...
Cleaning"squeaky clean bum", "leaves quite a bit of fuzz behind" ...
Clogging"clogs the sewer line", "gentle on the plumbing", "had to use the plunger" ...
Dispenser"barely fit my holder", "might not fit in your dispenser" ...
Gag Gift"gag gift for my roommate", "gift as a prank" ...
Eco-Friendly"environmentally friendly", "made of recycled paper" ...
Travel"carry in your purse or pocket", "great for travel" ...
Perfumed TPs"smell is so strong", "smell soooooo good" ...
321 | 322 |

 

323 | 324 |

For the purpose of this exercise, we will not consider the top two topics in the above list - reason being that the “Overall Product” statements are too generic, loosely used and volume-wise dominates every other topic, and the “Marketplace / Delivery” topic is not directly related to the product. We discard the (bottom four) low volume clusters as well.

325 | 326 |

Let’s look at the final set of clusters with their volume distribution:

327 | 328 |
329 | 330 |
331 | 332 |
333 | 334 |
335 | 336 |

All the cluster sentences are then passed through our custom sentiment classifier to arrive at the positive and negative polarity. This gives us a topic-wise polarity of the products. We can now start to compare topics across products to arrive at an overall product ranking.

337 | 338 |

The best products, according to our analysis are (#1, #2):

339 | 340 |
341 |
342 | 343 |
344 | 345 |
346 | 347 |
348 | 349 | 350 |
351 | 352 |
353 |
354 |
355 | 356 |
357 | 358 |
359 | 360 |
361 |
362 |
363 | 364 |

… and the worst products on our list are (#243, #242):

365 | 366 |
367 |
368 | 369 | 370 |
371 | 372 |
373 | 374 |
375 | 376 | 377 |
378 |
379 |
380 |
381 | 382 |
383 | 384 |
385 | 386 |
387 |
388 |
389 | 390 |

Note that we not only have a ranking, but also a justification - for example the worst product is a Tubeless TP, which seems to have a lot of holder / dispenser related compaints.

391 | 392 |

We can even sort by any topic and pick the topic-wise best products, for example the best TPs for preventing clogging are (Clog #1, Clog #2):

393 | 394 |
395 |
396 | 397 |
398 | 399 |
400 | 401 |
402 | 403 | 404 |
405 | 406 |
407 |
408 |
409 | 410 |
411 | 412 |
413 | 414 |
415 |
416 |
417 | 418 |

Why stop at just toilet papers?

419 | 420 |

We at TheReviewIndex.com believe that similar techniques can be used for analyzing all kinds of reviews - which is why we’ve just launched a tool that creates spam filtered review summaries for any Amazon.com electronic / gadget / appliance.

421 | 422 |

You can try it out here:

423 | 424 |

https://thereviewindex.com

425 | 426 |

 

427 | 428 |

429 | 430 | 431 | 432 |
433 | 434 |
435 | 436 | 437 | 440 | 441 | 442 |     443 | 444 | 445 | 448 | 449 |
450 | 451 | 452 |
453 |
454 |
455 | 456 |
457 | 458 | 459 | 460 |
461 | 462 | 463 | 464 | 465 |
466 | 467 | 468 |
469 |
©2017 - TheReviewIndex
470 | 471 |
472 | 473 | 474 | 475 | 476 | 477 |
478 | 479 | 480 | -------------------------------------------------------------------------------- /_site/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | http://localhost:4000/blog/hello-world 5 | 2017-11-10T00:00:00-03:00 6 | 7 | 8 | http://localhost:4000/blog/frequently-asked-questions 9 | 2017-11-22T00:00:00-03:00 10 | 11 | 12 | http://localhost:4000/blog/science-toilet-paper-reviews 13 | 2017-11-30T00:00:00-03:00 14 | 15 | 16 | http://localhost:4000/blog/contribute 17 | 2017-12-25T00:00:00-03:00 18 | 19 | 20 | http://localhost:4000/blog/404 21 | 22 | 23 | http://localhost:4000/blog/about 24 | 25 | 26 | http://localhost:4000/blog/ 27 | 28 | 29 | -------------------------------------------------------------------------------- /about.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: About Us 4 | description: TheReviewIndex aspires to simplify the discovery and research process for gadgets and help you find the right products. 5 | --- 6 | 7 | 8 | ## About Us 9 | 10 |   11 | 12 | We are TheReviewIndex. 13 | 14 | We thought reading reviews, on sites like Amazon, is a bit too tedious. Most products have hundreds, even thousands of reviews. It's impossible to make sense of that many reviews, let alone compare across products. 15 | 16 | So we built [The Review Index](https://thereviewindex.com) that uses Neural Networks to detect and quantify recurring patterns in reviews, enabling one to go through thousands of reviews in a few minutes. 17 | 18 | Also - we call out products with significant volumes of spam / fake reviews so that one doesn't end up trusting them. 19 | 20 | We recently launched a public beta for Amazon (US) electronic / gadget / appliance reviews, and are iterating over the website and algorithms. We will expand to include other marketplaces soon. 21 | 22 | There is a lot of data waiting to be churned and presented - stay tuned! 23 | 24 | 25 |   26 | 27 |   28 | 29 |   30 | 31 | -------------------------------------------------------------------------------- /atom.xml: -------------------------------------------------------------------------------- 1 | --- 2 | layout: null 3 | --- 4 | 5 | 6 | 7 | 8 | {{ site.title }} 9 | 10 | {{ site.url }} 11 | {{ site.time | date_to_xmlschema }} 12 | 13 | {{ site.author.name }} 14 | {{ site.author.url }} 15 | {{ site.author.email }} 16 | 17 | 18 | {% for post in site.posts limit: 10 %} 19 | 20 | 21 | {{ post.title }} 22 | 23 | {{ site.url }}{{ post.id }} 24 | {{ post.date | date_to_xmlschema }} 25 | {{ post.content | xml_escape | truncatewords:50 }} 26 | 27 | 28 | {% endfor %} 29 | 30 | -------------------------------------------------------------------------------- /css/main.scss: -------------------------------------------------------------------------------- 1 | --- 2 | # Front matter comment to ensure Jekyll properly reads file. 3 | --- 4 | 5 | //Import 6 | @import "base", "mixin", "typography", "layout", "syntax.scss", "custom.scss"; 7 | -------------------------------------------------------------------------------- /img/default-ogimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/img/default-ogimage.png -------------------------------------------------------------------------------- /img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/img/favicon.png -------------------------------------------------------------------------------- /img/img-test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/img/img-test.png -------------------------------------------------------------------------------- /img/instron.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/img/instron.jpg -------------------------------------------------------------------------------- /img/monochrome-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/img/monochrome-mobile.png -------------------------------------------------------------------------------- /img/monochrome.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 89 | 91 | 93 | 94 | 95 | 97 | 98 | 99 | 100 | 102 | 104 | 105 | 106 | 107 | 108 | 110 | 111 | 112 | 113 | monochrome 114 | 115 | 116 | -------------------------------------------------------------------------------- /img/monochrome01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/img/monochrome01.png -------------------------------------------------------------------------------- /img/shopping.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/img/shopping.jpg -------------------------------------------------------------------------------- /img/tp-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/img/tp-header.png -------------------------------------------------------------------------------- /img/tp-ogimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thereviewindex/blog/a16aac630ff6d13891c7f131c45c3325fb37ff91/img/tp-ogimage.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 |
6 | 7 | {% for post in paginator.posts %} 8 | 9 |
10 |

{%if post.header %}{{ post.header }}{% else %}{{ post.title }}{% endif %}

11 | 16 |

{{ post.content | strip_html | truncatewords:50 }}

17 |
18 | 19 | {% endfor %} 20 | 21 |
22 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | var normal = document.getElementById("nav-menu"); 2 | var reverse = document.getElementById("nav-menu-left"); 3 | 4 | var icon = normal !== null ? normal : reverse; 5 | 6 | // Toggle the "menu-open" % "menu-opn-left" classes 7 | function toggle() { 8 | var navRight = document.getElementById("nav"); 9 | var navLeft = document.getElementById("nav-left"); 10 | var nav = navRight !== null ? navRight : navLeft; 11 | 12 | var button = document.getElementById("menu"); 13 | var site = document.getElementById("wrap"); 14 | 15 | if (nav.className == "menu-open" || nav.className == "menu-open-left") { 16 | nav.className = ""; 17 | button.className = ""; 18 | site.className = ""; 19 | } else if (reverse !== null) { 20 | nav.className += "menu-open-left"; 21 | button.className += "btn-close"; 22 | site.className += "fixed"; 23 | } else { 24 | nav.className += "menu-open"; 25 | button.className += "btn-close"; 26 | site.className += "fixed"; 27 | } 28 | } 29 | 30 | // Ensures backward compatibility with IE old versions 31 | function menuClick() { 32 | if (document.addEventListener && icon !== null) { 33 | icon.addEventListener('click', toggle); 34 | } else if (document.attachEvent && icon !== null) { 35 | icon.attachEvent('onclick', toggle); 36 | } else { 37 | return; 38 | } 39 | } 40 | 41 | menuClick(); -------------------------------------------------------------------------------- /license.md: -------------------------------------------------------------------------------- 1 | ## Released under MIT License 2 | 3 | Copyright (c) 2017 The Review Index 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | --------------------------------------------------------------------------------