What2Eat is a smarter way to rank restaurants, moving beyond simple averages and review counts. By incorporating reviewer traits, recency, and subjective biases, it calculates more reliable and nuanced scores to identify the best dining spots.
- Chatbot interface for easy interaction
- Recommendations based on location and food preferences
- Personalized Adjustments: Scores reflect reviewer habits, recency, and credibility.
- Robust Rankings: Bayesian adjustments reduce the impact of outliers and small sample sizes.
- Manipulation-Resistant: Incorporates reviewer activity to mitigate spam or biased reviews.
You can access What2Eat through the following links:
- Python
- Streamlit
- Kakao Map API
-
Data Collection: Over 1.5 million reviews from 1,650,000+ Seoul restaurants were collected from Kakao Map.
- Data includes reviewer ID, scores, review text, timestamps, and additional metadata like reviewer badges or levels.
-
Review Analysis:
- Each review is evaluated using three factors:
- Reviewer Bias: How a review’s score compares to the reviewer’s typical scoring pattern (
score_scaled
). - Recency: Reviews written within the last 3 months are weighted higher, with older reviews gradually losing weight (
date_scaled
). - Reviewer Credibility: Reviewers with higher activity levels or badges receive more influence (
badge_scaled
).
- Reviewer Bias: How a review’s score compares to the reviewer’s typical scoring pattern (
- These factors are normalized and combined into a Combined Score for each review.
- Each review is evaluated using three factors:
-
Ranking System:
- Individual Review Aggregation:
- Reviews for each restaurant are combined using Bayesian Adjusted Averages, ensuring restaurants with fewer reviews are not unfairly overrepresented.
- Final Score Calculation:
[
\text{Restaurant Score} = \frac{(\mu \times k) + (x} \times N)}{k + N}
]
- ( \mu ): Average of all restaurants’ combined scores.
- ( k ): Minimum review count threshold (e.g., 5).
- ( x ): Restaurant’s average combined score.
- ( N ): Number of reviews for the restaurant.
- Individual Review Aggregation:
-
Display Criteria:
- Restaurants are ranked by their Bayesian Adjusted Scores.
- Additional filters include:
- Cuisine Type: Narrow down results by category (e.g., Korean, Italian, Cafes).
- Location: Filter by specific areas or neighborhoods.
- Warnings are displayed for restaurants with over 10% meaningful negative reviews
For more detailed information about the development process and methodologies, check out our blog post.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
Seongrok Kim- [[email protected]]
Project Link: https://github.com/learningnrunning/What2Eat
- Kakao Map for providing the initial data
- All the food lovers who contributed reviews and ratings