2017-05-16 10 views
0

내 작업이 원활를 따라 가고 있었다 pdftools를 사용하지만 난 이상한 문자를 포함하는 내 PDF 파일의 일부로 인한 문제 발생 ("DY"§ ")입력이 잘못되었습니다 'DY'§ 'utf8towcs'에서 때 TM과

I을 기존의 논의를 검토하지만, 그 솔루션 아무도 일하지 않은 :에

setwd("E:/OneDrive/Thesis/Received comments document/Consultation 50") 
getwd() 
library(tm) 
library(NLP) 
library(tidytext) 
library(dplyr) 
library(pdftools) 
files <- list.files(pattern = "pdf$") 
comments <- lapply(files, pdf_text) 
corp <- Corpus(VectorSource(comments)) 
corp <- VCorpus(VectorSource(comments));names(corp) <- files 
Comments.tdm <- TermDocumentMatrix(corp, control = list(removePunctuation =  TRUE, 
                 stopwords = TRUE, 
                 tolower = TRUE, 
                 stemming = TRUE, 
                 removeNumbers = TRUE, 
                 bounds = list(global = c(3, Inf)))) 

결과 : .tolower 오류 (TXT) : 유효하지 않은 입력 'DY'§ ' R tm package invalid input in 'utf8towcs'

이 내 지금까지 코드 'utf8towcs'에서

inspect(Comments.tdm[1:32,]) 

ap_td <- tidy(Comments.tdm) 
write.csv(ap_td, file = "Terms 50.csv") 

도움을 주시면 감사하겠습니다. ps,이 코드는 다른 pdf에서 완벽하게 작동했습니다.

답변

0

이전 토론을 다시 살펴보십시오. 이 솔루션은 결국 나를 위해 일한 :

myCleanedText <- sapply(myText, function(x) iconv(enc2utf8(x), sub = "byte")) 

는 프란 시스 코의 지침에 따라 기억하십시오. "차드의 솔루션은 나를 위해 작동하지 않는 나는이 기능에 포함했다 그것은 입력으로 벡터를 neededing의 iconv에 대한 오류를주고 있었다 그래서 저는 코퍼스를 만들기 전에 변환 작업을하기로 결정했습니다. "

내 코드는 이제 다음과 같습니다

files <- list.files(pattern = "pdf$") 
comments <- lapply(files, pdf_text) 
comments <- sapply(comments, function(x) iconv(enc2utf8(x), sub = "byte")) 
corp <- Corpus(VectorSource(comments)) 

corp <- VCorpus(VectorSource(comments));names(corp) <- files 
Comments.tdm <- TermDocumentMatrix(corp, control = list(removePunctuation = TRUE, 
                 stopwords = TRUE, 
                 tolower = TRUE, 
                 stemming = TRUE, 
                 removeNumbers = TRUE, 
                 bounds = list(global = c(3, Inf)))) 

inspect(Comments.tdm[1:28,]) 

ap_td <- tidy(Comments.tdm) 
write.csv(ap_td, file = "Terms 44.csv")