valores - Error al escribir el marco de datos en R
reemplazar valores perdidos en r (1)
Aquí hay una opción para una sola palabra
v1 <- numeric(length(All_files))
word <- "school"
df <- 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= paste0(path, "/tiff"), 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}
}
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))
}
-salida
df
# file_name Status pages words
#1 Amenities.pdf Not Present - -
#2 test.pdf Present test_2 school
Intento buscar una palabra del texto que extraigo del archivo pdf que está en formato OCR. Este archivo pdf tiene varias páginas, así que para cada página busco esa palabra, si esa palabra se encuentra, escriba el nombre del archivo , el estado (Presente o No Presente), la página en la que se encuentra y las palabras que ha encontrado. un marco de datos. Pero el marco de datos está dando el estado "Presente" para todos los archivos, solo quiero esto
file_name Status Page words
test1.pdf "Present" test1_2,test1_4 gym,school
test2.pdf "Not Present" - -
test3.pdf "Present" test3_1 gym
¿Qué me falta en este código?
aquí está el código
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()
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){
br=if(length(which(stri_detect_fixed(tolower(check),tolower(k)))) <= 0){ print("Not Present") } else {print("Present")}
if(br == "Present")
ps=k
x[[k]]=ps
tc=unlist(unique(x))
}
}
print(tc)
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,tc))
}
Cualquier sugerencia es apreciable.
Gracias