Je suis l'auteur de qdap. La fonction polarity
a été conçue pour des ensembles de données beaucoup plus petits. Comme mon rôle a changé, j'ai commencé à travailler avec des ensembles de données plus volumineux. J'avais besoin de rapidité et de précision (ces deux choses sont en opposition) et j'ai développé depuis un package de rupture sentimentr. L'algorithme est optimisé pour être plus rapide et plus précis que qdap. En l'état actuel des choses, vous disposez de 5 dictionnaires basés sur des dictionnaires (ou basés sur des algorithmes formés) pour la détection des sentiments. Chacun a ses inconvénients (-) et plus (+) et est utile dans certaines circonstances.
- qdap + sur CRAN; -slow
- syuzhet + sur CRAN; + rapide + super complot; -moins précis sur une utilisation autre que littéraire
- sentimentr + rapide; + précision plus élevée; -GitHub seulement
- stansent (stanford port) + le plus précis; -slower
- tm.plugin.sentiment -archivé sur CRAN; -Je ne pouvais pas le faire fonctionner facilement
Je montre des tests de temps sur les données d'échantillon pour les 4 premiers choix de ci-dessus dans le code ci-dessous.
Installer des packages et faire des fonctions de synchronisation
J'utilise pacman, car il permet au lecteur de courir tout le code; si vous pouvez remplacer par install.packages
& library
appels.
if (!require("pacman")) install.packages("pacman")
pacman::p_load(qdap, syuzhet, dplyr)
pacman::p_load_current_gh(c("trinker/stansent", "trinker/sentimentr"))
pres_debates2012 #nrow = 2912
tic <- function (pos = 1, envir = as.environment(pos)){
assign(".tic", Sys.time(), pos = pos, envir = envir)
Sys.time()
}
toc <- function (pos = 1, envir = as.environment(pos)) {
difftime(Sys.time(), get(".tic", , pos = pos, envir = envir))
}
id <- 1:2912
minutage
## qdap
tic()
qdap_sent <- pres_debates2012 %>%
with(qdap::polarity(dialogue, id))
toc() # Time difference of 18.14443 secs
## sentimentr
tic()
sentimentr_sent <- pres_debates2012 %>%
with(sentiment(dialogue, id))
toc() # Time difference of 1.705685 secs
## syuzhet
tic()
syuzhet_sent <- pres_debates2012 %>%
with(get_sentiment(dialogue, method="bing"))
toc() # Time difference of 1.183647 secs
## stanford
tic()
stanford_sent <- pres_debates2012 %>%
with(sentiment_stanford(dialogue))
toc() # Time difference of 6.724482 mins
Pour en savoir plus sur les horaires et la précision voir mon sentimentr README.md et s'il vous plaît étoiles repo si elle est utile.Le savoir ci-dessous capture l'un des tests du README:
Je suis d'accord avec Tyler, j'ai eu de bons résultats avec syuzhet sur des ensembles très grand nombre de morceaux de texte de taille extrait/examen. – Awhstin
Merci @Tyler Rinker pour l'analyse détaillée de divers paquets de sentiments. Juste maintenant vérifié le paquet sentimentr créé par vous. C'est exactement ce dont j'avais besoin. Mais j'ai besoin de la liste des mots positifs et des mots négatifs de chaque phrase. Je recevais ceci tout en utilisant qdap, alors que sentimentr ne renvoie que le nombre de mots. Est-il possible de les obtenir en utilisant sentimentr? – VenuSathya20
@ VenuSathya20 non ça n'avait plus de sens pour moi. Puis-je demander ce que vous voulez faire avec eux? –