# Consumer-Driven Usability Test of Mobile Application for Tea Recommendation Service
## 3 Methods
### Development of TeaPick\({}^{TM}\) Mobile Application
The main process of recommendation is to calculate the matching score of each tea for the user preference and to provide the three teas that rank the highest as the recommended tea, as depicted in Algorithm 1. The tea ranking operation is divided into two steps. First, the matching score of each tea is derived based on the user's input for their preferred flavor and health benefits, as well as the scores given by the experts for the factors of tea attributes. As a result, the top 6 teas are determined, as can be seen in 1-1 and 1-2 of Algorithm 1. The matching score is determined by calculating the score for flavor and the score for the health benefits, and computing the weighted sum of the two. The score for flavor or health benefits is calculated by adding the scores (as shown in Table 1) of the factors selected by users. The weights of flavor and health benefits were set as 0.6 and 0.4, respectively, from the results of the consumer survey mentioned above. Second, based on the user's preferred drinking time, the top three of the six teas are selected as recommended teas (see 2 in Algorithm 1). Priority is given to the teas with the recommended drinking time determined by the experts that matches the user's preferred time. If there are multiple teas in the matching time zone, we rank teas in order of the matching score of teas. The reason why we did not include the factor of drinking time in the calculation of the matching score, as we did with the factors of flavor and health benefits, was that it was not appropriate to assign a score to the time. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Tea Attributes** & **Factors** & **T1** & **T2** & **T3** \\ \hline \multirow{8}{*}{Flavor} & pure and fine tea flavor & 3 & 3 & 0 \\  & refreshing forest flavor & 0 & 0 & 0 \\  & cool mint flavor & 0 & 5 & 0 \\  & lovely flower flavor & 0 & 0 & 0 \\  & sweet fruit flavor & 4 & 0 & 0 \\  & sour fruit flavor & 0 & 0 & 0 \\  & fresh and spicy flavor & 0 & 0 & 0 \\  & mild milky flavor & 0 & 0 & 5 \\  & roasted toffee nut flavor & 0 & 0 & 4 \\  & detox & 2 & 2 & 2 \\  & beauty & 3 & 3 & 3 \\  & slimming & 4 & 3 & 3 \\  & refreshing & 3 & 5 & 3 \\  & relaxing & 2 & 3 & 2 \\  & digestion improvement & 3 & 4 & 2 \\  & energy boosting & 2 & 5 & 1 \\  & bad breath treatment & 4 & 5 & 2 \\  & cold prevention & 2 & 3 & 2 \\  & early morning & - & O & - \\ Recommended & morning & - & - & - \\ drinking time & afternoon & O & - & O \\  & evening & - & - & - \\  & all day & - & O & - \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Tea attribute database example. ```
Input: \(f^{\mu}\), a column vector for the preferred flavors of a user, \(f^{\mu}{}_{i}=1\) if a user selects the \(i_{\text{th}}\) flavor, otherwise 0 \(h^{\mu}\), a column vector for the preferred health benefits of a user, \(h^{\mu}{}_{i}=1\) if a user selects the \(i_{\text{th}}\) health benefit, otherwise 0 \(\mu\), a column vector for the preferred drinking time of a user, \(t^{\mu}{}_{i}=1\) if a user selects the \(i_{\text{th}}\) drinking time, otherwise 0 \(\mathcal{T}\), a matrix for the scores of the flavor factors of all teas from the tea attribute database \(T^{h}\), a matrix for the scores of the health benefit factors of all teas from the tea attribute database \(w_{\eta}\), a weight of the flavor attribute \(w_{h}\), a weight of the health benefit attribute Output: \(l_{\text{tea}}\), a list of three recommended tea ids //initialization \(K\gets 3\) \(C\gets 6\) \(s^{T}\leftarrow[]\) \(l_{\text{tea}}\leftarrow[]\) //l-1. calculate a column vector, s, containing matching scores of teas given user preferred flavors and health benefits \(s\gets w_{\eta}Tf^{\mu}+w_{h}T^{h}h^{u}\) //l-2. select the teas with top-6 matching scores while size of \(s^{T}<C\)do \(idxMax\leftarrow\text{argmax}_{i}(s)\) \(s^{T}\gets idxMax\)  remove an element of \(s\) with index of \(idxMax\) //l-2.