Spaces:
Sleeping
Sleeping
yolo
Browse files- app/__pycache__/core.cpython-310.pyc +0 -0
- app/app.py +72 -2
- app/dashboard.ipynb +75 -5
- app/data/try.csv +102 -0
app/__pycache__/core.cpython-310.pyc
CHANGED
Binary files a/app/__pycache__/core.cpython-310.pyc and b/app/__pycache__/core.cpython-310.pyc differ
|
|
app/app.py
CHANGED
@@ -40,6 +40,7 @@ raw_ratings = pd.read_csv('data/raw_simulated_ratings.csv')
|
|
40 |
# crop to 5 rows and 7 columns
|
41 |
raw_ratings = raw_ratings.iloc[:5, :7]
|
42 |
|
|
|
43 |
|
44 |
|
45 |
|
@@ -73,7 +74,7 @@ dashboard_layout = html.Div([
|
|
73 |
], className='row'),
|
74 |
|
75 |
|
76 |
-
html.H1(children=
|
77 |
html.Div(
|
78 |
[
|
79 |
html.Div(
|
@@ -95,12 +96,81 @@ dashboard_layout = html.Div([
|
|
95 |
], className='row'),
|
96 |
|
97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
|
99 |
|
100 |
|
101 |
|
102 |
|
103 |
-
])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
|
105 |
|
106 |
@app.callback(
|
|
|
40 |
# crop to 5 rows and 7 columns
|
41 |
raw_ratings = raw_ratings.iloc[:5, :7]
|
42 |
|
43 |
+
TEMPORARY_WINE_RECOMMENDATION_FORM_INFO = {}
|
44 |
|
45 |
|
46 |
|
|
|
74 |
], className='row'),
|
75 |
|
76 |
|
77 |
+
html.H1(children="Wine Recommender based on users' feedback", style={'textAlign':'center'}),
|
78 |
html.Div(
|
79 |
[
|
80 |
html.Div(
|
|
|
96 |
], className='row'),
|
97 |
|
98 |
|
99 |
+
html.H1(children="Wine Preferences Form", style={'textAlign':'center'}),
|
100 |
+
html.Div(
|
101 |
+
[
|
102 |
+
html.Div(
|
103 |
+
[
|
104 |
+
#Dropdown for wine name
|
105 |
+
dcc.Dropdown(wine_list, wine_list[0], id='dropdown-selection'),
|
106 |
+
dcc.Input(id='input-wine-rating', type='number', placeholder='Enter wine rating', min=1, max=5),
|
107 |
+
], className='six columns',
|
108 |
+
),
|
109 |
+
html.Div(
|
110 |
+
[
|
111 |
+
html.Button('Submit', id='submit-button', n_clicks=0),
|
112 |
+
], className='six columns',
|
113 |
+
),
|
114 |
+
], className='row'),
|
115 |
+
|
116 |
+
html.Div(id='recommended-wine-rating-info', style={'textAlign':'center'}),
|
117 |
+
html.Button('Reset', id='recommend-wine-from-form-reset', n_clicks=0),
|
118 |
+
# Button to submit the form
|
119 |
+
html.Button('Recommend Wine', id='recommend-wine-from-form', n_clicks=0),
|
120 |
+
html.Div(id='recommended-wine-form-output', style={'textAlign':'center'}),
|
121 |
+
|
122 |
+
|
123 |
|
124 |
|
125 |
|
126 |
|
127 |
|
128 |
+
], style={'background-color': '#333', 'font-family': 'Fantasy', 'color': '#999', 'padding': '10px'})
|
129 |
+
|
130 |
+
|
131 |
+
@app.callback(
|
132 |
+
Input('recommend-wine-from-form-reset', 'n_clicks'),
|
133 |
+
)
|
134 |
+
def reset_form(n_clicks):
|
135 |
+
if n_clicks > 0:
|
136 |
+
TEMPORARY_WINE_RECOMMENDATION_FORM_INFO.clear()
|
137 |
+
return
|
138 |
+
|
139 |
+
|
140 |
+
@app.callback(
|
141 |
+
Output('recommended-wine-rating-info', 'children'),
|
142 |
+
Input('submit-button', 'n_clicks'),
|
143 |
+
Input('dropdown-selection', 'value'),
|
144 |
+
Input('input-wine-rating', 'value'),
|
145 |
+
)
|
146 |
+
def update_output(n_clicks, wine_name, rating):
|
147 |
+
if n_clicks > 0:
|
148 |
+
TEMPORARY_WINE_RECOMMENDATION_FORM_INFO[wine_name] = rating
|
149 |
+
n_clicks = 0
|
150 |
+
return f'You rated {wine_name} with a score of {rating}'
|
151 |
+
return ''
|
152 |
+
|
153 |
+
@app.callback(
|
154 |
+
Output('recommended-wine-form-output', 'children'),
|
155 |
+
Input('recommend-wine-from-form', 'n_clicks'),
|
156 |
+
)
|
157 |
+
def recommend_wine_from_form(n_clicks):
|
158 |
+
if n_clicks > 0:
|
159 |
+
user = "temporary_user"
|
160 |
+
user_rating_df.loc[user] = TEMPORARY_WINE_RECOMMENDATION_FORM_INFO
|
161 |
+
user_rating_df.fillna(0, inplace=True)
|
162 |
+
user_rating_df['user'] = user_rating_df.index
|
163 |
+
|
164 |
+
|
165 |
+
wine_recommendation_from_user = core.recommend_wine_from_users(user_rating_df, user, 3)
|
166 |
+
wine_recommendation_from_user = f"Based on user form, we recommend: "+"; ".join(wine_recommendation_from_user)
|
167 |
+
return wine_recommendation_from_user
|
168 |
+
return ''
|
169 |
+
|
170 |
+
|
171 |
+
|
172 |
+
|
173 |
+
|
174 |
|
175 |
|
176 |
@app.callback(
|
app/dashboard.ipynb
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
"cells": [
|
3 |
{
|
4 |
"cell_type": "code",
|
5 |
-
"execution_count":
|
6 |
"metadata": {},
|
7 |
"outputs": [
|
8 |
{
|
9 |
"name": "stderr",
|
10 |
"output_type": "stream",
|
11 |
"text": [
|
12 |
-
"/var/folders/b4/lwfgccm95kqd2skcwvrt2fr00000gn/T/
|
13 |
"\n",
|
14 |
"Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
|
15 |
"\n"
|
@@ -30,7 +30,7 @@
|
|
30 |
" "
|
31 |
],
|
32 |
"text/plain": [
|
33 |
-
"<IPython.lib.display.IFrame at
|
34 |
]
|
35 |
},
|
36 |
"metadata": {},
|
@@ -93,6 +93,7 @@
|
|
93 |
"# crop to 5 rows and 7 columns\n",
|
94 |
"raw_ratings = raw_ratings.iloc[:5, :7]\n",
|
95 |
"\n",
|
|
|
96 |
"\n",
|
97 |
"\n",
|
98 |
"\n",
|
@@ -126,7 +127,7 @@
|
|
126 |
" ], className='row'),\n",
|
127 |
" \n",
|
128 |
" \n",
|
129 |
-
" html.H1(children
|
130 |
" html.Div(\n",
|
131 |
" [\n",
|
132 |
" html.Div(\n",
|
@@ -148,12 +149,81 @@
|
|
148 |
" ], className='row'),\n",
|
149 |
" \n",
|
150 |
" \n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
"\n",
|
152 |
" \n",
|
153 |
"\n",
|
154 |
" \n",
|
155 |
"\n",
|
156 |
-
"])\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
"\n",
|
158 |
"\n",
|
159 |
"@app.callback(\n",
|
|
|
2 |
"cells": [
|
3 |
{
|
4 |
"cell_type": "code",
|
5 |
+
"execution_count": 5,
|
6 |
"metadata": {},
|
7 |
"outputs": [
|
8 |
{
|
9 |
"name": "stderr",
|
10 |
"output_type": "stream",
|
11 |
"text": [
|
12 |
+
"/var/folders/b4/lwfgccm95kqd2skcwvrt2fr00000gn/T/ipykernel_4768/1094357399.py:82: FutureWarning:\n",
|
13 |
"\n",
|
14 |
"Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
|
15 |
"\n"
|
|
|
30 |
" "
|
31 |
],
|
32 |
"text/plain": [
|
33 |
+
"<IPython.lib.display.IFrame at 0x2b1675fc0>"
|
34 |
]
|
35 |
},
|
36 |
"metadata": {},
|
|
|
93 |
"# crop to 5 rows and 7 columns\n",
|
94 |
"raw_ratings = raw_ratings.iloc[:5, :7]\n",
|
95 |
"\n",
|
96 |
+
"TEMPORARY_WINE_RECOMMENDATION_FORM_INFO = {}\n",
|
97 |
"\n",
|
98 |
"\n",
|
99 |
"\n",
|
|
|
127 |
" ], className='row'),\n",
|
128 |
" \n",
|
129 |
" \n",
|
130 |
+
" html.H1(children=\"Wine Recommender based on users' feedback\", style={'textAlign':'center'}),\n",
|
131 |
" html.Div(\n",
|
132 |
" [\n",
|
133 |
" html.Div(\n",
|
|
|
149 |
" ], className='row'),\n",
|
150 |
" \n",
|
151 |
" \n",
|
152 |
+
" html.H1(children=\"Wine Preferences Form\", style={'textAlign':'center'}),\n",
|
153 |
+
" html.Div(\n",
|
154 |
+
" [\n",
|
155 |
+
" html.Div(\n",
|
156 |
+
" [\n",
|
157 |
+
" #Dropdown for wine name\n",
|
158 |
+
" dcc.Dropdown(wine_list, wine_list[0], id='dropdown-selection'),\n",
|
159 |
+
" dcc.Input(id='input-wine-rating', type='number', placeholder='Enter wine rating', min=1, max=5),\n",
|
160 |
+
" ], className='six columns',\n",
|
161 |
+
" ),\n",
|
162 |
+
" html.Div(\n",
|
163 |
+
" [\n",
|
164 |
+
" html.Button('Submit', id='submit-button', n_clicks=0), \n",
|
165 |
+
" ], className='six columns',\n",
|
166 |
+
" ),\n",
|
167 |
+
" ], className='row'),\n",
|
168 |
+
"\n",
|
169 |
+
" html.Div(id='recommended-wine-rating-info', style={'textAlign':'center'}),\n",
|
170 |
+
" html.Button('Reset', id='recommend-wine-from-form-reset', n_clicks=0),\n",
|
171 |
+
" # Button to submit the form\n",
|
172 |
+
" html.Button('Recommend Wine', id='recommend-wine-from-form', n_clicks=0),\n",
|
173 |
+
" html.Div(id='recommended-wine-form-output', style={'textAlign':'center'}),\n",
|
174 |
+
"\n",
|
175 |
+
"\n",
|
176 |
"\n",
|
177 |
" \n",
|
178 |
"\n",
|
179 |
" \n",
|
180 |
"\n",
|
181 |
+
"], style={'background-color': '#333', 'font-family': 'Fantasy', 'color': '#999', 'padding': '10px'})\n",
|
182 |
+
"\n",
|
183 |
+
"\n",
|
184 |
+
"@app.callback(\n",
|
185 |
+
" Input('recommend-wine-from-form-reset', 'n_clicks'),\n",
|
186 |
+
")\n",
|
187 |
+
"def reset_form(n_clicks):\n",
|
188 |
+
" if n_clicks > 0:\n",
|
189 |
+
" TEMPORARY_WINE_RECOMMENDATION_FORM_INFO.clear()\n",
|
190 |
+
" return\n",
|
191 |
+
" \n",
|
192 |
+
"\n",
|
193 |
+
"@app.callback(\n",
|
194 |
+
" Output('recommended-wine-rating-info', 'children'),\n",
|
195 |
+
" Input('submit-button', 'n_clicks'),\n",
|
196 |
+
" Input('dropdown-selection', 'value'),\n",
|
197 |
+
" Input('input-wine-rating', 'value'),\n",
|
198 |
+
")\n",
|
199 |
+
"def update_output(n_clicks, wine_name, rating):\n",
|
200 |
+
" if n_clicks > 0:\n",
|
201 |
+
" TEMPORARY_WINE_RECOMMENDATION_FORM_INFO[wine_name] = rating\n",
|
202 |
+
" n_clicks = 0\n",
|
203 |
+
" return f'You rated {wine_name} with a score of {rating}'\n",
|
204 |
+
" return ''\n",
|
205 |
+
"\n",
|
206 |
+
"@app.callback(\n",
|
207 |
+
" Output('recommended-wine-form-output', 'children'),\n",
|
208 |
+
" Input('recommend-wine-from-form', 'n_clicks'),\n",
|
209 |
+
")\n",
|
210 |
+
"def recommend_wine_from_form(n_clicks):\n",
|
211 |
+
" if n_clicks > 0:\n",
|
212 |
+
" user = \"temporary_user\"\n",
|
213 |
+
" user_rating_df.loc[user] = TEMPORARY_WINE_RECOMMENDATION_FORM_INFO\n",
|
214 |
+
" user_rating_df.fillna(0, inplace=True)\n",
|
215 |
+
" user_rating_df['user'] = user_rating_df.index\n",
|
216 |
+
"\n",
|
217 |
+
"\n",
|
218 |
+
" wine_recommendation_from_user = core.recommend_wine_from_users(user_rating_df, user, 3)\n",
|
219 |
+
" wine_recommendation_from_user = f\"Based on user form, we recommend: \"+\"; \".join(wine_recommendation_from_user)\n",
|
220 |
+
" return wine_recommendation_from_user\n",
|
221 |
+
" return ''\n",
|
222 |
+
"\n",
|
223 |
+
"\n",
|
224 |
+
"\n",
|
225 |
+
"\n",
|
226 |
+
"\n",
|
227 |
"\n",
|
228 |
"\n",
|
229 |
"@app.callback(\n",
|
app/data/try.csv
ADDED
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
user,Azevedo,Gazela,Aura,Dedicado,Legado,Offley,Quinta dos Carvalhais,Série Ímpar,Antónia Adelaide Ferreira,Casa Ferreirinha,Finca Flichman,Herdade do peso,Marqués de Burgos,Porto Ferreira,Sandeman,Silk & Spice,Chateau Los Boldos,Framingham,LAN,Mateus,Quinta da Romeira,Santiago Ruiz,cluster,user
|
2 |
+
User1,0.0,2.0,0.0,4.0,0.0,0.0,3.0,4.0,2.0,0.0,5.0,3.0,0.0,0.0,0.0,4.0,2.0,0.0,0.0,3.0,5.0,0.0,0.0,User1
|
3 |
+
User2,0.0,5.0,1.0,0.0,0.0,5.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,3.0,0.0,3.0,0.0,3.0,1.0,User2
|
4 |
+
User3,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,4.0,4.0,2.0,4.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,3.0,1.0,3.0,User3
|
5 |
+
User4,4.0,0.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,0.0,0.0,5.0,2.0,0.0,0.0,2.0,User4
|
6 |
+
User5,3.0,0.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,1.0,0.0,0.0,5.0,4.0,0.0,3.0,0.0,0.0,5.0,0.0,4.0,0.0,2.0,User5
|
7 |
+
User6,4.0,0.0,0.0,5.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,4.0,0.0,5.0,5.0,1.0,0.0,3.0,2.0,User6
|
8 |
+
User7,2.0,1.0,2.0,0.0,5.0,5.0,2.0,0.0,0.0,2.0,1.0,0.0,4.0,0.0,3.0,0.0,0.0,4.0,0.0,4.0,0.0,1.0,1.0,User7
|
9 |
+
User8,4.0,0.0,0.0,0.0,0.0,0.0,5.0,3.0,0.0,1.0,3.0,1.0,4.0,0.0,0.0,0.0,4.0,0.0,2.0,2.0,2.0,1.0,0.0,User8
|
10 |
+
User9,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,2.0,1.0,3.0,0.0,0.0,0.0,2.0,2.0,0.0,2.0,3.0,0.0,0.0,4.0,2.0,User9
|
11 |
+
User10,0.0,5.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,4.0,1.0,0.0,0.0,0.0,2.0,1.0,0.0,2.0,2.0,User10
|
12 |
+
User11,0.0,0.0,0.0,0.0,4.0,5.0,3.0,0.0,2.0,0.0,5.0,0.0,0.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,User11
|
13 |
+
User12,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,4.0,4.0,3.0,1.0,0.0,0.0,2.0,2.0,0.0,0.0,2.0,User12
|
14 |
+
User13,0.0,0.0,0.0,5.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,1.0,1.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,3.0,User13
|
15 |
+
User14,2.0,1.0,0.0,4.0,0.0,4.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,2.0,0.0,4.0,1.0,0.0,1.0,User14
|
16 |
+
User15,1.0,0.0,3.0,0.0,4.0,1.0,0.0,2.0,3.0,0.0,5.0,0.0,3.0,0.0,2.0,5.0,0.0,0.0,5.0,0.0,0.0,0.0,2.0,User15
|
17 |
+
User16,5.0,4.0,3.0,2.0,0.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,0.0,3.0,4.0,0.0,0.0,0.0,0.0,2.0,5.0,0.0,2.0,User16
|
18 |
+
User17,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,5.0,0.0,0.0,1.0,User17
|
19 |
+
User18,3.0,0.0,1.0,0.0,5.0,5.0,0.0,0.0,1.0,3.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,1.0,User18
|
20 |
+
User19,1.0,3.0,4.0,1.0,0.0,4.0,0.0,3.0,3.0,0.0,1.0,3.0,0.0,0.0,0.0,0.0,5.0,5.0,1.0,0.0,3.0,0.0,3.0,User19
|
21 |
+
User20,1.0,0.0,0.0,5.0,0.0,3.0,1.0,0.0,2.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,2.0,3.0,0.0,5.0,2.0,1.0,1.0,User20
|
22 |
+
User21,3.0,1.0,3.0,0.0,4.0,1.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,User21
|
23 |
+
User22,0.0,5.0,0.0,0.0,1.0,5.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,4.0,1.0,2.0,2.0,0.0,1.0,User22
|
24 |
+
User23,0.0,0.0,0.0,0.0,0.0,4.0,0.0,5.0,0.0,4.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,3.0,User23
|
25 |
+
User24,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,5.0,4.0,5.0,3.0,0.0,3.0,0.0,2.0,0.0,0.0,0.0,4.0,2.0,User24
|
26 |
+
User25,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,3.0,1.0,3.0,0.0,0.0,0.0,4.0,1.0,5.0,5.0,0.0,0.0,0.0,3.0,User25
|
27 |
+
User26,3.0,1.0,4.0,0.0,0.0,5.0,1.0,2.0,0.0,2.0,2.0,0.0,0.0,5.0,0.0,2.0,5.0,0.0,2.0,5.0,0.0,4.0,2.0,User26
|
28 |
+
User27,4.0,0.0,5.0,0.0,0.0,0.0,0.0,3.0,1.0,3.0,0.0,0.0,1.0,0.0,0.0,1.0,4.0,0.0,3.0,0.0,5.0,0.0,0.0,User27
|
29 |
+
User28,1.0,0.0,4.0,0.0,3.0,4.0,0.0,0.0,0.0,0.0,2.0,0.0,5.0,0.0,0.0,0.0,1.0,0.0,5.0,2.0,1.0,0.0,2.0,User28
|
30 |
+
User29,0.0,1.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,3.0,0.0,2.0,User29
|
31 |
+
User30,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,0.0,4.0,2.0,0.0,3.0,0.0,2.0,User30
|
32 |
+
User31,3.0,5.0,2.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,5.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,0.0,4.0,4.0,1.0,2.0,User31
|
33 |
+
User32,0.0,0.0,0.0,0.0,4.0,1.0,0.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,3.0,User32
|
34 |
+
User33,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,2.0,5.0,0.0,3.0,0.0,0.0,3.0,0.0,0.0,2.0,1.0,5.0,3.0,User33
|
35 |
+
User34,0.0,0.0,1.0,4.0,0.0,0.0,0.0,4.0,2.0,3.0,2.0,0.0,0.0,4.0,2.0,1.0,0.0,3.0,2.0,0.0,0.0,5.0,3.0,User34
|
36 |
+
User35,0.0,0.0,0.0,3.0,0.0,0.0,4.0,1.0,1.0,2.0,4.0,0.0,0.0,0.0,4.0,4.0,5.0,0.0,0.0,0.0,4.0,5.0,0.0,User35
|
37 |
+
User36,0.0,2.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,User36
|
38 |
+
User37,0.0,0.0,0.0,0.0,4.0,3.0,0.0,2.0,0.0,1.0,0.0,5.0,0.0,1.0,0.0,2.0,5.0,0.0,0.0,0.0,1.0,1.0,3.0,User37
|
39 |
+
User38,4.0,3.0,5.0,1.0,2.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,1.0,0.0,4.0,0.0,3.0,1.0,0.0,0.0,0.0,0.0,0.0,User38
|
40 |
+
User39,0.0,2.0,3.0,4.0,0.0,2.0,0.0,0.0,3.0,0.0,5.0,0.0,5.0,2.0,2.0,1.0,0.0,4.0,1.0,0.0,3.0,0.0,2.0,User39
|
41 |
+
User40,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,4.0,0.0,0.0,3.0,0.0,0.0,0.0,3.0,0.0,0.0,3.0,3.0,User40
|
42 |
+
User41,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,3.0,0.0,4.0,0.0,4.0,1.0,User41
|
43 |
+
User42,0.0,2.0,5.0,0.0,5.0,2.0,0.0,4.0,3.0,3.0,0.0,4.0,0.0,0.0,2.0,0.0,2.0,2.0,0.0,0.0,4.0,3.0,3.0,User42
|
44 |
+
User43,0.0,0.0,0.0,1.0,3.0,2.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,3.0,2.0,User43
|
45 |
+
User44,3.0,0.0,0.0,3.0,5.0,0.0,4.0,0.0,4.0,5.0,0.0,0.0,0.0,0.0,5.0,4.0,0.0,0.0,4.0,0.0,0.0,5.0,0.0,User44
|
46 |
+
User45,4.0,0.0,3.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,5.0,5.0,3.0,2.0,4.0,0.0,1.0,3.0,5.0,0.0,0.0,2.0,User45
|
47 |
+
User46,0.0,0.0,0.0,0.0,0.0,4.0,0.0,4.0,0.0,4.0,3.0,2.0,2.0,3.0,0.0,4.0,3.0,1.0,0.0,1.0,5.0,0.0,3.0,User46
|
48 |
+
User47,2.0,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,5.0,4.0,4.0,0.0,0.0,5.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,User47
|
49 |
+
User48,0.0,0.0,4.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,2.0,0.0,0.0,3.0,1.0,3.0,0.0,2.0,User48
|
50 |
+
User49,3.0,0.0,3.0,2.0,5.0,2.0,0.0,4.0,0.0,1.0,0.0,4.0,0.0,0.0,1.0,0.0,0.0,5.0,0.0,3.0,0.0,0.0,3.0,User49
|
51 |
+
User50,0.0,0.0,4.0,0.0,1.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,3.0,1.0,1.0,3.0,0.0,0.0,User50
|
52 |
+
User51,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,3.0,0.0,0.0,0.0,3.0,5.0,0.0,0.0,5.0,5.0,4.0,5.0,4.0,2.0,User51
|
53 |
+
User52,0.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,4.0,4.0,1.0,0.0,0.0,0.0,0.0,0.0,3.0,4.0,2.0,4.0,3.0,2.0,User52
|
54 |
+
User53,0.0,0.0,1.0,0.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,3.0,1.0,2.0,0.0,0.0,1.0,5.0,0.0,0.0,0.0,3.0,3.0,User53
|
55 |
+
User54,0.0,0.0,0.0,0.0,1.0,0.0,3.0,2.0,0.0,1.0,0.0,2.0,1.0,0.0,3.0,2.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,User54
|
56 |
+
User55,0.0,0.0,0.0,0.0,1.0,5.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,2.0,0.0,1.0,0.0,4.0,0.0,1.0,1.0,User55
|
57 |
+
User56,0.0,0.0,5.0,3.0,3.0,0.0,0.0,0.0,3.0,0.0,0.0,4.0,0.0,5.0,0.0,2.0,0.0,0.0,5.0,3.0,0.0,0.0,2.0,User56
|
58 |
+
User57,3.0,0.0,0.0,0.0,0.0,4.0,0.0,1.0,0.0,4.0,5.0,0.0,0.0,5.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,User57
|
59 |
+
User58,0.0,0.0,0.0,4.0,4.0,0.0,0.0,0.0,0.0,1.0,0.0,5.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,5.0,1.0,4.0,1.0,User58
|
60 |
+
User59,0.0,0.0,1.0,0.0,3.0,1.0,0.0,0.0,0.0,4.0,3.0,0.0,3.0,2.0,0.0,0.0,3.0,0.0,5.0,5.0,3.0,0.0,2.0,User59
|
61 |
+
User60,5.0,0.0,5.0,5.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,3.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,User60
|
62 |
+
User61,0.0,0.0,5.0,0.0,4.0,0.0,0.0,2.0,2.0,0.0,0.0,2.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,User61
|
63 |
+
User62,0.0,1.0,0.0,3.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,5.0,1.0,5.0,1.0,3.0,3.0,3.0,0.0,3.0,0.0,3.0,1.0,User62
|
64 |
+
User63,2.0,3.0,0.0,1.0,3.0,0.0,0.0,4.0,0.0,0.0,1.0,0.0,3.0,0.0,0.0,3.0,1.0,0.0,1.0,1.0,1.0,0.0,0.0,User63
|
65 |
+
User64,2.0,0.0,0.0,0.0,0.0,5.0,2.0,1.0,2.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,4.0,0.0,5.0,0.0,0.0,1.0,User64
|
66 |
+
User65,0.0,0.0,2.0,5.0,0.0,3.0,0.0,0.0,0.0,4.0,4.0,5.0,0.0,0.0,4.0,0.0,0.0,5.0,4.0,0.0,3.0,0.0,3.0,User65
|
67 |
+
User66,0.0,0.0,2.0,1.0,0.0,0.0,4.0,2.0,3.0,0.0,0.0,0.0,0.0,0.0,1.0,3.0,5.0,0.0,0.0,0.0,5.0,0.0,0.0,User66
|
68 |
+
User67,2.0,2.0,0.0,5.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,5.0,0.0,1.0,0.0,0.0,0.0,3.0,2.0,0.0,4.0,3.0,3.0,User67
|
69 |
+
User68,3.0,0.0,0.0,0.0,2.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,3.0,4.0,0.0,0.0,0.0,0.0,0.0,User68
|
70 |
+
User69,0.0,4.0,0.0,1.0,0.0,1.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,4.0,4.0,4.0,3.0,0.0,5.0,0.0,5.0,0.0,0.0,User69
|
71 |
+
User70,0.0,0.0,4.0,0.0,5.0,0.0,4.0,0.0,0.0,3.0,0.0,0.0,5.0,2.0,2.0,3.0,3.0,5.0,1.0,4.0,4.0,1.0,0.0,User70
|
72 |
+
User71,4.0,5.0,0.0,1.0,2.0,3.0,1.0,4.0,0.0,0.0,2.0,1.0,2.0,0.0,1.0,0.0,0.0,1.0,5.0,0.0,1.0,0.0,2.0,User71
|
73 |
+
User72,0.0,0.0,3.0,1.0,3.0,0.0,2.0,3.0,0.0,3.0,0.0,3.0,4.0,1.0,5.0,0.0,1.0,3.0,0.0,0.0,1.0,0.0,3.0,User72
|
74 |
+
User73,5.0,3.0,2.0,0.0,3.0,0.0,3.0,1.0,3.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,3.0,1.0,2.0,0.0,1.0,0.0,User73
|
75 |
+
User74,4.0,5.0,0.0,2.0,0.0,0.0,1.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,2.0,0.0,5.0,0.0,2.0,2.0,5.0,0.0,User74
|
76 |
+
User75,2.0,1.0,0.0,3.0,0.0,0.0,5.0,0.0,3.0,0.0,4.0,3.0,0.0,0.0,0.0,3.0,2.0,2.0,0.0,1.0,0.0,5.0,0.0,User75
|
77 |
+
User76,0.0,4.0,0.0,0.0,1.0,0.0,3.0,2.0,0.0,0.0,3.0,0.0,0.0,4.0,4.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,User76
|
78 |
+
User77,3.0,0.0,0.0,0.0,2.0,5.0,1.0,0.0,0.0,0.0,2.0,4.0,0.0,3.0,5.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,1.0,User77
|
79 |
+
User78,0.0,2.0,0.0,2.0,1.0,0.0,0.0,0.0,5.0,3.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,0.0,0.0,2.0,User78
|
80 |
+
User79,0.0,0.0,5.0,0.0,0.0,0.0,4.0,1.0,5.0,0.0,2.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,3.0,3.0,0.0,User79
|
81 |
+
User80,0.0,2.0,0.0,2.0,0.0,0.0,5.0,0.0,1.0,4.0,0.0,0.0,0.0,5.0,3.0,0.0,0.0,0.0,4.0,1.0,0.0,0.0,2.0,User80
|
82 |
+
User81,5.0,0.0,5.0,0.0,0.0,5.0,5.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,5.0,4.0,3.0,0.0,0.0,0.0,0.0,0.0,User81
|
83 |
+
User82,0.0,0.0,0.0,0.0,5.0,0.0,1.0,0.0,0.0,4.0,5.0,2.0,0.0,0.0,0.0,0.0,4.0,3.0,0.0,0.0,0.0,0.0,3.0,User82
|
84 |
+
User83,0.0,0.0,1.0,3.0,0.0,5.0,0.0,0.0,4.0,5.0,0.0,0.0,0.0,5.0,2.0,0.0,3.0,0.0,0.0,1.0,4.0,0.0,3.0,User83
|
85 |
+
User84,1.0,0.0,3.0,0.0,0.0,1.0,2.0,0.0,1.0,1.0,4.0,2.0,4.0,3.0,0.0,0.0,0.0,0.0,0.0,4.0,1.0,3.0,2.0,User84
|
86 |
+
User85,0.0,4.0,4.0,0.0,5.0,0.0,0.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,3.0,User85
|
87 |
+
User86,0.0,0.0,0.0,2.0,5.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,1.0,4.0,5.0,2.0,3.0,0.0,0.0,0.0,2.0,0.0,User86
|
88 |
+
User87,0.0,0.0,0.0,0.0,3.0,2.0,2.0,2.0,0.0,0.0,2.0,0.0,3.0,0.0,3.0,0.0,0.0,0.0,1.0,1.0,0.0,3.0,2.0,User87
|
89 |
+
User88,2.0,0.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,4.0,3.0,0.0,4.0,4.0,0.0,4.0,2.0,User88
|
90 |
+
User89,0.0,0.0,4.0,5.0,1.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,5.0,5.0,0.0,0.0,0.0,5.0,0.0,0.0,3.0,2.0,User89
|
91 |
+
User90,3.0,2.0,0.0,2.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,1.0,4.0,5.0,5.0,0.0,2.0,User90
|
92 |
+
User91,0.0,4.0,0.0,0.0,1.0,0.0,4.0,3.0,4.0,0.0,0.0,0.0,1.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,3.0,5.0,0.0,User91
|
93 |
+
User92,2.0,2.0,2.0,0.0,5.0,0.0,0.0,0.0,5.0,4.0,0.0,0.0,3.0,0.0,5.0,2.0,5.0,2.0,0.0,0.0,0.0,5.0,0.0,User92
|
94 |
+
User93,3.0,5.0,4.0,0.0,0.0,5.0,0.0,0.0,0.0,0.0,0.0,5.0,0.0,3.0,3.0,2.0,2.0,4.0,5.0,1.0,0.0,0.0,1.0,User93
|
95 |
+
User94,0.0,5.0,0.0,0.0,4.0,4.0,0.0,0.0,1.0,5.0,0.0,0.0,0.0,5.0,1.0,1.0,0.0,5.0,0.0,0.0,0.0,0.0,3.0,User94
|
96 |
+
User95,0.0,0.0,0.0,2.0,2.0,2.0,0.0,2.0,0.0,0.0,3.0,0.0,3.0,0.0,0.0,0.0,2.0,0.0,0.0,1.0,0.0,5.0,2.0,User95
|
97 |
+
User96,0.0,1.0,5.0,0.0,2.0,3.0,0.0,0.0,0.0,1.0,0.0,0.0,3.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,3.0,User96
|
98 |
+
User97,0.0,0.0,0.0,0.0,0.0,0.0,5.0,1.0,0.0,0.0,0.0,4.0,0.0,3.0,2.0,5.0,2.0,0.0,0.0,0.0,0.0,0.0,0.0,User97
|
99 |
+
User98,0.0,0.0,0.0,0.0,0.0,0.0,4.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,3.0,0.0,2.0,0.0,0.0,0.0,0.0,0.0,User98
|
100 |
+
User99,0.0,0.0,0.0,2.0,4.0,5.0,3.0,0.0,0.0,1.0,2.0,0.0,0.0,1.0,2.0,1.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,User99
|
101 |
+
User100,0.0,0.0,0.0,3.0,1.0,0.0,4.0,3.0,2.0,4.0,0.0,0.0,0.0,4.0,4.0,0.0,1.0,4.0,0.0,3.0,3.0,1.0,3.0,User100
|
102 |
+
temporary_user,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0
|