File size: 38,497 Bytes
c9cb648
 
 
 
d4f5dc4
c9cb648
 
 
 
 
 
 
 
 
 
d4f5dc4
c9cb648
 
 
 
 
 
 
 
 
d4f5dc4
c9cb648
 
 
 
d4f5dc4
 
 
c9cb648
 
 
 
 
d4f5dc4
c9cb648
 
 
 
 
 
 
 
 
d4f5dc4
c9cb648
 
 
 
d4f5dc4
c9cb648
 
d4f5dc4
c9cb648
 
 
 
d4f5dc4
c9cb648
 
 
 
 
 
 
 
 
d4f5dc4
c9cb648
 
 
 
 
 
 
d4f5dc4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c9cb648
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4abd0b0
c9cb648
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4abd0b0
c9cb648
 
 
 
 
 
 
 
 
 
 
 
4abd0b0
c9cb648
 
 
 
 
 
 
 
4abd0b0
 
06d47ea
 
4abd0b0
 
 
 
 
06d47ea
4abd0b0
 
06d47ea
4abd0b0
 
 
 
 
06d47ea
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4abd0b0
 
c9cb648
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b6994be
 
 
d4f5dc4
b6994be
 
 
d4f5dc4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c9cb648
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c9526c52",
   "metadata": {},
   "outputs": [],
   "source": [
    "import datasets\n",
    "from datasets import DatasetDict, load_dataset, load_metric"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "663ff92e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import re"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "cc9f1c45",
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset_name = \"speech-recognition-community-v2/dev_data\"\n",
    "dataset_config_name = \"sv\"\n",
    "train_split_name = \"validation\"\n",
    "use_auth_token = True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "21fd7030",
   "metadata": {},
   "outputs": [],
   "source": [
    "raw_datasets = DatasetDict()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "81a27912",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Reusing dataset public_speech (/Users/emiliomarinone/.cache/huggingface/datasets/speech-recognition-community-v2___public_speech/sv/0.0.1/cb0563153e481870405b64e5958c7737342cd74f45ec10838bb69a45e5cc6c76)\n"
     ]
    }
   ],
   "source": [
    "raw_datasets[\"validation\"] = load_dataset(\n",
    "    dataset_name,\n",
    "    dataset_config_name,\n",
    "    split=train_split_name,\n",
    "    use_auth_token=use_auth_token,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "7945cada",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Reusing dataset public_speech (/Users/emiliomarinone/.cache/huggingface/datasets/speech-recognition-community-v2___public_speech/sv/0.0.1/cb0563153e481870405b64e5958c7737342cd74f45ec10838bb69a45e5cc6c76)\n"
     ]
    },
    {
     "ename": "ValueError",
     "evalue": "Unknown split \"test\". Should be one of ['validation'].",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
      "Input \u001b[0;32mIn [6]\u001b[0m, in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0m raw_datasets[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtest\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[43mload_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m      2\u001b[0m \u001b[43m    \u001b[49m\u001b[43mdataset_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m      3\u001b[0m \u001b[43m    \u001b[49m\u001b[43mdataset_config_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m      4\u001b[0m \u001b[43m    \u001b[49m\u001b[43msplit\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mtest\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m      5\u001b[0m \u001b[43m    \u001b[49m\u001b[43muse_auth_token\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43muse_auth_token\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m      6\u001b[0m \u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/load.py:1714\u001b[0m, in \u001b[0;36mload_dataset\u001b[0;34m(path, name, data_dir, data_files, split, cache_dir, features, download_config, download_mode, ignore_verifications, keep_in_memory, save_infos, revision, use_auth_token, task, streaming, script_version, **config_kwargs)\u001b[0m\n\u001b[1;32m   1710\u001b[0m \u001b[38;5;66;03m# Build dataset for splits\u001b[39;00m\n\u001b[1;32m   1711\u001b[0m keep_in_memory \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m   1712\u001b[0m     keep_in_memory \u001b[38;5;28;01mif\u001b[39;00m keep_in_memory \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m is_small_dataset(builder_instance\u001b[38;5;241m.\u001b[39minfo\u001b[38;5;241m.\u001b[39mdataset_size)\n\u001b[1;32m   1713\u001b[0m )\n\u001b[0;32m-> 1714\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[43mbuilder_instance\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mas_dataset\u001b[49m\u001b[43m(\u001b[49m\u001b[43msplit\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msplit\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mignore_verifications\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mignore_verifications\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_memory\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_in_memory\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   1715\u001b[0m \u001b[38;5;66;03m# Rename and cast features to match task schema\u001b[39;00m\n\u001b[1;32m   1716\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m task \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/builder.py:763\u001b[0m, in \u001b[0;36mDatasetBuilder.as_dataset\u001b[0;34m(self, split, run_post_process, ignore_verifications, in_memory)\u001b[0m\n\u001b[1;32m    760\u001b[0m     split \u001b[38;5;241m=\u001b[39m {s: s \u001b[38;5;28;01mfor\u001b[39;00m s \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minfo\u001b[38;5;241m.\u001b[39msplits}\n\u001b[1;32m    762\u001b[0m \u001b[38;5;66;03m# Create a dataset for each of the given splits\u001b[39;00m\n\u001b[0;32m--> 763\u001b[0m datasets \u001b[38;5;241m=\u001b[39m \u001b[43mutils\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmap_nested\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m    764\u001b[0m \u001b[43m    \u001b[49m\u001b[43mpartial\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m    765\u001b[0m \u001b[43m        \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_build_single_dataset\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    766\u001b[0m \u001b[43m        \u001b[49m\u001b[43mrun_post_process\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrun_post_process\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    767\u001b[0m \u001b[43m        \u001b[49m\u001b[43mignore_verifications\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mignore_verifications\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    768\u001b[0m \u001b[43m        \u001b[49m\u001b[43min_memory\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_memory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    769\u001b[0m \u001b[43m    \u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    770\u001b[0m \u001b[43m    \u001b[49m\u001b[43msplit\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    771\u001b[0m \u001b[43m    \u001b[49m\u001b[43mmap_tuple\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m    772\u001b[0m \u001b[43m    \u001b[49m\u001b[43mdisable_tqdm\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m    773\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    774\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(datasets, \u001b[38;5;28mdict\u001b[39m):\n\u001b[1;32m    775\u001b[0m     datasets \u001b[38;5;241m=\u001b[39m DatasetDict(datasets)\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/utils/py_utils.py:250\u001b[0m, in \u001b[0;36mmap_nested\u001b[0;34m(function, data_struct, dict_only, map_list, map_tuple, map_numpy, num_proc, types, disable_tqdm)\u001b[0m\n\u001b[1;32m    248\u001b[0m \u001b[38;5;66;03m# Singleton\u001b[39;00m\n\u001b[1;32m    249\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(data_struct, \u001b[38;5;28mdict\u001b[39m) \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(data_struct, types):\n\u001b[0;32m--> 250\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunction\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata_struct\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    252\u001b[0m disable_tqdm \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m    253\u001b[0m     disable_tqdm \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mbool\u001b[39m(logging\u001b[38;5;241m.\u001b[39mget_verbosity() \u001b[38;5;241m==\u001b[39m logging\u001b[38;5;241m.\u001b[39mNOTSET) \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m utils\u001b[38;5;241m.\u001b[39mis_progress_bar_enabled()\n\u001b[1;32m    254\u001b[0m )\n\u001b[1;32m    255\u001b[0m iterable \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(data_struct\u001b[38;5;241m.\u001b[39mvalues()) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(data_struct, \u001b[38;5;28mdict\u001b[39m) \u001b[38;5;28;01melse\u001b[39;00m data_struct\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/builder.py:794\u001b[0m, in \u001b[0;36mDatasetBuilder._build_single_dataset\u001b[0;34m(self, split, run_post_process, ignore_verifications, in_memory)\u001b[0m\n\u001b[1;32m    791\u001b[0m     split \u001b[38;5;241m=\u001b[39m Split(split)\n\u001b[1;32m    793\u001b[0m \u001b[38;5;66;03m# Build base dataset\u001b[39;00m\n\u001b[0;32m--> 794\u001b[0m ds \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_as_dataset\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m    795\u001b[0m \u001b[43m    \u001b[49m\u001b[43msplit\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msplit\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    796\u001b[0m \u001b[43m    \u001b[49m\u001b[43min_memory\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_memory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    797\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    798\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m run_post_process:\n\u001b[1;32m    799\u001b[0m     \u001b[38;5;28;01mfor\u001b[39;00m resource_file_name \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_post_processing_resources(split)\u001b[38;5;241m.\u001b[39mvalues():\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/builder.py:862\u001b[0m, in \u001b[0;36mDatasetBuilder._as_dataset\u001b[0;34m(self, split, in_memory)\u001b[0m\n\u001b[1;32m    847\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_as_dataset\u001b[39m(\u001b[38;5;28mself\u001b[39m, split: Union[ReadInstruction, Split] \u001b[38;5;241m=\u001b[39m Split\u001b[38;5;241m.\u001b[39mTRAIN, in_memory: \u001b[38;5;28mbool\u001b[39m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Dataset:\n\u001b[1;32m    848\u001b[0m     \u001b[38;5;124;03m\"\"\"Constructs a `Dataset`.\u001b[39;00m\n\u001b[1;32m    849\u001b[0m \n\u001b[1;32m    850\u001b[0m \u001b[38;5;124;03m    This is the internal implementation to overwrite called when user calls\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    859\u001b[0m \u001b[38;5;124;03m        `Dataset`\u001b[39;00m\n\u001b[1;32m    860\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[0;32m--> 862\u001b[0m     dataset_kwargs \u001b[38;5;241m=\u001b[39m \u001b[43mArrowReader\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_cache_dir\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minfo\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m    863\u001b[0m \u001b[43m        \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    864\u001b[0m \u001b[43m        \u001b[49m\u001b[43minstructions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43msplit\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    865\u001b[0m \u001b[43m        \u001b[49m\u001b[43msplit_infos\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minfo\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msplits\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    866\u001b[0m \u001b[43m        \u001b[49m\u001b[43min_memory\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_memory\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m    867\u001b[0m \u001b[43m    \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    868\u001b[0m     fingerprint \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_get_dataset_fingerprint(split)\n\u001b[1;32m    869\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m Dataset(fingerprint\u001b[38;5;241m=\u001b[39mfingerprint, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdataset_kwargs)\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/arrow_reader.py:211\u001b[0m, in \u001b[0;36mBaseReader.read\u001b[0;34m(self, name, instructions, split_infos, in_memory)\u001b[0m\n\u001b[1;32m    190\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mread\u001b[39m(\n\u001b[1;32m    191\u001b[0m     \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m    192\u001b[0m     name,\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    195\u001b[0m     in_memory\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m    196\u001b[0m ):\n\u001b[1;32m    197\u001b[0m     \u001b[38;5;124;03m\"\"\"Returns Dataset instance(s).\u001b[39;00m\n\u001b[1;32m    198\u001b[0m \n\u001b[1;32m    199\u001b[0m \u001b[38;5;124;03m    Args:\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    208\u001b[0m \u001b[38;5;124;03m         kwargs to build a single Dataset instance.\u001b[39;00m\n\u001b[1;32m    209\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[0;32m--> 211\u001b[0m     files \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_file_instructions\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minstructions\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msplit_infos\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    212\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m files:\n\u001b[1;32m    213\u001b[0m         msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mInstruction \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00minstructions\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m corresponds to no data!\u001b[39m\u001b[38;5;124m'\u001b[39m\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/arrow_reader.py:184\u001b[0m, in \u001b[0;36mBaseReader.get_file_instructions\u001b[0;34m(self, name, instruction, split_infos)\u001b[0m\n\u001b[1;32m    182\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mget_file_instructions\u001b[39m(\u001b[38;5;28mself\u001b[39m, name, instruction, split_infos):\n\u001b[1;32m    183\u001b[0m     \u001b[38;5;124;03m\"\"\"Return list of dict {'filename': str, 'skip': int, 'take': int}\"\"\"\u001b[39;00m\n\u001b[0;32m--> 184\u001b[0m     file_instructions \u001b[38;5;241m=\u001b[39m \u001b[43mmake_file_instructions\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m    185\u001b[0m \u001b[43m        \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msplit_infos\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minstruction\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfiletype_suffix\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_filetype_suffix\u001b[49m\n\u001b[1;32m    186\u001b[0m \u001b[43m    \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    187\u001b[0m     files \u001b[38;5;241m=\u001b[39m file_instructions\u001b[38;5;241m.\u001b[39mfile_instructions\n\u001b[1;32m    188\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m files\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/arrow_reader.py:107\u001b[0m, in \u001b[0;36mmake_file_instructions\u001b[0;34m(name, split_infos, instruction, filetype_suffix)\u001b[0m\n\u001b[1;32m    105\u001b[0m     instruction \u001b[38;5;241m=\u001b[39m ReadInstruction\u001b[38;5;241m.\u001b[39mfrom_spec(instruction)\n\u001b[1;32m    106\u001b[0m \u001b[38;5;66;03m# Create the absolute instruction (per split)\u001b[39;00m\n\u001b[0;32m--> 107\u001b[0m absolute_instructions \u001b[38;5;241m=\u001b[39m \u001b[43minstruction\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mto_absolute\u001b[49m\u001b[43m(\u001b[49m\u001b[43mname2len\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    109\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m _make_file_instructions_from_absolutes(\n\u001b[1;32m    110\u001b[0m     name\u001b[38;5;241m=\u001b[39mname, name2len\u001b[38;5;241m=\u001b[39mname2len, absolute_instructions\u001b[38;5;241m=\u001b[39mabsolute_instructions, filetype_suffix\u001b[38;5;241m=\u001b[39mfiletype_suffix\n\u001b[1;32m    111\u001b[0m )\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/arrow_reader.py:618\u001b[0m, in \u001b[0;36mReadInstruction.to_absolute\u001b[0;34m(self, name2len)\u001b[0m\n\u001b[1;32m    607\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mto_absolute\u001b[39m(\u001b[38;5;28mself\u001b[39m, name2len):\n\u001b[1;32m    608\u001b[0m     \u001b[38;5;124;03m\"\"\"Translate instruction into a list of absolute instructions.\u001b[39;00m\n\u001b[1;32m    609\u001b[0m \n\u001b[1;32m    610\u001b[0m \u001b[38;5;124;03m    Those absolute instructions are then to be added together.\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    616\u001b[0m \u001b[38;5;124;03m        list of _AbsoluteInstruction instances (corresponds to the + in spec).\u001b[39;00m\n\u001b[1;32m    617\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[0;32m--> 618\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m [_rel_to_abs_instr(rel_instr, name2len) \u001b[38;5;28;01mfor\u001b[39;00m rel_instr \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_relative_instructions]\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/arrow_reader.py:618\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m    607\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mto_absolute\u001b[39m(\u001b[38;5;28mself\u001b[39m, name2len):\n\u001b[1;32m    608\u001b[0m     \u001b[38;5;124;03m\"\"\"Translate instruction into a list of absolute instructions.\u001b[39;00m\n\u001b[1;32m    609\u001b[0m \n\u001b[1;32m    610\u001b[0m \u001b[38;5;124;03m    Those absolute instructions are then to be added together.\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    616\u001b[0m \u001b[38;5;124;03m        list of _AbsoluteInstruction instances (corresponds to the + in spec).\u001b[39;00m\n\u001b[1;32m    617\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[0;32m--> 618\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m [\u001b[43m_rel_to_abs_instr\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrel_instr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname2len\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m rel_instr \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_relative_instructions]\n",
      "File \u001b[0;32m~/Repos/transformers/rsc-venv/lib/python3.8/site-packages/datasets/arrow_reader.py:433\u001b[0m, in \u001b[0;36m_rel_to_abs_instr\u001b[0;34m(rel_instr, name2len)\u001b[0m\n\u001b[1;32m    431\u001b[0m split \u001b[38;5;241m=\u001b[39m rel_instr\u001b[38;5;241m.\u001b[39msplitname\n\u001b[1;32m    432\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m split \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m name2len:\n\u001b[0;32m--> 433\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mUnknown split \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00msplit\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m. Should be one of \u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mlist\u001b[39m(name2len)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m    434\u001b[0m num_examples \u001b[38;5;241m=\u001b[39m name2len[split]\n\u001b[1;32m    435\u001b[0m from_ \u001b[38;5;241m=\u001b[39m rel_instr\u001b[38;5;241m.\u001b[39mfrom_\n",
      "\u001b[0;31mValueError\u001b[0m: Unknown split \"test\". Should be one of ['validation']."
     ]
    }
   ],
   "source": [
    "raw_datasets[\"test\"] = load_dataset(\n",
    "    dataset_name,\n",
    "    dataset_config_name,\n",
    "    split=\"test\",\n",
    "    use_auth_token=use_auth_token,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "c98cb649",
   "metadata": {},
   "outputs": [],
   "source": [
    "training_data = raw_datasets[\"train\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "1aead6a1",
   "metadata": {},
   "outputs": [],
   "source": [
    "test_data = raw_datasets[\"test\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "97e9a626",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Dataset({\n",
       "    features: ['client_id', 'path', 'audio', 'sentence', 'up_votes', 'down_votes', 'age', 'gender', 'accent', 'locale', 'segment'],\n",
       "    num_rows: 11030\n",
       "})"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "training_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "fc794e39",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Dataset({\n",
       "    features: ['client_id', 'path', 'audio', 'sentence', 'up_votes', 'down_votes', 'age', 'gender', 'accent', 'locale', 'segment'],\n",
       "    num_rows: 4620\n",
       "})"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "406af02e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datasets.arrow_dataset.Dataset"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(test_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "8cc0fa51",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'cv-corpus-7.0-2021-07-21/sv-SE/clips/common_voice_sv-SE_18711293.mp3'"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_data[0][\"path\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "31b328fd",
   "metadata": {},
   "outputs": [],
   "source": [
    "train_speakers_dict = {}\n",
    "for record in training_data:\n",
    "    try:\n",
    "        speakers_dict[record[\"client_id\"]].append(record[\"path\"])\n",
    "    except:\n",
    "        speakers_dict[record[\"client_id\"]] = [record[\"path\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "7eba5861",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(f\"Speakers in training set: {train_speakers_dict}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "17905c39",
   "metadata": {},
   "outputs": [],
   "source": [
    "test_speakers_dict = {}\n",
    "for record in test_data:\n",
    "    try:\n",
    "        speakers_dict[record[\"client_id\"]].append(record[\"path\"])\n",
    "    except:\n",
    "        speakers_dict[record[\"client_id\"]] = [record[\"path\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "25a25454",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "24"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(f\"Speakers in test set: {test_speakers_dict}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "f72bdb7a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Speakers in both training and test sets: 0\n"
     ]
    }
   ],
   "source": [
    "c = 0\n",
    "for speaker in test_speakers_dict:\n",
    "    if speaker in train_speakers_dict:\n",
    "        c+=1\n",
    "print(f\"Speakers in both training and test sets: {c}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "ed6bc20b",
   "metadata": {},
   "outputs": [],
   "source": [
    "chars_to_ignore_regex = '[,?.!\\-\\;\\:\"“%‘”�—’…–]'\n",
    "def clean_text(text):\n",
    "    return re.sub(chars_to_ignore_regex, \"\", text.lower())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "16b289be",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Avg tokens training data: 7.243336355394379\n"
     ]
    }
   ],
   "source": [
    "num_tokens_train = 0\n",
    "for record in training_data:\n",
    "    num_tokens_train += len(clean_text(record[\"sentence\"]).split())\n",
    "avg_tokens_train = num_tokens_train / training_data.num_rows\n",
    "print(f\"Avg tokens training data: {avg_tokens_train}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "364aff29",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Avg tokens training data: 7.074891774891775\n"
     ]
    }
   ],
   "source": [
    "num_tokens_test = 0\n",
    "for record in test_data:\n",
    "    num_tokens_test += len(clean_text(record[\"sentence\"]).split())\n",
    "avg_tokens_test = num_tokens_test / test_data.num_rows\n",
    "print(f\"Avg tokens training data: {avg_tokens_test}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "4f906c9c",
   "metadata": {},
   "outputs": [],
   "source": [
    "text = raw_datasets[\"validation\"][1][\"sentence\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "a20b3bec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Tack så mycket\\nför den fina presentationen.\\nAtt intervjua - jag frågar, du svarar -\\ndet verkar lätt.\\nSom intervjuare har man\\notroligt mycket att slåss mot,\\nOch jag skulle vilja säga,\\nman har ju en idé om\\natt man ska få ett ärligt svar, eller hur?\\nDet sker väldigt sällan, väldigt sällan.\\nOch vad har man att slåss mot?\\nTidspress, en miljö som stör,\\nman kanske inte är överens\\nom varför man gör den här intervjun.\\nMen det som är allra svårast,\\ntycker jag, att slåss mot,\\ndet är den intervjuades bild\\nav vad han eller hon vill förmedla.\\nVilken bild vill jag ge av mig själv?\\nDet där håller vi alla på med,\\nlångt utanför intervjusituationen.\\nJag känner igen det \\nnär jag blir intervjuad.\\nJag tänker mycket på det innan,\\nåtminstone har jag gjort det.\\nDet är en liten förändring på gång.\\nHur ska jag... \\nVad är den ideala bilden av mig?\\nOch sedan så försöker jag leverera det.\\nDå blir det ju inget möte, riktigt möte.\\nJag har ju redan bestämt mig.\\nDet gör ganska många.\\nJag intervjuar nästan alltid människor\\nmed en position; med makt.\\nDe har mycket att försvara.\\nDe har inte bara sig själva\\noch sitt rykte att försvara.\\nDet kan vara ett parti,\\nde kanske kan vinna ett val,\\naffärerna ska gå bättre,\\ndet finns en organisation bakom\\nsom har ett stort intresse\\nav att det sägs exakt rätt saker.\\nSedan kan det uppstå en situation\\nnär det låter väldigt ärligt och öppet.\\nWow! Titta! Hör! Nu blev det ett möte.\\nMen det kan ju vara\\nett verk av en PR-strateg.\\n\"Nu har du var lite kylig sista tiden.\\nVi behöver lite mer verklighet,\\nlite mer värme,\\nlite mer \"riktig\" människa.\"\\nDå är det det som jag möter.\\nDet kanske händer att jag går på det.\\nFörhoppningsvis inte.\\nMen, så händer det, ibland:\\nnågra gyllene ögonblick,\\nväldigt sällan skulle jag tyvärr säga,\\natt det blir på riktigt,\\natt det är ett riktigt möte.\\nAtt det är några sekunder,\\nkanske några minuter i bästa fall,\\nsom man glömmer den där omgivningen,\\noch framförallt glömmer\\ndet man ville få ut,\\noch att man bara är, här och nu.\\nFör ungefär en månad sedan\\nsatt jag mitt emot den världsberömda\\nförfattaren Henning Mankell,\\ni TV-programmet Min Sannings studio\\ni TV-huset i Göteborg.\\nOch han satt där med sin svarta kavaj,\\noch sin svart-vita Hawaii-skjorta,\\noch sitt vita hår, som stod\\nsom en gloria runt huvudet.\\nOch ganska rödögd var han,\\npå grund av cellgiftsbehandling.\\nHan hade - han har -\\nen tumör i nacken och en i lungan.\\nMen cellgiftsbehandlingen\\nfungerar ganska bra,\\noch han kändes ändå ganska pigg.\\nOch vi pratade om hans dödsångest;\\nhan berättade om\\npanikattacker på nätterna.\\nVi pratade om hans liv i Moçambique;\\nhan bor där halva tiden.\\nVi pratade om Sofia,\\nsom han skrivit mycket böcker om.\\nSofia är lemlästad av minor efter krig.\\nSofia är ett av många, många barn,\\nni känner säkert till det här,\\nsom han verkligen har förändrat livet för.\\n\"Är du en världsförbättrare?\"\\nfrågade jag Henning.\\n\"Ja, det är jag\" sade han.\\n\"Det är klart att jag är det.\\nVi är väl här för att förbättra världen.\\nDet hoppas jag verkligen att jag är.\"\\nJag gick vidare och frågade om hans mamma,\\nsom övergav honom när han var bäbis,\\noch sedan träffade honom\\nnästa gång när han var femton,\\npå en krog i Stockholm - Brända tomten -\\nsom inte finns längre.\\nOch det första hon sade till honom var:\\n\"Kom inte nära, jag är så förkyld.\"\\nOch så tog jag sats, och frågade honom\\nom det han inte vill prata om,\\nnämligen hans egen son,\\nsom är i 35-årsåldern idag,\\nsom han har övergivit.\\nHan hade sagt till oss\\natt han inte vill prata om det,\\noch det var med bultande hjärta\\nsom jag närmade mig det här ämnet.\\nOch jag tänkte:\\n\"Gud, men vi måste ha det här.\"\\nJag och Karin, som sitter här nånstans,\\nsom är redaktör,\\nvi kände att vi måste ha\\nhela bilden av honom.\\nDet går inte, han gör så mycket gott.\\nHan är så fruktansvärt generös,\\noch han är en världsförbättrare.\\nMen det finns en annan sida av hans liv,\\noch den hör till bilden.\\nVi tecknar ju honom under en timme,\\nvi måste ha med det här.\\nDet här var naturligtvis väldigt känsligt.\\nHan skiljde sig från sonens mamma\\nnär pojken var bäbis.\\nOch sedan fortsatte Henning att leva,\\nsom om han aldrig hade fått barn.\\nHan skiljde sig från sonen också;\\ndet var inte tal om delad vårdnad.\\nHan flyttade runt i Sverige,\\noch jobbade på olika ställen\\ni olika städer på teatrar.\\nHan skrev.\\nSatsade stenhårt på karriären,\\nsom han alltid har gjort.\\nHan var inte pappa.\\nHan höll kontakt med sonen,\\nalltid, under alla år.\\nIdag har de väldigt fin kontakt.\\nMen han var ju inte med honom,\\nhan uppfostrade honom inte.\\nHan nattade honom inte,\\nläste inga godnattsagor.\\nHan gick inte på utvecklingssamtal,\\nhan hade inga tonårsgräl med honom.\\nHan var inte pappa,\\nhan var inte del av hans liv\\növer huvud taget.\\nNär jag började närma mig det här ämnet,\\nså ser jag att Henning värjer sig.\\nOch jag tänker att nu säger han:\\n\"Jag har ju sagt att jag inte vill\\nprata om det där.\"\\nMen så ser jag\\natt han står och väger, vad han ska göra.\\nOch så händer något\\nsom är ett väldigt gott tecken.\\nHans blick börjar lämna mig,\\noch vandrar iväg.\\nOch så väljer han sanningen.\\nHan väljer att gå in i det,\\noch berättar om varför det blev så.\\nOch han ångrar inte det.\\nDet är ju en skam i vårt samhälle\\natt man lämnar sitt barn.\\nSäkert ännu mer om en kvinna gör det.\\nMen han gör det, han står för det...\\nfast han vet att det inte är\\nnågon vacker bild av honom.\\nHan struntar i bilden\\nav sig själv i den stunden.\\nOch varför blev det så här?\\nVarför lyckades jag -\\nom jag har någon inverkan i det hela -\\nkomma dit för en gångs skull?\\nDen personliga kontakten\\nspelar naturligtvis roll.\\nVi hade mötts en gång tidigare.\\nHenning har ju sett mig många år.\\nHan är samhällsintresserad\\noch tittar på Aktuellt och Agenda,\\noch har förtroende för mig.\\nMen så hade vi möts en gång tidigare,\\nnär Ingmar Bergman dog.\\nHenning är Ingmar Bergmans svärson.\\nAktuellt hade en förlängd sändning.\\nJag var programledare,\\noch Henning Mankell var en av gästerna.\\noch det blev ett väldigt bra samtal.\\nVi hade tid på oss,\\nvi hade tid att prata innan,\\noch det funkade bra.\\nDet här är såklart en viktig komponent...\\nsäkert en grundförutsättning\\nvem man möter,\\nmen det räcker ju inte.\\nDet vet ju jag.\\nJag har ju suttit i den här situationen\\nså många gånger när kontakten varit bra,\\noch det har liksom inte hänt.\\nJag tror att det finns\\nen annan viktig förklaring,\\noch det är en dragning till sanningen.\\nFör att stå för den man är,\\nmed fel och brister.\\nAtt säga det där svåra,\\nsom inte ser så snyggt ut,\\nmen som är sant.\\nAtt inte gömma sig.\\nDet är väldigt befriande...\\näven om det är någonting skamligt.\\nVarför drogs han då till sanningen?\\nJag har ju ingen aning\\nom han skulle gjort det\\ntidigare eller inte.\\nMen jag kan inte låta bli\\natt tänka på två saker:\\nDet ena är att han är sjuk,\\noch att han stått öga mot öga med döden,\\noch gör det fortfarande.\\nJag har ingen erfarenhet av det.\\nJag vet inte om det har betydelse,\\nmen jag tror det.\\nJag har erfarenhet av att bli äldre,\\noch Henning närmar sig 70.\\nJag känner själv att jag är\\nså ointresserad av det ytliga.\\nOch det känner ni säker igen.\\nDet finns säkert fler som är i min ålder,\\neller om man är yngre,\\nnär man nu upptäcker det;\\natt man sänker garden och man orkar inte\\nhålla på med ytligheterna längre.\\nNu är det så här.\\nDen här är jag, och det här står jag för.\\nDe människor jag trivs bäst med idag,\\noch som jag gärna binder band till,\\när de som törs medge...\\nrevorna och sprickorna i idyllen,\\nså långt bort från Facebook-tjusiga livet\\njag bara kan komma.\\nOch jag tänker så här:\\nOm en människa som Henning Mankell,\\nsom är så beundrad och läst\\noch står för så mycket gott,\\nom han kan sitta på bästa sändningstid\\noch medge den solkiga sidan av sig själv,\\nutan att tänka på\\nhur det påverkar bokförsäljningen,\\neller vad sjutton det nu är...\\nså kanske det kan få någon annan,\\neller fler av oss,\\natt någon gång emellanåt åtminstone,\\nsäga hur det faktiskt är.\\nFör när man gör det,\\nnär man hör sig själv säga sanningar\\nom sitt eget liv och sitt eget innersta,\\nså blir det ju verkligt.\\nDå kan det ju hända saker med livet,\\ndå kan ju faktiskt samhället\\nförändra livet.\\nTack så mycket!\\n'"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "351973b0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting num2words\n",
      "  Using cached num2words-0.5.10-py3-none-any.whl (101 kB)\n",
      "Collecting docopt>=0.6.2\n",
      "  Using cached docopt-0.6.2.tar.gz (25 kB)\n",
      "Using legacy 'setup.py install' for docopt, since package 'wheel' is not installed.\n",
      "Installing collected packages: docopt, num2words\n",
      "    Running setup.py install for docopt ... \u001b[?25ldone\n",
      "\u001b[?25hSuccessfully installed docopt-0.6.2 num2words-0.5.10\n",
      "\u001b[33mWARNING: You are using pip version 20.2.1; however, version 22.0.3 is available.\n",
      "You should consider upgrading via the '/Users/emiliomarinone/Repos/transformers/rsc-venv/bin/python3.8 -m pip install --upgrade pip' command.\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "!pip install num2words"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "ca32b763",
   "metadata": {},
   "outputs": [],
   "source": [
    "import num2words"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}