grasepard commited on
Commit
9c7228e
·
verified ·
1 Parent(s): e284caa

Upload 2 files

Browse files
Files changed (2) hide show
  1. datacreation.ipynb +192 -258
  2. pythonanalysis.ipynb +0 -0
datacreation.ipynb CHANGED
@@ -26,7 +26,7 @@
26
  "base_uri": "https://localhost:8080/"
27
  },
28
  "id": "f48c8f8c",
29
- "outputId": "13d0dd5e-82c6-489f-b1f0-e970186a4eb7"
30
  },
31
  "outputs": [
32
  {
@@ -46,8 +46,8 @@
46
  "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas) (2025.3)\n",
47
  "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (1.3.3)\n",
48
  "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (0.12.1)\n",
49
- "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (4.61.1)\n",
50
- "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (1.4.9)\n",
51
  "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (26.0)\n",
52
  "Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (11.3.0)\n",
53
  "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (3.3.2)\n",
@@ -113,7 +113,7 @@
113
  },
114
  {
115
  "cell_type": "code",
116
- "execution_count": 3,
117
  "metadata": {
118
  "id": "xqO5Y3dnYhxt"
119
  },
@@ -145,12 +145,18 @@
145
  },
146
  {
147
  "cell_type": "code",
148
- "execution_count": 4,
149
  "metadata": {
150
  "id": "l5FkkNhUYTHh"
151
  },
152
  "outputs": [],
153
- "source": []
 
 
 
 
 
 
154
  },
155
  {
156
  "cell_type": "markdown",
@@ -163,7 +169,7 @@
163
  },
164
  {
165
  "cell_type": "code",
166
- "execution_count": 5,
167
  "metadata": {
168
  "id": "lC1U_YHtZifh"
169
  },
@@ -187,181 +193,14 @@
187
  },
188
  {
189
  "cell_type": "code",
190
- "execution_count": 6,
191
  "metadata": {
192
- "colab": {
193
- "base_uri": "https://localhost:8080/",
194
- "height": 206
195
- },
196
- "id": "O_wIvTxYZqCK",
197
- "outputId": "349b36b0-c008-4fd5-d4a4-dba38ae18337"
198
  },
199
- "outputs": [
200
- {
201
- "output_type": "execute_result",
202
- "data": {
203
- "text/plain": [
204
- " title price rating\n",
205
- "0 A Light in the Attic 51.77 Three\n",
206
- "1 Tipping the Velvet 53.74 One\n",
207
- "2 Soumission 50.10 One\n",
208
- "3 Sharp Objects 47.82 Four\n",
209
- "4 Sapiens: A Brief History of Humankind 54.23 Five"
210
- ],
211
- "text/html": [
212
- "\n",
213
- " <div id=\"df-04c87660-4415-45e9-ad3b-3fa19d9402c2\" class=\"colab-df-container\">\n",
214
- " <div>\n",
215
- "<style scoped>\n",
216
- " .dataframe tbody tr th:only-of-type {\n",
217
- " vertical-align: middle;\n",
218
- " }\n",
219
- "\n",
220
- " .dataframe tbody tr th {\n",
221
- " vertical-align: top;\n",
222
- " }\n",
223
- "\n",
224
- " .dataframe thead th {\n",
225
- " text-align: right;\n",
226
- " }\n",
227
- "</style>\n",
228
- "<table border=\"1\" class=\"dataframe\">\n",
229
- " <thead>\n",
230
- " <tr style=\"text-align: right;\">\n",
231
- " <th></th>\n",
232
- " <th>title</th>\n",
233
- " <th>price</th>\n",
234
- " <th>rating</th>\n",
235
- " </tr>\n",
236
- " </thead>\n",
237
- " <tbody>\n",
238
- " <tr>\n",
239
- " <th>0</th>\n",
240
- " <td>A Light in the Attic</td>\n",
241
- " <td>51.77</td>\n",
242
- " <td>Three</td>\n",
243
- " </tr>\n",
244
- " <tr>\n",
245
- " <th>1</th>\n",
246
- " <td>Tipping the Velvet</td>\n",
247
- " <td>53.74</td>\n",
248
- " <td>One</td>\n",
249
- " </tr>\n",
250
- " <tr>\n",
251
- " <th>2</th>\n",
252
- " <td>Soumission</td>\n",
253
- " <td>50.10</td>\n",
254
- " <td>One</td>\n",
255
- " </tr>\n",
256
- " <tr>\n",
257
- " <th>3</th>\n",
258
- " <td>Sharp Objects</td>\n",
259
- " <td>47.82</td>\n",
260
- " <td>Four</td>\n",
261
- " </tr>\n",
262
- " <tr>\n",
263
- " <th>4</th>\n",
264
- " <td>Sapiens: A Brief History of Humankind</td>\n",
265
- " <td>54.23</td>\n",
266
- " <td>Five</td>\n",
267
- " </tr>\n",
268
- " </tbody>\n",
269
- "</table>\n",
270
- "</div>\n",
271
- " <div class=\"colab-df-buttons\">\n",
272
- "\n",
273
- " <div class=\"colab-df-container\">\n",
274
- " <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-04c87660-4415-45e9-ad3b-3fa19d9402c2')\"\n",
275
- " title=\"Convert this dataframe to an interactive table.\"\n",
276
- " style=\"display:none;\">\n",
277
- "\n",
278
- " <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
279
- " <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
280
- " </svg>\n",
281
- " </button>\n",
282
- "\n",
283
- " <style>\n",
284
- " .colab-df-container {\n",
285
- " display:flex;\n",
286
- " gap: 12px;\n",
287
- " }\n",
288
- "\n",
289
- " .colab-df-convert {\n",
290
- " background-color: #E8F0FE;\n",
291
- " border: none;\n",
292
- " border-radius: 50%;\n",
293
- " cursor: pointer;\n",
294
- " display: none;\n",
295
- " fill: #1967D2;\n",
296
- " height: 32px;\n",
297
- " padding: 0 0 0 0;\n",
298
- " width: 32px;\n",
299
- " }\n",
300
- "\n",
301
- " .colab-df-convert:hover {\n",
302
- " background-color: #E2EBFA;\n",
303
- " box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
304
- " fill: #174EA6;\n",
305
- " }\n",
306
- "\n",
307
- " .colab-df-buttons div {\n",
308
- " margin-bottom: 4px;\n",
309
- " }\n",
310
- "\n",
311
- " [theme=dark] .colab-df-convert {\n",
312
- " background-color: #3B4455;\n",
313
- " fill: #D2E3FC;\n",
314
- " }\n",
315
- "\n",
316
- " [theme=dark] .colab-df-convert:hover {\n",
317
- " background-color: #434B5C;\n",
318
- " box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
319
- " filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
320
- " fill: #FFFFFF;\n",
321
- " }\n",
322
- " </style>\n",
323
- "\n",
324
- " <script>\n",
325
- " const buttonEl =\n",
326
- " document.querySelector('#df-04c87660-4415-45e9-ad3b-3fa19d9402c2 button.colab-df-convert');\n",
327
- " buttonEl.style.display =\n",
328
- " google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
329
- "\n",
330
- " async function convertToInteractive(key) {\n",
331
- " const element = document.querySelector('#df-04c87660-4415-45e9-ad3b-3fa19d9402c2');\n",
332
- " const dataTable =\n",
333
- " await google.colab.kernel.invokeFunction('convertToInteractive',\n",
334
- " [key], {});\n",
335
- " if (!dataTable) return;\n",
336
- "\n",
337
- " const docLinkHtml = 'Like what you see? Visit the ' +\n",
338
- " '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
339
- " + ' to learn more about interactive tables.';\n",
340
- " element.innerHTML = '';\n",
341
- " dataTable['output_type'] = 'display_data';\n",
342
- " await google.colab.output.renderOutput(dataTable, element);\n",
343
- " const docLink = document.createElement('div');\n",
344
- " docLink.innerHTML = docLinkHtml;\n",
345
- " element.appendChild(docLink);\n",
346
- " }\n",
347
- " </script>\n",
348
- " </div>\n",
349
- "\n",
350
- "\n",
351
- " </div>\n",
352
- " </div>\n"
353
- ],
354
- "application/vnd.google.colaboratory.intrinsic+json": {
355
- "type": "dataframe",
356
- "variable_name": "df_books",
357
- "summary": "{\n \"name\": \"df_books\",\n \"rows\": 1000,\n \"fields\": [\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 999,\n \"samples\": [\n \"The Grownup\",\n \"Persepolis: The Story of a Childhood (Persepolis #1-2)\",\n \"Ayumi's Violin\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"price\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 14.446689669952772,\n \"min\": 10.0,\n \"max\": 59.99,\n \"num_unique_values\": 903,\n \"samples\": [\n 19.73,\n 55.65,\n 46.31\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"rating\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 5,\n \"samples\": [\n \"One\",\n \"Two\",\n \"Four\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
358
- }
359
- },
360
- "metadata": {},
361
- "execution_count": 6
362
- }
363
- ],
364
- "source": []
365
  },
366
  {
367
  "cell_type": "markdown",
@@ -383,7 +222,7 @@
383
  },
384
  {
385
  "cell_type": "code",
386
- "execution_count": 7,
387
  "metadata": {
388
  "id": "-gPXGcRPuV_9"
389
  },
@@ -410,7 +249,7 @@
410
  },
411
  {
412
  "cell_type": "code",
413
- "execution_count": 8,
414
  "metadata": {
415
  "id": "mnd5hdAbaNjz"
416
  },
@@ -433,12 +272,14 @@
433
  },
434
  {
435
  "cell_type": "code",
436
- "execution_count": 9,
437
  "metadata": {
438
  "id": "V-G3OCUCgR07"
439
  },
440
  "outputs": [],
441
- "source": []
 
 
442
  },
443
  {
444
  "cell_type": "markdown",
@@ -451,7 +292,7 @@
451
  },
452
  {
453
  "cell_type": "code",
454
- "execution_count": 10,
455
  "metadata": {
456
  "id": "kUtWmr8maZLZ"
457
  },
@@ -477,12 +318,14 @@
477
  },
478
  {
479
  "cell_type": "code",
480
- "execution_count": 11,
481
  "metadata": {
482
  "id": "tafQj8_7gYCG"
483
  },
484
  "outputs": [],
485
- "source": []
 
 
486
  },
487
  {
488
  "cell_type": "markdown",
@@ -504,7 +347,7 @@
504
  },
505
  {
506
  "cell_type": "code",
507
- "execution_count": 12,
508
  "metadata": {
509
  "id": "qkVhYPXGbgEn"
510
  },
@@ -541,7 +384,7 @@
541
  },
542
  {
543
  "cell_type": "code",
544
- "execution_count": 13,
545
  "metadata": {
546
  "id": "SlJ24AUafoDB"
547
  },
@@ -570,12 +413,14 @@
570
  },
571
  {
572
  "cell_type": "code",
573
- "execution_count": 14,
574
  "metadata": {
575
  "id": "wcN6gtiZg-ws"
576
  },
577
  "outputs": [],
578
- "source": []
 
 
579
  },
580
  {
581
  "cell_type": "markdown",
@@ -588,28 +433,11 @@
588
  },
589
  {
590
  "cell_type": "code",
591
- "execution_count": 15,
592
  "metadata": {
593
- "colab": {
594
- "base_uri": "https://localhost:8080/"
595
- },
596
- "id": "MzbZvLcAhGaH",
597
- "outputId": "c692bb04-7263-4115-a2ba-c72fe0180722"
598
  },
599
- "outputs": [
600
- {
601
- "output_type": "stream",
602
- "name": "stdout",
603
- "text": [
604
- " title month units_sold sentiment_label\n",
605
- "0 A Light in the Attic 2024-08 100 neutral\n",
606
- "1 A Light in the Attic 2024-09 109 neutral\n",
607
- "2 A Light in the Attic 2024-10 102 neutral\n",
608
- "3 A Light in the Attic 2024-11 107 neutral\n",
609
- "4 A Light in the Attic 2024-12 108 neutral\n"
610
- ]
611
- }
612
- ],
613
  "source": [
614
  "df_sales.to_csv(\"synthetic_sales_data.csv\", index=False)\n",
615
  "\n",
@@ -636,7 +464,7 @@
636
  },
637
  {
638
  "cell_type": "code",
639
- "execution_count": 16,
640
  "metadata": {
641
  "id": "b3cd2a50"
642
  },
@@ -647,16 +475,157 @@
647
  " \"A compelling and heartwarming read that stayed with me long after I finished.\",\n",
648
  " \"Brilliantly written! The characters were unforgettable and the plot was engaging.\",\n",
649
  " \"One of the best books I've read this year — inspiring and emotionally rich.\",\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
650
  " ],\n",
651
  " \"neutral\": [\n",
652
  " \"An average book — not great, but not bad either.\",\n",
653
  " \"Some parts really stood out, others felt a bit flat.\",\n",
654
  " \"It was okay overall. A decent way to pass the time.\",\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
655
  " ],\n",
656
  " \"negative\": [\n",
657
  " \"I struggled to get through this one — it just didn’t grab me.\",\n",
658
  " \"The plot was confusing and the characters felt underdeveloped.\",\n",
659
  " \"Disappointing. I had high hopes, but they weren't met.\",\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
660
  " ]\n",
661
  "}"
662
  ]
@@ -672,7 +641,7 @@
672
  },
673
  {
674
  "cell_type": "code",
675
- "execution_count": 17,
676
  "metadata": {
677
  "id": "l2SRc3PjuTGM"
678
  },
@@ -705,7 +674,7 @@
705
  },
706
  {
707
  "cell_type": "code",
708
- "execution_count": 18,
709
  "metadata": {
710
  "id": "ZUKUqZsuumsp"
711
  },
@@ -726,24 +695,11 @@
726
  },
727
  {
728
  "cell_type": "code",
729
- "execution_count": 19,
730
  "metadata": {
731
- "colab": {
732
- "base_uri": "https://localhost:8080/"
733
- },
734
- "id": "3946e521",
735
- "outputId": "514d7bef-0488-4933-b03c-953b9e8a7f66"
736
  },
737
- "outputs": [
738
- {
739
- "output_type": "stream",
740
- "name": "stdout",
741
- "text": [
742
- "✅ Wrote synthetic_title_level_features.csv\n",
743
- "✅ Wrote synthetic_monthly_revenue_series.csv\n"
744
- ]
745
- }
746
- ],
747
  "source": [
748
  "import numpy as np\n",
749
  "\n",
@@ -858,36 +814,14 @@
858
  },
859
  {
860
  "cell_type": "code",
861
- "execution_count": 20,
862
  "metadata": {
863
- "colab": {
864
- "base_uri": "https://localhost:8080/"
865
- },
866
- "id": "xfE8NMqOurKo",
867
- "outputId": "191730ba-d5e2-4df7-97d2-99feb0b704af"
868
  },
869
- "outputs": [
870
- {
871
- "output_type": "stream",
872
- "name": "stdout",
873
- "text": [
874
- " title sentiment_label \\\n",
875
- "0 A Light in the Attic neutral \n",
876
- "1 A Light in the Attic neutral \n",
877
- "2 A Light in the Attic neutral \n",
878
- "3 A Light in the Attic neutral \n",
879
- "4 A Light in the Attic neutral \n",
880
- "\n",
881
- " review_text rating popularity_score \n",
882
- "0 Had potential that went unrealized. Three 3 \n",
883
- "1 The themes were solid, but not well explored. Three 3 \n",
884
- "2 It simply lacked that emotional punch. Three 3 \n",
885
- "3 Serviceable but not something I'd go out of my... Three 3 \n",
886
- "4 Standard fare with some promise. Three 3 \n"
887
- ]
888
- }
889
- ],
890
- "source": []
891
  }
892
  ],
893
  "metadata": {
 
26
  "base_uri": "https://localhost:8080/"
27
  },
28
  "id": "f48c8f8c",
29
+ "outputId": "589fe704-b3da-4c3a-b4d8-c8e877c7c88a"
30
  },
