
Delivery Analysis and User Prediction
The Next Step for Advancing the Delivery Industry with Information Technology
I heard from CEO Bae Ki-hong, who had just returned from Korea last month, that the battle between Baedal Minjok and Yogiyo in the food delivery app market was heating up. I had seen Korean broadcasts about the World Cup and noticed that they were clearly spending money on marketing. That made me curious, so I looked into it, and the service's motto was "Let's advance the delivery industry using information technology!" As a business-oriented developer, I felt that direction was promising.
Based on my experience living in the Korean countryside, Seoul, New York, and Los Angeles, I can say that the size and competitiveness of the Korean food delivery market is among the best in the world. In New York, you could at least use delivery services like delivery.com, but restaurant prices were high to begin with, the food options were limited, and tips were fairly large, so ordering in usually required some real thought.
When I tried Baedal Minjok after hearing that Woowa Brothers had raised significant investment, I expected the app and service to integrate beautifully with Korea's excellent IT and delivery infrastructure, but I was a little disappointed. At that point it still only provided basic features for reviews and ordering food. But I also saw major potential in the data Baedal Minjok was accumulating. I started thinking about how I would use that data to improve the service's competitiveness and contribute to monetization.
Opinion Analysis Through Review NLP
As you can see from Yelp, there are few tools in local business that reflect the user's voice as effectively as well-curated reviews. Foreign services known for handling user reviews well, such as Yelp, Amazon, Consumr Reviews, and TripAdvisor, even provide guidelines from the moment a user writes a review so that they enter data in a format that is easier to analyze.
But most Korean services that collect review information from users are still indifferent to opinion analysis through natural language processing, and they miss out on a valuable analytical resource.
Also, unlike English, Korean can be understood even without spaces, so many users do not pay much attention to spelling. There is also the barrier of slang and abbreviations. If you do not normalize that material, machine analysis loses accuracy, and users cannot do much active searching beyond reading every review one by one.
I organized the process of solving these problems and implementing opinion analysis through review NLP, along with the benefits it can bring, in order below.
1. Data Scraping
To analyze the data, I first scraped all the restaurant information and reviews publicly available on the Baedal Minjok website. Since I do this kind of work often, I had already built a node.js module called Crawl-Baby for webpage scraping, and I used it again here.
The Baedal Minjok website structure was simple enough that these two URL patterns were sufficient:
The restaurant numbers were not unique IDs but sequential numbers, so I accessed them in order. Baedal Minjok's presentation materials said more than 130,000 restaurants were listed, but fewer than 50,000 were accessible on the website, and the highest restaurant number did not even exceed 100,000, which I found odd. The total number of reviews was around 3,700,000, which means that, by simple math, each restaurant had more than 70 reviews on average. That is not a small number.
Because location matters greatly in delivery businesses, I needed to store latitude and longitude for each restaurant as well. To do that, I used Daum's local address-to-coordinate conversion API, which was excellent.
2. Spacing Correction
I originally wanted to implement spacing myself using HMM, but the amount of corpus required for meaningful results made training too slow, so I gave up for the moment and used Naver Lab's automatic spacing service.
I did think that if I later collected and trained on a corpus dedicated only to food reviews, I might get better results.
3. Spelling Correction
Implementing spell correction myself was beyond my reach, so I searched for spell checkers online and used one of those. I thought about how I would build something like that myself, and I felt I could try something similar to Ginger, which helps with English writing. Of course, because this would require supervised learning, starting with newspaper articles, where you can assume spelling is correct and easy to obtain, would probably make it more likely that the corrected output would still look like a newspaper article.
4. Morphological Analysis - Eunjeon Project
Since last year I have consistently used the Eunjeon project for morphological analysis. I liked its speed and decent accuracy, so I also built and published a mecab-ffi module to use it from node.js, and it is now being downloaded in Japan, Mecab's home country.
5. Building Positive and Negative Word Lists for Food Delivery
One thing I learned a few months ago while building the baby products review analysis app BabyShopR was that the best way to start opinion analysis in a new domain is usually a rule-based approach.
The idea is to distinguish whether an adjective or verb modifying a noun is positive or negative, store that in a dictionary, and use it. This is especially useful in Korean, where there are fewer resources available than in English, where NLP research is much more active. In practice, you often have to start by head-butting the wall.
Here is the process I went through to build the first positive and negative word lists.
- Gather the one-star reviews and extract morphemes separately.
- Group the morphemes from the one-star reviews by part of speech and sort them by frequency.
- From the grouped parts of speech, remove parts that are not useful, such as particles, endings, and punctuation, and keep only content words like common nouns, proper nouns, verbs, adjectives, and adverbs.
- At this point you can get a list like the one below.
- Gather the five-star reviews separately and go through steps 1-5 above.
- Exclude morphemes that were counted 100 or more times in both the one-star and five-star sets.
- Visually scan the remaining morphemes, remove clearly erroneous ones, and promote items that were pushed down the list but seem important.
- Save each resulting list as a dictionary.
1 taste NNG,,T,taste,,,,,
2 quantity NNG,,T,quantity,,,,,
3 delivery NNG,,T,delivery,,,,,
4 tasteless VA,,T,tasteless,,,,,
5 phone NNG,,F,phone,,,,,
6 expensive VA,,F,expensive,,,,,
7 late VA,,T,late,,,,,
8 unfriendly NNG,,T,unfriendly,Compound,,,un+friendly,un/NNG//1/1+unfriendly/Compound//0/2+friendly/NNG//1/1
9 not much MAG,degree adverb,F,not much,,,,,_
10 slow VA+EC,_,F,slow,Inflect,VA,EC,slow/VA+eo/EC,*
...
Value Proposition Through Review Analysis
1. Deriving Restaurant Characteristics
Using a rule-based approach with positive and negative word lists, you can compare a restaurant's reviews and derive its characteristics.
When users use the Baedal Minjok app today, the only indicators they can see at a glance for whether a restaurant is good or bad are average rating, review count, and favorites count. But if you show the strengths derived from those restaurant-level traits as short keywords like "generous," "friendly," or "fast" on the restaurant list page, user satisfaction can improve.
Especially when you read user reviews, you often find that people give four or five stars and still write criticism, while one-star reviews almost never contain praise. That creates a high false-positive rate in average ratings, and this helps correct for it.
2. Deriving User Tendencies by Region and Food Category
Baedal Minjok's users are not just the people ordering food, but also the restaurant owners. To satisfy those owners, it is important to make clear that Baedal Minjok provides real and meaningful value.
Restaurant owners want to understand customers and often wonder how they should approach them. If you can periodically provide quantified reports on what customers care about and what disappoints them by restaurant region and category, that becomes an important selling point for the sales team.
Take Hanintel, a Korean guesthouse booking service for the US, as an example. One reason guesthouse owners were willing to pay commission fees to Hanintel was that it was one of the only ways they could get proper feedback. For owners, there is almost nothing more frightening than a customer using the service once and then disappearing without a trace.
3. Deriving User Tendencies
Analyze the reviews users have written and infer what they care about most when ordering delivery food.
Detect patterns over time, such as whether they complain when delivery is late, get angry when the portion is small, or leave negative comments when the service is rude, and guide restaurants at order time so they can provide more personalized delivery and improve user satisfaction.
From Analysis to Prediction
When I first looked at Baedal Minjok, the answer to whether the service could go beyond simple delivery matching and actually advance the delivery industry through information technology was extremely clear. The answer is "yes." There is no other service for which current recommendation technology can produce user prediction with such high satisfaction and utility as a food delivery ordering app.
User Pattern Analysis
The operators of such services are already collecting user logs and probably using various tools to analyze them in order to extract things like the following:
- Favorite restaurants by user
- Preferred food categories by user
- Preferred menu items by user
- Preferred ordering times by user
- User gender, age group, and ordering region
User Taste Prediction
User taste prediction means learning from the behavior of existing users first and then inferring some user's preferences or next action from that basis.
Machine learning is used to learn from existing user behavior. In particular, by using similarity measures and collaborative filtering, you can find the menus and restaurants a user likes, predict user taste, and enable targeted push notifications, coupons, and other marketing.
Implementing User Taste Prediction
To predict user taste, you need data such as each user's order history, which is not publicly available on the Baedal Minjok website. So unlike review analysis, this is not something I can implement directly here. Instead, I will briefly explain how user taste prediction can work, based on my experience building the Recomio recommendation API.
1. Measuring User Satisfaction by Restaurant
First, you need to measure how satisfied a user was with each restaurant. The clearest indicators of satisfaction are the star ratings and reviews the user leaves. If there are no ratings or reviews, you can assume satisfaction is high when a user orders from the same restaurant more than once.
2. Measuring User Preference by Food Category and Menu
User food preferences can be judged independently of restaurant ratings and reviews, simply by looking at what kinds of food they order most often.
3. Understanding User Priorities and Restaurant Strengths and Weaknesses
Through review analysis, you can find out what users value most in delivery food and also identify the strengths and weaknesses of each restaurant.
If I were the CEO of Baedal Minjok, I would even call users who did not leave a review after ordering and make sure their feedback was reflected in the system. That would create a foundation for anticipating the fit between users and restaurants and become the starting point for targeted marketing and advertising.
4. Measuring Similarity Between Users
Using the numerical indicators covered in sections 1, 2, and 3 above, you can calculate similarity between all users. You can then adjust those values by adding region, order time, gender, and age.
5. Predicting User Taste
- If User A likes chicken and hates jokbal but you want to know whether they will like hangover soup, look at the hangover soup preferences of users similar to User A.
- If you want to know whether User A will like Restaurant 1, look at the satisfaction scores for Restaurant 1 from users similar to User A.
6. Predicting Users Who Prefer Each Restaurant
If you reverse the logic of user taste prediction, you can preselect the users who are likely to like or dislike each restaurant.
Value Proposition Through User Analysis and Prediction
1. Image Renewal
Baedal Minjok currently feels close to a simple delivery-matching service, and users are disappointed that even direct payments are handled by the CS team over the phone. Showing that Baedal Minjok is making various attempts with information technology could help refresh its image.
2. Changing the Game
The reason Baedal Minjok and Yogiyo are pouring effort into marketing after large investment rounds is that delivery apps are a proven business model.
I saw the same thing at eum: in Korea, marketing brings in users, only a certain percentage of those users become active users, only a certain percentage of active users pay, and only a certain percentage of paying users keep paying.
If Baedal Minjok, Yogiyo, BaedalTong, and all the other delivery apps keep the same shape they have now, it will end as a money fight. But if they take a different approach with recommendation and analytics technology, it becomes a different battle. They can get ahead through technology rather than platform control.
3. Personalized Push Messages
In mobile services, user response comes from push notifications, and retention depends on whether you can push valuable information or not. That is exactly why social dating services like ehum and social commerce services like Coupang are obsessed with moving users through pushes and emails based on the user pool they already have. If you do not send pushes, users do nothing; if you send worthless pushes, they leave.
The best way to raise payment conversion is to recommend food the user likes, at a time when they can eat it from a restaurant with high satisfaction. The mobile game industry does this best. They have enormous analysis and effort behind them, plus know-how and proven models. They do not let users simply drift away. If there is no activity, they even tempt users with free paid items.
Delivery apps can do the same thing. For example, on a day with no sports game and bad weather, when delivery demand is low, pushing a chicken-and-beer discount coupon tailored to the user's taste would be a hard temptation to resist. And for mothers who have trouble cooking on time, pushing Korean food or snack menus during the day would likely get a stronger response.
That is my take on Baedal Minjok's current situation and future direction from the technical perspective of review analysis and user prediction.
If all delivery apps build a successful second data set through analysis and prediction on top of the basic first-party data they already have, such as purchase history, I am sure they will end up with an advantage that other companies do not have.
If this article helped you, I would appreciate it if you clicked the Recommend button below.