[R-es] Consulta
BERENICE DOMINGUEZ SANCHEZ
d@_bere @end|ng |rom hotm@||@com
Mar Sep 24 01:49:23 CEST 2019
Buenas tarde a todo using s:
Tenia la versión de R 3.6 y utilizaba la paquetería de pdftools para extraer información de archivos en pdf actualice la versión 3.6.1 y ya no reconoce la paquetería alguien que me pueda ayudar. Prácticamente no reconoce las funciones de pdftools
library(pdftools)
library(stringr)
library(NLP)
library(tm)
library(tesseract)
library(magick)
install.packages("magick")
install.packages("pdftools")
txt <- system.file("texts", "txt", package = "tm")
rfc_rg <- "([A-Z]{3,})([0-9]{6})([A-Z]|[0-9]){0,3}"
#poliza_rg <- "(34|36|37|39)(ME|MEC|CH|MB|TF|GI|VE|TS|IM|ER|VE)*([0-9]{6,})[-]([0-9]){2}[-][A-Z]"
poliza_rg <- "(ME|CH|MB|TF|GI|gi|VE|TS|IM|ER|VE)*([0-9]{8,})[-]([0-9]){2}"
registro_rg <- "(CNSF-H0711-)([0-9]{4})[- ]([0-9]){4}"
subgrupo_rg <- "_([0-9]){1,3}."
mon_rg <- "SMGM|UMAM|MN"
ruta <- 'C:/Users/bdominguez/Documents/H0711/Bond/1909/'
archivos<-list.files(path=ruta,pattern = '*.pdf')
imagen <- image_read_pdf(path=paste(ruta,"/",nombre,".pdf",sep=""))
prueba <-image_ocr(imagen, language = 'eng')
lineas<-unlist(str_split(prueba,pattern = "\n"))
lineasp<-unlist(str_split(prueba[2],pattern = "\r\n"))
newnom <- NULL
renglones <- NULL
for (nombre in archivos){
subgrupo <- str_extract(str_extract(nombre,pattern = subgrupo_rg),pattern = "[0-9]{1,3}")
imagen <- image_read_pdf(path=paste(ruta,"/",nombre,".pdf",sep=""))
prueba <-image_ocr(imagen, language = 'eng')
lineas<-unlist(str_split(prueba,pattern = "\n"))
poliza <- NULL
poliza<-str_extract(lineas[1],poliza_rg)
newnom <- c(newnom,paste(poliza[1],substr(nombre,5,6),".pdf",sep=''))
registro <- NULL
registro<-str_extract(lineas[49],registro_rg)
rfc <- NULL
rfc <- str_extract(lineas[5],rfc_rg)
#lineasnew<-unlist(str_split(lineas[2],pattern = "\r\n"))
#lineasdosnew<-unlist(str_split(lineas[1],pattern = "\r\n"))
cobertura <- NA
extranjera <- NA
suma_str <- NA
deducible_str <- NA
suma <- NA
coaseguro <- NA
deducible <- NA
tope <- NA
mon <- NA
mondedu <- NA
cobertura <- grep("Cobertura en el Extranjero",lineas,value=TRUE)
extranjera <- grep("Emergencia en el Extranjero",lineas,value=TRUE)
suma_str <- grep("SUMA ASEGURADA:",lineas,value=TRUE)
deducible_str <- grep("DEDUCIBLE:",lineas,value=TRUE)
sumacob <- NA
sumaext <- NA
pprimaria <- grep("Numero de Póliza:", lineas, value = TRUE)
dnprimariaa <- grep("Nombre de la Aseguradora Primaria:", lineas, value = TRUE)
#cer<- grep("Certificado No. ",lineas, value=TRUE)
#ntit<- grep("Ramo", lineas, value=TRUE)
sumacob<-as.numeric(str_extract(cobertura[1],pattern = "[0-9]{1,}"))
if (length(sumacob)==0){
sumacob = NA
}
sumaext<-as.numeric(str_extract(extranjera[17],pattern = "[0-9]{1,}"))
if (length(sumaext)==0){
sumaext = NA
}
valores <- NULL
monedas <- NULL
valores <- str_extract_all(suma_str[17],pattern = "[0-9]{0,3},*[0-9]{0,3},*[0-9]{1,3}(.[0-9]{1,}){0,1}",simplify=TRUE)
monedas <- str_extract(suma_str,pattern = mon_rg)
if (length(valores[1])==0){
suma = NA
mon = NA
}else{
suma = as.numeric(gsub(pattern = ",*",replacement = "",valores[1]))
mon <- as.character(monedas[1])
}
if (length(valores[2])==0){
coaseguro = NA
}else{
coaseguro = as.numeric(valores[2])
}
valores <- NULL
valores <- str_extract_all(deducible_str[1],pattern = "[0-9]{0,3},*[0-9]{0,3},*[0-9]{1,3}(.[0-9]{1,}){0,1}",simplify=TRUE)
if (length(valores[1])==0){
deducible <- NA
}else{
deducible <- as.numeric(gsub(pattern = ",",replacement = "",valores[1]))
}
monedas <- NULL
monedas <- str_extract(deducible_str[1],pattern = mon_rg)
if (length(monedas)==0){
mondedu <- NA
}else{
mondedu <- monedas
}
if (length(valores[2])==0){
tope = NA
}else{
tope = as.numeric(gsub(pattern = ",",replacement = "",valores[2]))
}
renglon <- data.frame(archivo=nombre,poliza=as.character(poliza[1]),cobertura=sumacob,emergencia=sumaext,registro=registro[1],suma=suma,coaseguro=coaseguro,deducible=deducible,tope=tope,rfc=rfc,mon=mon,mondedu=mondedu,subgrupo=subgrupo, cert=as.character(cer[1]), cer_tit=as.character(lineasdos[14]), titu=as.character(lineasdos[10]))
renglones <- rbind(renglones,renglon)
}
# Con los datos del data frame renombra los archivos hay que crear los subdirectorios
noms <- data.frame(archivo=archivos,poliza=newnom)
noms <- renglones[!is.na(renglones$poliza),c('archivo','cer_tit')]
ungrupo<-sqldf("select poliza,count(cert) from noms group by 1 having count(cert) <= 1 ")
noms<-sqldf("select * from noms where poliza in (select poliza from ungrupo)")
length(noms$archivo)
salida <- "/renombra/"
for (i in 1:length(noms[,1])){
if (!is.na(noms[i,'cer_tit'])){
pfrom <- paste(ruta,"/",noms[i,'archivo'],sep='')
pto <- paste(ruta,salida,noms[i,'cer_tit'],'.pdf',sep='')
if (!file.exists(pto)){
file.copy(from = pfrom,to=pto)
}
}
}
#Ahora las polizas con subgrupos
noms <- renglones[!is.na(renglones$poliza),c('archivo','poliza','subgrupo')]
ungrupo<-sqldf("select poliza,count(subgrupo) from noms group by 1 having count(subgrupo) > 1 ")
noms<-sqldf("select * from noms where poliza in (select poliza from ungrupo) order by poliza")
length(noms$archivo)
salida <- "/Renombra/ConGrupos/"
for (i in 1:length(noms[,1])){
if (!is.na(noms[i,'poliza'])){
pfrom <- paste(ruta,"/",noms[i,'archivo'],sep='')
pto <- paste(ruta,salida,noms[i,'poliza'],'_',noms[i,'subgrupo'],'.pdf',sep='')
if (!file.exists(pto)){
file.copy(from = pfrom,to=pto)
}
}
}
salida <- "/Renombra/Grupos/"
dirActual <- getwd()
polizas_con_grupos <- as.character(sqldf("select poliza from ungrupo")$poliza)
setwd(ruta)
for (policita in polizas_con_grupos){
archivos <- as.character(sqldf(paste("select archivo from renglones where poliza like '%",policita,"%'",sep=''))$archivo)
staple_pdf(input_files = archivos,output_filepath = paste(ruta,salida,policita,".pdf",sep=''))
}
setwd(dirActual)
#Ahora los PDf sin poliza
noms <- renglones[is.na(renglones$poliza),c('archivo','poliza')]
salida <- "/renombra/SinPoliza/"
for (i in 1:length(noms[,1])){
pfrom <- paste(ruta,"/",noms[i,'archivo'],sep='')
pto <- paste(ruta,salida,noms[i,'archivo'],sep='')
if (!file.exists(pto)){
file.copy(from = pfrom,to=pto)
}
}
View(renglones)
write.csv(renglones, file='//192.168.1.83/share/CERT/CERTIFICADOS_INDIVIDUALES_295_UMAM/Renombra/CERTIFICADOS_INDIVIDUALES_295_UMAM.csv')
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es