Description
Le projet Skip-Thought Vectors propose l'encodeur Sent2Vec et le code d'entraînement associé, directement issus de l'article de recherche "Skip-Thought Vectors". Cet outil est conçu pour générer des représentations vectorielles denses de haute qualité pour les phrases. Ces plongements de phrases peuvent ensuite être utilisés dans un large éventail d'applications de traitement du langage naturel (NLP), améliorant considérablement leurs performances.
L'implémentation est principalement en Python, nécessitant des dépendances spécifiques telles que Python 2.7, Theano 0.7, NumPy, SciPy, scikit-learn, NLTK 3, et optionnellement Keras et gensim pour des expériences spécifiques. Les utilisateurs doivent télécharger des fichiers de modèles pré-entraînés et des plongements de mots, qui sont de taille substantielle, nécessitant un espace de stockage adéquat. La configuration implique la définition des chemins vers ces fichiers téléchargés dans le script `skipthoughts.py` et la configuration des drapeaux Theano pour la sélection de l'appareil (CPU ou GPU).
Une fois configuré, l'encodeur peut traiter des listes de phrases pour produire des vecteurs numériques. Les vecteurs de sortie sont de dimension 4800, combinant les modèles uni-skip et bi-skip, avec les vecteurs combinés recommandés pour des performances optimales, comme démontré dans les expériences de l'article. Le processus d'encodage peut être contrôlé pour la verbosité, affichant la progression en fonction de la longueur des phrases traitées.
Le dépôt comprend également du code pour reproduire les expériences détaillées dans l'article, couvrant des tâches telles que la classification des types de questions TREC, le classement image-phrase (utilisant le jeu de données COCO), la relation sémantique (jeu de données SICK), la détection de paraphrases (corpus Microsoft Research Paraphrase) et divers benchmarks de classification binaire (MR, CR, SUBJ, MPQA). Ces scripts expérimentaux guident les utilisateurs sur la préparation des données et l'exécution pour obtenir les résultats rapportés, impliquant souvent une validation croisée pour le réglage des hyperparamètres.
Le projet souligne l'importance d'un jeton de fin de phrase (EOS), qui peut être utilisé optionnellement lors de l'encodage pour potentiellement améliorer les performances, en particulier pour les phrases dépourvues de ponctuation standard. Le code est publié sous la licence Apache 2.0, et les utilisateurs sont encouragés à citer les articles de recherche pertinents s'ils trouvent le code utile.
Points forts de Skip-Thought Vectors
Implémentation de l'encodeur Sent2Vec
Code d'entraînement de l'article 'Skip-Thought Vectors'
Génère des représentations vectorielles denses de phrases
Prend en charge les modèles uni-skip et bi-skip
Vecteurs combine-skip recommandés pour les meilleures performances
Inclut le code pour les expériences de classification TREC
Inclut le code pour les expériences de classement image-phrase
Inclut le code pour les expériences de relation sémantique
Inclut le code pour les expériences de détection de paraphrases
Inclut le code pour les benchmarks de classification binaire
Utilisation optionnelle du jeton EOS pour l'encodage
Implémentation basée sur Python
Premiers pas avec Skip-Thought Vectors
Télécharger les fichiers de modèles et les plongements de mots
Configurer les chemins vers les fichiers téléchargés dans skipthoughts.py
Définir THEANO_FLAGS pour la sélection de l'appareil (CPU/GPU)
Importer skipthoughts et charger le modèle
Initialiser l'encodeur avec le modèle chargé
Encoder des listes de phrases pour obtenir des vecteurs
Exécuter les scripts fournis pour des expériences NLP spécifiques
Cas d'utilisation de Skip-Thought Vectors
- Génération d'embeddings de phrases
- Classification de texte
- Classement image-phrase
- Similarité sémantique
- Détection de paraphrases
- Classification binaire







