forked from huggingface/course
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path37_datasets-+-dataframes-=-❤️.srt
115 lines (87 loc) · 4.12 KB
/
37_datasets-+-dataframes-=-❤️.srt
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
1
00:00:05,200 --> 00:00:11,680
Datasets + DataFrames = amour. Bien que les fonctions de traitement de la bibliothèque Datasets couvrent la plupart
2
00:00:11,680 --> 00:00:15,600
des cas nécessaires pour entraîner un modèle, il y a des moments où vous devrez passer à une bibliothèque
3
00:00:15,600 --> 00:00:21,840
comme Pandas pour accéder à des fonctionnalités plus puissantes ou à des API de haut niveau pour la visualisation. Heureusement,
4
00:00:21,840 --> 00:00:25,520
Datasets est conçu pour être interopérable avec des bibliothèques telles que Pandas,
5
00:00:25,520 --> 00:00:30,560
ainsi que NumPy, PyTorch, TensorFlow et JAX. Dans cette vidéo, nous allons
6
00:00:30,560 --> 00:00:33,920
voir comment nous pouvons rapidement basculer nos données vers Pandas DataFrames et inversement.
7
00:00:35,920 --> 00:00:41,280
Supposons, par exemple, que nous analysions des affaires de la Cour suprême en Suisse. Comme d'habitude,
8
00:00:41,280 --> 00:00:45,440
nous téléchargeons notre jeu de données à partir du Hub à l'aide de la fonction `load_dataset()` et vous pouvez voir que le
9
00:00:45,440 --> 00:00:49,600
premier élément du jeu d'entraînement est un dictionnaire Python ordinaire avec divers domaines d'intérêt.
10
00:00:51,440 --> 00:00:54,800
Supposons maintenant qu'avant d'entraîner des modèles, nous souhaitions explorer un peu les données.
11
00:00:55,360 --> 00:00:58,720
Par exemple, nous pourrions être intéressés à savoir quel domaine juridique est le plus courant
12
00:00:59,600 --> 00:01:02,480
ou nous pourrions vouloir savoir comment les langues sont réparties entre les régions.
13
00:01:04,320 --> 00:01:07,920
Répondre à ces questions avec le format Arrow natif n'est pas facile, mais nous pouvons facilement
14
00:01:07,920 --> 00:01:13,280
passer à Pandas pour obtenir nos réponses ! Cela fonctionne en utilisant la méthode `set_format()`,
15
00:01:13,280 --> 00:01:17,600
qui changera le format de sortie du jeu de données des dictionnaires Python aux Pandas DataFrames.
16
00:01:18,720 --> 00:01:22,720
Comme vous pouvez le voir dans cet exemple, chaque ligne du jeu de données est représentée sous la forme d'un DataFrame,
17
00:01:22,720 --> 00:01:26,160
afin que nous puissions découper le jeu de données pour obtenir un seul DataFrame du corpus.
18
00:01:27,840 --> 00:01:31,040
La façon dont cela fonctionne sous le capot est que la bibliothèque Datasets modifie la
19
00:01:31,040 --> 00:01:35,440
méthode magique `__getitem__()` de Datasets. La méthode `__getitem__()` est une méthode spéciale
20
00:01:35,440 --> 00:01:40,320
pour les conteneurs Python qui vous permet de spécifier le fonctionnement de l'indexation. Dans ce cas,
21
00:01:40,320 --> 00:01:44,320
la méthode `__getitem__()` du jeu de données brut commence par renvoyer des dictionnaires Python,
22
00:01:45,120 --> 00:01:49,920
puis après avoir appliqué `set_format()`, nous modifions `__getitem__()` pour renvoyer des DataFrames à la place.
23
00:01:51,840 --> 00:01:56,240
La bibliothèque Datasets fournit également une méthode `to_pandas()` si vous souhaitez effectuer la conversion de format et le
24
00:01:56,240 --> 00:02:02,640
découpage du jeu de données en une seule fois. Et une fois que vous disposez d'un DataFrame, vous pouvez trouver des réponses à toutes
25
00:02:02,640 --> 00:02:07,840
sortes de questions complexes ou créer des graphiques avec votre bibliothèque de visualisation préférée.
26
00:02:07,840 --> 00:02:10,800
La seule chose à retenir est qu'une fois que vous avez terminé votre analyse Pandas,
27
00:02:10,800 --> 00:02:16,240
vous devez réinitialiser le format de sortie en Arrow tables. Si vous ne le faites pas, vous pouvez rencontrer des problèmes si
28
00:02:16,240 --> 00:02:20,240
vous essayez de tokeniser votre texte car il n'est plus représenté sous forme de chaînes dans un dictionnaire.
29
00:02:21,520 --> 00:02:32,160
En réinitialisant le format de sortie, nous récupérons les Arrow tables et pouvons tokeniser sans problème !