Fiche technique | |
---|---|
Type de produit : | Bibliothèque |
Langage de programmation : | Python, C++ |
Auteur : | |
Licence : | Apache License 2.0 |
Date de publication : | 2016 |
Site Web : | https://github.com/google/sentencepiece |
Introduction
La bibliothèque SentencePiece est un analyse lexicale (tokenizer et detokenizer) de texte non supervisé principalement pour les systèmes de génération de texte basés sur un réseau neuronal (ANN) où la taille du vocabulaire est prédéterminée avant l'entraînement du modèle neuronal. Le SentencePiece met en oeuvre des unités de sous-mots (par exemple, le codage par paires d'octets (BPE). Le modèle de langage unigramme avec l'extension de l'apprentissage direct à partir de phrases brutes. Le SentencePiece permet de créer un système purement de bout en bout ne dépendant pas du pré/post-traitement spécifique à la langue. Il est utilisable en C++ et Python et utilise TensorFlow pour ses traitements.
Voici les caractéristiques les plus intéressantes :
- Purement basé sur les données : SentencePiece entraîne des modèles de tokenisation et de détokénisation à partir de phrases. La pré-tokenisation (tokenizer Moses/MeCab/KyTea) n'est pas toujours requise.
- Indépendant de la langue : SentencePiece traite les phrases comme des séquences de caractères Unicode. Il n'y a pas de logique dépendante de la langue.
- Algorithmes de sous-mots multiples: BPE [Sennrich et al.] Et le modèle de langage unigramme [Kudo.] Sont pris en charge.
- Régularisation des sous-mots: SentencePiece met en oeuvre l'échantillonnage des sous-mots pour la régularisation des sous-mots et l'abandon du BPE, contribuant à améliorer la robustesse et la précision des modèles NMT.
- Rapide et léger : la vitesse de segmentation est d'environ 50 000 phrases/secondes et l'empreinte mémoire d'environ 6 Mo.
- Autonome : la même tokenisation / détokenisation est obtenue tant que le même fichier de modèle est utilisé.
- Génération directe des identifiants de vocabulaire : SentencePiece gère la cartographie du vocabulaire à l'identificateur et peut générer directement des séquences d'identificateur de vocabulaire à partir de phrases brutes.
- Normalisation basée sur NFKC : SentencePiece effectue la normalisation de texte basée sur NFKC.