J'ai couru à ce même problème. Je regardais à travers stackoverflow pour une solution et j'ai vu votre message. Après quelques essais et erreurs, j'ai trouvé le code suivant. Ça a bien marché pour moi. J'ai sorti toutes les infos supplémentaires. Pour trouver les valeurs d'index des scores que je cherchais, je l'ai d'abord couru pour un fichier et j'ai tiré le résumé de l'enveloppe de lisibilité. Ça va vous donner une table d'un tas de valeurs différentes. Faites correspondre la colonne avec la ligne et vous obtiendrez le numéro spécifique à rechercher. Il y a beaucoup d'options différentes.
Dans le répertoire path, vos fichiers doivent être des fichiers texte indépendants.
#Path
path="C:\\Users\\Philipp\\SkyDrive\\Documents\\Thesiswork\\ReadStats\\"
#list text files
ll.files <- list.files(path = path, pattern = "txt", full.names = TRUE);length(ll.files)
#set vectors
SMOG.score.vec=rep(0.,length(ll.files))
FleshKincaid.score.vec=rep(0.,length(ll.files))
FOG.score.vec=rep(0.,length(ll.files))
#loop through each file
for (i in 1:length(ll.files)){
#tokenize
tagged.text <- koRpus::tokenize(ll.files[i], lang="en")
#hyphen the word for some of the packages that require it
hyph.txt.en <- koRpus::hyphen(tagged.text)
#Readability wrapper
readbl.txt <- koRpus::readability(tagged.text, hyphen=hyph.txt.en, index="all")
#Pull scores, convert to numeric, and update the vectors
SMOG.score.vec[i]=as.numeric(summary(readbl.txt)$raw[36]) #SMOG Score
FleshKincaid.score.vec[i]=as.numeric(summary(readbl.txt)$raw[11]) #Flesch Reading Ease Score
FOG.score.vec[i]=as.numeric(summary(readbl.txt)$raw[22]) #FOG score
if (i%%10==0)
cat("finished",i,"\n")}
#if you wanted to do just one
df=cbind(FOG.score.vec,FleshKincaid.score.vec,SMOG.score.vec)
colnames(df)=c("FOG", "Flesch Kincaid", "SMOG")
write.csv(df,file=paste0(path,"Combo.csv"),row.names=FALSE,col.names=TRUE)
# if you wanted to write seperate csvs
write.csv(SMOG.score.vec,file=paste0(path,"SMOG.csv"),row.names=FALSE,col.names = "SMOG")
write.csv(FOG.score.vec,file=paste0(path,"FOG.csv"),row.names=FALSE,col.names = "FOG")
write.csv(FleshKincaid.score.vec,file=paste0(path,"FK.csv"),row.names=FALSE,col.names = "Flesch Kincaid")
Pouvez-vous préciser: sont ces rapports vraiment tableaux séparés avec une ligne-virgule initiale des rubriques (comme 'appel read.table' implique), ou sont-ils seulement des documents texte simples que vous essayez de lire . –
Aussi, avez-vous l'intention d'exécuter des appels 'koRpus' sur tous les fichiers concaténés ensemble, comme s'il s'agissait d'un gros fichier (donc vous obtenez un seul ensemble de résultats' koRpus') ou voulez-vous générer un ensemble de Résultats 'koRpus', un pour chaque fichier? –
@K. A. Buhr Mon répertoire contient des documents simples en texte brut. Je veux obtenir les résultats pour chaque fichier séparément, de sorte que je puisse les combiner à une table Excel avec les résultats plus tard. – In777