Donc, avant de créer des intégrations de mots qui créent des représentations de sens des mots et réduisent la dimensionnalité, comment créer un bon vocabulaire qui capture une partie de l’essence de notre langue. Il existe différentes langues dans le monde et une structure différente pour chaque langue. Les langues agglutinantes comme le turc agglutinent (ajouter en haut) de chaque mot pour créer une autre signification à partir du même mot initial. De même, en anglais, la partie suffixe de smart-est est où il peut être utilisé dans beaucoup de mots.
Par exemple, dans notre vocabulaire, nous n’avons peut-être pas le mot le plus fort mais peut-être le mot fort quand il se tokenise en tant que fort-est, l’incorporation du jeton aura une représentation de est, donc il aura une information pour le mot le plus fort.
Chez l’enfant, une structure similaire a également lieu. Un enfant n’a pas besoin d’entendre chaque mot et leur forme plurielle pour comprendre. Après avoir entendu beaucoup de formes plurielles d’objets comme des voitures, des abeilles et d’autres objets, le cerveau de l’enfant le structure de manière à ce que lorsqu’un enfant sait ce qu’est un chapeau, il n’a pas besoin d’entendre le mot chapeaux pour l’utiliser. Les modèles linguistiques devraient également symboliser le mécanisme structurel de notre vocabulaire.
BPE a deux avantages: il sait comment traiter les mots inconnus et peut déduire un sens à partir de mots inconnus
Comment ça marche
Nous avons besoin d’un fichier qui soit un bon représentant du langage que vous essayez de tokeniser.
- Appelez le .le fichier txt divise chaque mot de la chaîne et ajoute </w > à la fin de chaque mot. Créez un dictionnaire de la fréquence des mots.
2. Créez une fonction qui obtient le vocabulaire et dans chaque mot du vocabulaire, divisez chaque mot en caractères et créez un dictionnaire de fréquence de la plupart des caractères appariés.
3. Au cours de notre processus de formation, nous continuerons à mettre à jour notre vocabulaire. La fonction merge_vocabulary obtiendra l’ancien dictionnaire de vocabulaire et le mettra à jour avec la paire de caractères la plus fréquente.
4. Les jetons Get seront utilisés plus tard pour tokeniser des chaînes d’entrées
Créant le vocabulaire
Donc après avoir alimenté notre vocabulaire initial et la fréquence des mots. Nous allons créer une boucle qui créera une tokenisation à partir du vocabulaire. Chaque itération, il trouvera le caractère qui se produit ensemble et les ajoutera au vocabulaire.
Dans l’exemple, disons que notre vocabulaire est
- Nous ajoutons notre jeton de fin de mot
- Les jetons initiaux seront
- Nous allons au vocabulaire et vérifions les bigrams et comptons la fréquence des bigrams dans ce cas, c’est le ‘r’ et ‘</w >/w >’nous mettons à jour le dictionnaire de jetons
- Nous ajoutons le nouveau caractère à notre vocabulaire ‘r</w >’
Vous décidez combien d’itérations cela devrait avoir lieu. Cela peut être 10.000 ou 100.000. Vous décidez quelle devrait être la taille de votre vocabulaire.
Encodage et décodage
Pour coder la phrase donnée, nous devons d’abord convertir notre dictionnaire de jetons du mot le plus long au mot le plus court. Nous ajoutons une division de chaque mot dans la phrase et ajoutons </w > à la fin du mot. Nous parcourons chaque jeton et si la sous-chaîne du mot inclut le jeton, nous le mettons en tant que processus de tokenisation. Le décodage est donné à nos jetons, nous fusionnons le mot n’a pas </w > et ajoutons » si le mot a </w > à la fin.