Чтение корпуса из pdf или текст в R - PullRequest
1 голос
/ 18 июня 2019

У меня есть большой список файлов, которые я хочу прочитать в R как корпус. Все файлы были в формате pdf, но недавно я понял, что некоторые из них будут в формате txt.

До того, как у меня были текстовые файлы, я просто создавал список PDF-файлов, которые находятся в каталоге, и читал их, используя функцию Corpus с readerControl:

getwd()
files <- list.files(pattern = "pdf$")
corp <- Corpus(URISource(files),
               readerControl = list(reader = readPDF))

Я пытался создать комбинированный список файлов pdf и txts, но не могу найти способ использовать readerContrl для файлов pdf или txt:

files1 <- list.files(pattern = "pdf$")
files2 <- list.files(pattern = "txt$")
files<-c(files1,files2)

corp <- Corpus(URISource(files),
               readerControl = list(reader = c(readPDF,readPlain)))

Есть идеи, как решить эту проблему? Я думал о слиянии двух элементов Copuses, один, который reader = readPDF, другой, который reader = readPlain. Но так как я новичок в области интеллектуального анализа текста, я не уверен, что лучше всего делать это.

1 Ответ

1 голос
/ 24 июня 2019

Сделайте это проще, используя пакет readtext . Если ваше сочетание файлов .txt и .pdf находится в одном и том же подкаталоге, назовите это path_to_your_files/, затем вы можете прочитать их все, а затем превратить в tm Корпус, используя readtext(). Эта функция автоматически распознает различные типы входных файлов и преобразует их в текст UTF-8 для анализа текста в R. (Созданный здесь объект rtext представляет собой специальный тип data.frame, который включает столбец идентификатора документа и столбец с именем text содержит преобразованное текстовое содержимое ваших входных документов.)

rtext <- readtext::readtext("path_to_your_files/*")
tm::Corpus(VectorSource(rtext[["text"]]))

readtext объекты могут также использоваться напрямую с quanteda package в качестве входных данных для quanteda::corpus(), если вы хотите попробовать альтернативу tm .

...