Je suis en train de traiter un fichier PDF OCR et d'en extraire du texte pour en créer une trame de données. Ce que je reçois est vectoriel et je n'arrive pas à les concaténer. une seule ligne afin qu'elle puisse être ajoutée en tant que colonne à une trame de données. de ce morceau de code que j'extraire la colonne pour mon dataframeErreur lors de l'ajout d'une colonne à une trame de données
chk_words=c("Swimming pool","Gym","west","para")
tp_big=c("swimming pool in a farm","gym","west","north","south")
ps=c()
x=list()
for(i in chk_words){
br=if(length(which(stri_detect_fixed(tolower(tp_big),tolower(i)))) <= 0){ print("Not Present") } else {print("Present")}
if(br == "Present")
ps=i
x[[i]]=ps
tc=unlist(unique(x))
x=paste(tc,collapse=" ")
}
df11=data.frame(x)
I get sortie (dataframe) comme
x
Swimming pool Gym west
mais lorsque je tente de mettre en œuvre le même code ci-dessus dans ce grand code que je suis pas en mesure d'obtenir la colonne désirée « x » ce est toute partie de code
library(pdftools)
library(tesseract)
library(stringi)
library(TraMineRextras)
All_files=Sys.glob("*.pdf")
v1 <- numeric(length(All_files))
chk_words=c("Swimming pool","Gym","west","para")
word <- "Gym"
tc=c()
ps=c()
x=list()
df <- data.frame()
df11 <- data.frame()
Status="Present"
for (i in seq_along(All_files)){
file_name <- All_files[i]
cnt <- pdf_info(All_files[i])$pages
print(cnt)
for(j in seq_len(cnt)){
img_file <- pdftools::pdf_convert(All_files[i], format = 'tiff', pages = j, dpi = 400)
text <- ocr(img_file)
ocr_text <- capture.output(cat(text))
check <- sapply(ocr_text, paste, collapse="")
junk <- dir(path="D:/Deepesh/R Script/All_PDF_Files/Registration_Certificates_OCR", pattern="tiff")
file.remove(junk)
br <-if(length(which(stri_detect_fixed(tolower(check),tolower(word)))) <= 0) "Not Present"
else "Present"
print(br)
if(br=="Present") {
v1[i] <- j
break}
for(k in chk_words){
sr=if(length(which(stri_detect_fixed(tolower(check),tolower(k)))) <= 0){ print("Not Present") } else {print("Present")}
if(sr == "Present")
ps=k
x[[k]]=ps
tc=unlist(unique(x))
}
}
y=paste(tc,collapse=" ")
#tc=paste(tc,collapse=" ")
Status <- if(v1[i] == 0) "Not Present" else "Present"
pages <- if(v1[i] == 0) "-" else
paste0(tools::file_path_sans_ext(basename(file_name)), "_", v1[i])
words <- if(v1[i] == 0) "-" else word
df <- rbind(df, cbind(file_name = basename(file_name),
Status, pages = pages, words = words,y))
}
en ce moment, je reçois la sortie comme celui-ci (y donne la valeur NULL)
pages d'état file_name mots y test1.pdf Présent test1_1 gymnase
test2.pdf Non Présent - Ce que j'Expect est
file_name status pages words y
test1.pdf Present test1_1 gym swimming pool, gym
test2.pdf Not Present -
Toute suggestion où je m qui ne va pas. Merci d'avance.
P.S here est l'accès à des fichiers pdf d'exemple; plus de clarté est mentionné dans this post
Mise à jour du message avec votre réponse, mais toujours impossible d'obtenir la colonne "THIRD_COL" correctement. – deepesh
Vous devez déboguer votre code parce que vous l'avez mis sous deux boucles imbriquées et si une instruction. Je ne vois aucune raison pour laquelle mon bloc de code ne fonctionnerait pas. – Santosh
Vous ne trouvez encore rien sur le code que j'ai implémenté – deepesh