L’analyse du langage basée sur l’IA a récemment connu un « changement de paradigme » (Bommasani et al., 2021, p. 1), en partie grâce à une nouvelle method appelée modèle de langage transformateur (Vaswani et al., 2017, Liu et al., 2019). Des entreprises telles que Google, Meta et OpenAI ont publié de tels modèles, notamment BERT, RoBERTa et GPT, qui ont réalisé des améliorations importantes sans précédent dans la plupart des tâches linguistiques telles que la recherche sur le Internet et l’analyse des sentiments. Bien que ces modèles de langage soient accessibles en Python, et pour les tâches d’IA typiques through ÉtreindreVisagele bundle R textual content
rend HuggingFace et des modèles de langage transformateur de pointe accessibles en tant que pipelines de sciences sociales dans R.
Introduction
Nous avons développé le textual content
emballer (Kjell, Giorgi & Schwartz, 2022) avec deux objectifs en tête : Servir de resolution modulaire pour le téléchargement et l’utilisation de modèles de langage de transformateur. Cela inclut, par exemple, la transformation d’incorporations de texte en mots ainsi que l’accès à des tâches de modèle de langage courantes telles que la classification de texte, l’analyse des sentiments, la génération de texte, la réponse aux questions, la traduction, and so forth. Fournir une resolution de bout en bout conçue pour les analyses au niveau humain, y compris des pipelines pour des strategies d’IA de pointe conçues pour prédire les caractéristiques de la personne qui a produit le langage ou obtenir des informations sur les corrélats linguistiques des attributs psychologiques.
Ce billet de weblog montre remark installer le textual content
bundle, transformez le texte en incorporations de mots contextuelles à la pointe de la technologie, utilisez des tâches d’analyse linguistique et visualisez des mots dans l’espace d’incorporation de mots.
Set up et mise en place d’un environnement python
Le textual content
bundle met en place un environnement python pour accéder aux modèles de langage HuggingFace. La première fois après avoir installé le textual content
bundle, vous devez exécuter deux fonctions : textrpp_install()
et textrpp_initialize()
.
# Set up textual content from CRAN
set up.packages("textual content")
library(textual content)
# Set up textual content required python packages in a conda setting (with defaults)
textrpp_install()
# Initialize the put in conda setting
# save_profile = TRUE saves the settings so that you just do not need to run textrpp_initialize() once more after restarting R
textrpp_initialize(save_profile = TRUE)
Voir le information d’set up étendu pour plus d’informations.
Transformer le texte en mots incorporés
Le textEmbed()
La fonction est utilisée pour transformer du texte en incorporations de mots (représentations numériques du texte). Le mannequin
L’argument vous permet de définir le modèle de langage à utiliser à partir de HuggingFace ; si vous n’avez jamais utilisé le modèle auparavant, il téléchargera automatiquement le modèle et les fichiers nécessaires.
# Remodel the textual content information to BERT phrase embeddings
# Word: To run quicker, strive one thing smaller: mannequin = 'distilroberta-base'.
word_embeddings <- textEmbed(texts = "Good day, how are you doing?",
mannequin = 'bert-base-uncased')
word_embeddings
remark(word_embeddings)
Le mot plongement peut désormais être utilisé pour des tâches en aval telles que la formation de modèles pour prédire des variables numériques associées (par exemple, voir le textTrain() et textPredict() les fonctions).
(Pour obtenir une sortie de jeton et de couches individuelles, consultez le textEmbedRawLayers() fonction.)
Il existe de nombreux modèles de langage de transformateur chez HuggingFace qui peuvent être utilisés pour diverses tâches de modèle de langage telles que la classification de texte, l’analyse des sentiments, la génération de texte, la réponse aux questions, la traduction, and so forth. Le textual content
comprend des fonctions conviviales pour y accéder.
classifications <- textClassify("Good day, how are you doing?")
classifications
remark(classifications)
generated_text <- textGeneration("The which means of life is")
generated_text
Pour plus d’exemples de tâches de modèle de langage disponibles, par exemple, voir textSum(), textQA(), textTranslate()et textZeroShot() sous Tâches d’analyse linguistique.
Visualiser les mots dans le textual content
Le bundle est réalisé en deux étapes : d’abord avec une fonction pour pré-traiter les données, et ensuite pour tracer les mots, y compris en ajustant les caractéristiques visuelles telles que la couleur et la taille de la police. Pour illustrer ces deux fonctions, nous utilisons des exemples de données inclus dans le textual content
emballer: Language_based_assessment_data_3_100
. Nous montrons remark créer une determine bidimensionnelle avec des mots que les individus ont utilisés pour décrire leur harmonie dans la vie, tracés selon deux questionnaires de bien-être différents : l’échelle d’harmonie dans la vie et l’échelle de satisfaction à l’égard de la vie. Ainsi, l’axe des x montre les mots liés à une harmonie faible par rapport à une harmonie élevée dans les scores de l’échelle de vie, et l’axe des y montre les mots liés à une satisfaction faible par rapport à la satisfaction élevée avec les scores de l’échelle de vie.
word_embeddings_bert <- textEmbed(Language_based_assessment_data_3_100,
aggregation_from_tokens_to_word_types = "imply",
keep_token_embeddings = FALSE)
# Pre-process the info for plotting
df_for_plotting <- textProjection(Language_based_assessment_data_3_100$harmonywords,
word_embeddings_bert$textual content$harmonywords,
word_embeddings_bert$word_types,
Language_based_assessment_data_3_100$hilstotal,
Language_based_assessment_data_3_100$swlstotal
)
# Plot the info
plot_projection <- textProjectionPlot(
word_data = df_for_plotting,
y_axes = TRUE,
p_alpha = 0.05,
title_top = "Supervised Bicentroid Projection of Concord in life phrases",
x_axes_label = "Low vs. Excessive HILS rating",
y_axes_label = "Low vs. Excessive SWLS rating",
p_adjust_method = "bonferroni",
points_without_words_size = 0.4,
points_without_words_alpha = 0.4
)
plot_projection$final_plot
Cet article montre remark effectuer une analyse de texte de pointe dans R en utilisant le textual content
emballer. Le bundle vise à faciliter l’accès et l’utilisation des modèles de langage de transformateurs de HuggingFace pour analyser le langage naturel. Nous attendons avec impatience vos commentaires et vos contributions pour rendre ces modèles disponibles pour les functions scientifiques sociales et autres plus typiques des utilisateurs de R.
- Bommasani et al. (2021). Sur les opportunités et les risques des modèles de fondation.
- Kjell et al. (2022). Le bundle de texte : un bundle R pour analyser et visualiser le langage humain à l’aide du traitement du langage naturel et de l’apprentissage en profondeur.
- Liu et al (2019). Roberta : Une approche de préformation bert optimisée de manière robuste.
- Vaswaniet al (2017). L’consideration est tout ce dont vous avez besoin. Progrès dans les systèmes de traitement de l’data neuronale, 5998–6008
Corrections
Si vous voyez des erreurs ou si vous souhaitez suggérer des modifications, veuillez créer un problème sur le référentiel supply.
Réutilisation
Le texte et les figures sont sous licence Artistic Commons Attribution CC PAR 4.0. Le code supply est disponible sur https://github.com/OscarKjell/ai-blog, sauf indication contraire. Les chiffres qui ont été réutilisés à partir d’autres sources ne relèvent pas de cette licence et peuvent être reconnus par une notice dans leur légende : « Determine de … ».
Quotation
Pour l’attribution, veuillez citer ce travail comme
Kjell, et al. (2022, Oct. 4). Posit AI Weblog: Introducing the textual content bundle. Retrieved from https://blogs.rstudio.com/tensorflow/posts/2022-09-29-r-text/
Quotation BibTeX
@misc{kjell2022introducing, writer = {Kjell, Oscar and Giorgi, Salvatore and Schwartz, H Andrew}, title = {Posit AI Weblog: Introducing the textual content bundle}, url = {https://blogs.rstudio.com/tensorflow/posts/2022-09-29-r-text/}, 12 months = {2022} }