R: импортировать PDF и создать TermDocumentMatrix с именами файлов в качестве идентификатора - PullRequest
0 голосов
/ 25 февраля 2019

Я импортирую pdf в R, чтобы провести анализ текста.У меня есть несколько PDF-файлов, имена которых соответствуют их году публикации (одна публикация в год).

Я хотел бы создать TermDocumentMatrix после импорта их, для которого первый термин «документы» (т. Е. Первый столбец тдм) принимает год публикации, а не номер документа.Действительно, в тот момент, когда TDD присваивает им номера (1, 2, 3 и т. Д.), Когда я его создаю

Есть идеи как это сделать?Мой код ниже.

Спасибо!

#creates the list of pdf files to be picked up (from the working directory)
files <- list.files(pattern = "pdf$")

#read the pdf files from the list (number of pages in brackets in front)
new_files <- sapply(files, pdf_text)

#create corpus
new_corp <- Corpus(VectorSource(new_files))

IMF_tdm <- TermDocumentMatrix(new_corp, control = list(removePunctuation = TRUE,
                                                         stopwords = TRUE,
                                                         tolower = TRUE,
                                                         stemming = TRUE,
                                                         removeNumbers = TRUE,
                                                         bounds = list(global =c(2, Inf)))) 

1 Ответ

0 голосов
/ 25 февраля 2019

Попробуйте readtext https://cran.r -project.org / web / packages / readtext / vignettes / readtext_vignette.html , я использовал его в прошлом для чтения в текстовом и CSV-файлах, и этотакже может конвертировать и импортировать PDF-файлы.Он выведет информационный кадр с именем файла документа в одном столбце и весь текст документа в виде одной строки во втором столбце.

Вот пример виньетки с использованием некоторых файлов данных, распространяемых с библиотекой readtext:

## Read in Universal Declaration of Human Rights pdf files

(rt_pdf <- readtext(paste0(DATA_DIR, "/pdf/UDHR/*.pdf"), 
                    docvarsfrom = "filenames", 
                    docvarnames = c("document", "language"),
                    sep = "_"))

## readtext object consisting of 11 documents and 2 docvars.
## # data.frame [11 × 4]
##   doc_id           text                          document language
##   <chr>            <chr>                         <chr>    <chr>   
## 1 UDHR_chinese.pdf "\"世界人权宣言\n联合国\"..." UDHR     chinese 
## 2 UDHR_czech.pdf   "\"VŠEOBECNÁ \"..."           UDHR     czech   
## 3 UDHR_danish.pdf  "\"Den 10. de\"..."           UDHR     danish  
## 4 UDHR_english.pdf "\"Universal \"..."           UDHR     english 
## 5 UDHR_french.pdf  "\"Déclaratio\"..."           UDHR     french  
## 6 UDHR_greek.pdf   "\"ΟΙΚΟΥΜΕΝΙΚ\"..."           UDHR     greek   
## # ... with 5 more rows
...