31
  "outputs": [
32
  {
 
46
  "Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.12/dist-packages (from pandas) (2025.3)\n",
47
  "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (1.3.3)\n",
48
  "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (0.12.1)\n",
49
+ "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (4.62.1)\n",
50
+ "Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (1.5.0)\n",
51
  "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (26.0)\n",
52
  "Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (11.3.0)\n",
53
  "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.12/dist-packages (from matplotlib) (3.3.2)\n",
 
113
  },
114
  {
115
  "cell_type": "code",
116
+ "execution_count": null,
117
  "metadata": {
118
  "id": "xqO5Y3dnYhxt"
119
  },
 
145
  },
146
  {
147
  "cell_type": "code",
148
+ "execution_count": null,
149
  "metadata": {
150
  "id": "l5FkkNhUYTHh"
151
  },
152
  "outputs": [],
153
+ "source": [
154
+ "df_books = pd.DataFrame({\n",
155
+ " \"title\": titles,\n",
156
+ " \"price\": prices,\n",
157
+ " \"rating\": ratings\n",
158
+ "})"
159
+ ]
160
  },
161
  {
162
  "cell_type": "markdown",
 
169
  },
170
  {
171
  "cell_type": "code",
172
+ "execution_count": null,
173
  "metadata": {
174
  "id": "lC1U_YHtZifh"
175
  },
 
193
  },
194
  {
195
  "cell_type": "code",
196
+ "execution_count": null,
197
  "metadata": {
198
+ "id": "O_wIvTxYZqCK"
 
 
 
 
 
199
  },
200
+ "outputs": [],
201
+ "source": [
202
+ "df_books.head()"
203
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
204
  },
205
  {
206
  "cell_type": "markdown",
 
222
  },
223
  {
224
  "cell_type": "code",
225
+ "execution_count": null,
226
  "metadata": {
227
  "id": "-gPXGcRPuV_9"
228
  },
 
249
  },
250
  {
251
  "cell_type": "code",
252
+ "execution_count": null,
253
  "metadata": {
254
  "id": "mnd5hdAbaNjz"
255
  },
 
272
  },
273
  {
274
  "cell_type": "code",
275
+ "execution_count": null,
276
  "metadata": {
277
  "id": "V-G3OCUCgR07"
278
  },
279
  "outputs": [],
280
+ "source": [
281
+ "df_books[\"popularity_score\"] = df_books[\"rating\"].apply(generate_popularity_score)"
282
+ ]
283
  },
284
  {
285
  "cell_type": "markdown",
 
292
  },
293
  {
294
  "cell_type": "code",
295
+ "execution_count": null,
296
  "metadata": {
297
  "id": "kUtWmr8maZLZ"
298
  },
 
318
  },
319
  {
320
  "cell_type": "code",
321
+ "execution_count": null,
322
  "metadata": {
323
  "id": "tafQj8_7gYCG"
324
  },
325
  "outputs": [],
326
+ "source": [
327
+ "df_books[\"sentiment_label\"] = df_books[\"popularity_score\"].apply(get_sentiment)"
328
+ ]
329
  },
330
  {
331
  "cell_type": "markdown",
 
347
  },
348
  {
349
  "cell_type": "code",
350
+ "execution_count": null,
351
  "metadata": {
352
  "id": "qkVhYPXGbgEn"
353
  },
 
384
  },
385
  {
386
  "cell_type": "code",
387
+ "execution_count": null,
388
  "metadata": {
389
  "id": "SlJ24AUafoDB"
390
  },
 
413
  },
414
  {
415
  "cell_type": "code",
416
+ "execution_count": null,
417
  "metadata": {
418
  "id": "wcN6gtiZg-ws"
419
  },
420
  "outputs": [],
421
+ "source": [
422
+ "df_sales = pd.DataFrame(sales_data)"
423
+ ]
424
  },
425
  {
426
  "cell_type": "markdown",
 
433
  },
434
  {
435
  "cell_type": "code",
436
+ "execution_count": null,
437
  "metadata": {
438
+ "id": "MzbZvLcAhGaH"
 
 
 
 
439
  },
440
+ "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
441
  "source": [
442
  "df_sales.to_csv(\"synthetic_sales_data.csv\", index=False)\n",
443
  "\n",
 
464
  },
465
  {
466
  "cell_type": "code",
467
+ "execution_count": null,
468
  "metadata": {
469
  "id": "b3cd2a50"
470
  },
 
475
  " \"A compelling and heartwarming read that stayed with me long after I finished.\",\n",
476
  " \"Brilliantly written! The characters were unforgettable and the plot was engaging.\",\n",
477
  " \"One of the best books I've read this year — inspiring and emotionally rich.\",\n",
478
+ " \"Absolutely loved this book from beginning to end.\",\n",
479
+ " \"The storytelling was immersive and beautifully crafted.\",\n",
480
+ " \"An outstanding novel with depth and heart.\",\n",
481
+ " \"A truly captivating and uplifting experience.\",\n",
482
+ " \"The characters felt real and relatable.\",\n",
483
+ " \"A masterpiece that exceeded my expectations.\",\n",
484
+ " \"Emotionally powerful and wonderfully written.\",\n",
485
+ " \"A gripping story that kept me turning pages.\",\n",
486
+ " \"Incredibly well-developed plot and themes.\",\n",
487
+ " \"A fantastic read that I would highly recommend.\",\n",
488
+ " \"The pacing was perfect and the ending satisfying.\",\n",
489
+ " \"An inspiring and thought-provoking book.\",\n",
490
+ " \"Beautiful prose and compelling narrative.\",\n",
491
+ " \"One of the most memorable books I've read.\",\n",
492
+ " \"A rich and engaging literary journey.\",\n",
493
+ " \"Heartfelt and meaningful storytelling.\",\n",
494
+ " \"An exceptional piece of writing.\",\n",
495
+ " \"Loved every chapter of this book.\",\n",
496
+ " \"A remarkable and moving story.\",\n",
497
+ " \"Creative, original, and deeply engaging.\",\n",
498
+ " \"The author truly brought the story to life.\",\n",
499
+ " \"An unforgettable reading experience.\",\n",
500
+ " \"Deeply touching and emotionally resonant.\",\n",
501
+ " \"A brilliant concept executed perfectly.\",\n",
502
+ " \"The dialogue felt authentic and powerful.\",\n",
503
+ " \"A must-read for fans of great storytelling.\",\n",
504
+ " \"Absolutely brilliant from start to finish.\",\n",
505
+ " \"A story that lingers in your mind.\",\n",
506
+ " \"Engaging, emotional, and beautifully written.\",\n",
507
+ " \"The plot twists were masterfully done.\",\n",
508
+ " \"An inspiring and satisfying novel.\",\n",
509
+ " \"Highly enjoyable and expertly crafted.\",\n",
510
+ " \"The characters had incredible depth.\",\n",
511
+ " \"A captivating and heartwarming story.\",\n",
512
+ " \"Wonderful balance of drama and emotion.\",\n",
513
+ " \"A powerful narrative with strong themes.\",\n",
514
+ " \"Simply outstanding in every way.\",\n",
515
+ " \"A joy to read and experience.\",\n",
516
+ " \"The writing style was elegant and immersive.\",\n",
517
+ " \"A thoughtful and engaging story.\",\n",
518
+ " \"A beautifully structured novel.\",\n",
519
+ " \"An impressive and rewarding read.\",\n",
520
+ " \"Emotionally gripping and meaningful.\",\n",
521
+ " \"A standout book in its genre.\",\n",
522
+ " \"A delightful and compelling read.\",\n",
523
+ " \"Strong storytelling and vivid imagery.\",\n",
524
+ " \"A truly excellent novel.\"\n",
525
  " ],\n",
526
  " \"neutral\": [\n",
527
  " \"An average book — not great, but not bad either.\",\n",
528
  " \"Some parts really stood out, others felt a bit flat.\",\n",
529
  " \"It was okay overall. A decent way to pass the time.\",\n",
530
+ " \"A fairly standard and predictable story.\",\n",
531
+ " \"Not particularly memorable, but not terrible.\",\n",
532
+ " \"The pacing was fine, though nothing special.\",\n",
533
+ " \"An acceptable read with some interesting moments.\",\n",
534
+ " \"It had strengths and weaknesses throughout.\",\n",
535
+ " \"A moderately engaging book.\",\n",
536
+ " \"Nothing extraordinary, but readable.\",\n",
537
+ " \"The concept was good, execution was average.\",\n",
538
+ " \"Some chapters were better than others.\",\n",
539
+ " \"A decent storyline with mixed results.\",\n",
540
+ " \"Not bad, just not remarkable.\",\n",
541
+ " \"An ordinary reading experience.\",\n",
542
+ " \"It met expectations but didn't exceed them.\",\n",
543
+ " \"Fairly typical for its genre.\",\n",
544
+ " \"A simple and straightforward narrative.\",\n",
545
+ " \"Reasonably enjoyable but not exciting.\",\n",
546
+ " \"A serviceable and competent story.\",\n",
547
+ " \"The writing was solid but unremarkable.\",\n",
548
+ " \"An average addition to the genre.\",\n",
549
+ " \"Entertaining enough, though forgettable.\",\n",
550
+ " \"The characters were fine but lacked depth.\",\n",
551
+ " \"Neither impressive nor disappointing.\",\n",
552
+ " \"A balanced mix of good and weak elements.\",\n",
553
+ " \"An okay book for a weekend read.\",\n",
554
+ " \"Predictable but coherent storytelling.\",\n",
555
+ " \"A moderately interesting concept.\",\n",
556
+ " \"Some moments stood out positively.\",\n",
557
+ " \"The ending was satisfactory.\",\n",
558
+ " \"A fair and decent reading experience.\",\n",
559
+ " \"Competent writing without surprises.\",\n",
560
+ " \"It had potential but felt safe.\",\n",
561
+ " \"A mild and steady narrative.\",\n",
562
+ " \"Reasonably structured but not innovative.\",\n",
563
+ " \"An average level of engagement.\",\n",
564
+ " \"Acceptable but not particularly gripping.\",\n",
565
+ " \"Not very original but readable.\",\n",
566
+ " \"An overall neutral experience.\",\n",
567
+ " \"A steady but unexciting plot.\",\n",
568
+ " \"Moderately well-written.\",\n",
569
+ " \"It had some good ideas.\",\n",
570
+ " \"A fairly consistent story.\",\n",
571
+ " \"Nothing too impressive or disappointing.\",\n",
572
+ " \"The execution was decent.\",\n",
573
+ " \"A readable yet ordinary novel.\",\n",
574
+ " \"Fine but not something I'd reread.\",\n",
575
+ " \"An average literary effort.\",\n",
576
+ " \"Satisfactory overall.\"\n",
577
  " ],\n",
578
  " \"negative\": [\n",
579
  " \"I struggled to get through this one — it just didn’t grab me.\",\n",
580
  " \"The plot was confusing and the characters felt underdeveloped.\",\n",
581
  " \"Disappointing. I had high hopes, but they weren't met.\",\n",
582
+ " \"The pacing was painfully slow.\",\n",
583
+ " \"I couldn't connect with the story at all.\",\n",
584
+ " \"The writing style didn't work for me.\",\n",
585
+ " \"Predictable and uninspired throughout.\",\n",
586
+ " \"The ending was abrupt and unsatisfying.\",\n",
587
+ " \"It felt disjointed and poorly structured.\",\n",
588
+ " \"The characters lacked depth and realism.\",\n",
589
+ " \"I found it difficult to stay interested.\",\n",
590
+ " \"The dialogue felt forced and unnatural.\",\n",
591
+ " \"Too many plot holes to ignore.\",\n",
592
+ " \"An underwhelming reading experience.\",\n",
593
+ " \"The story lacked emotional impact.\",\n",
594
+ " \"Not as engaging as I expected.\",\n",
595
+ " \"The narrative felt messy and unclear.\",\n",
596
+ " \"I wouldn’t recommend this book.\",\n",
597
+ " \"It simply failed to hold my attention.\",\n",
598
+ " \"A frustrating and disappointing read.\",\n",
599
+ " \"The themes were poorly developed.\",\n",
600
+ " \"The plot felt repetitive and dull.\",\n",
601
+ " \"I expected much more from this book.\",\n",
602
+ " \"The characters were hard to relate to.\",\n",
603
+ " \"It dragged on unnecessarily.\",\n",
604
+ " \"A weak execution of an interesting idea.\",\n",
605
+ " \"I nearly gave up halfway through.\",\n",
606
+ " \"The storyline lacked coherence.\",\n",
607
+ " \"Not memorable in any positive way.\",\n",
608
+ " \"The writing felt flat and uninspired.\",\n",
609
+ " \"The structure was confusing.\",\n",
610
+ " \"It didn't live up to the description.\",\n",
611
+ " \"The pacing ruined the experience.\",\n",
612
+ " \"The book felt rushed at the end.\",\n",
613
+ " \"I struggled to understand the direction.\",\n",
614
+ " \"The development was inconsistent.\",\n",
615
+ " \"A bland and forgettable novel.\",\n",
616
+ " \"The plot twists were predictable.\",\n",
617
+ " \"The emotional depth was missing.\",\n",
618
+ " \"It felt incomplete and unsatisfying.\",\n",
619
+ " \"The storytelling lacked clarity.\",\n",
620
+ " \"The characters felt one-dimensional.\",\n",
621
+ " \"Overall, a disappointing read.\",\n",
622
+ " \"The narrative was difficult to follow.\",\n",
623
+ " \"I was bored most of the time.\",\n",
624
+ " \"The writing lacked polish.\",\n",
625
+ " \"It failed to deliver on its promise.\",\n",
626
+ " \"The story never truly engaged me.\",\n",
627
+ " \"A poorly executed concept.\",\n",
628
+ " \"Simply not enjoyable.\"\n",
629
  " ]\n",
630
  "}"
631
  ]
 
641
  },
642
  {
643
  "cell_type": "code",
644
+ "execution_count": null,
645
  "metadata": {
646
  "id": "l2SRc3PjuTGM"
647
  },
 
674
  },
675
  {
676
  "cell_type": "code",
677
+ "execution_count": null,
678
  "metadata": {
679
  "id": "ZUKUqZsuumsp"
680
  },
 
695
  },
696
  {
697
  "cell_type": "code",
698
+ "execution_count": null,
699
  "metadata": {
700
+ "id": "3946e521"
 
 
 
 
701
  },
702
+ "outputs": [],
 
 
 
 
 
 
 
 
 
703
  "source": [
704
  "import numpy as np\n",
705
  "\n",
 
814
  },
815
  {
816
  "cell_type": "code",
817
+ "execution_count": null,
818
  "metadata": {
819
+ "id": "xfE8NMqOurKo"
 
 
 
 
820
  },
821
+ "outputs": [],
822
+ "source": [
823
+ "df_reviews.head()"
824
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
825
  }
826
  ],
827
  "metadata": {
pythonanalysis.ipynb CHANGED
The diff for this file is too large to render. See raw diff