【问题标题】:Corpus reading from pdf OR text in R从 R 中的 pdf 或文本读取语料库
【发布时间】:2019-11-01 11:56:15
【问题描述】:

我有很多文件想在 R 中作为语料库阅读。所有的文件都是pdf,但最近,我意识到其中一些是txt。

在获得文本文件之前,我只是创建了目录中的 pdf 文件列表,并使用带有 readerControl 的 Corpus 函数读取它们:

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

我尝试创建 pdf 和 txt 的组合列表,但我找不到将 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。但由于我是文本挖掘的新手,我不确定这样做的最佳实践是什么。

【问题讨论】:

    标签: r tm corpus


    【解决方案1】:

    使用 readtext 包更简单。如果您的 .txt 和 .pdf 文件混合在同一个子目录中,请调用此 path_to_your_files/,然后您可以将它们全部读入,然后使用 readtext() 将它们制成 tm 语料库。此函数自动识别不同的输入文件类型并将它们转换为 UTF-8 文本,以便在 R 中进行文本分析。(此处创建的 rtext 对象是一种特殊类型的 data.frame,其中包括一个文档标识符列和一个名为 @987654325 的列@ 包含输入文档的转换文本内容。)

    rtext <- readtext::readtext("path_to_your_files/*")
    tm::Corpus(VectorSource(rtext[["text"]]))
    
    如果您想尝试 tm 的替代方法,

    readtext 对象也可以直接与 quanteda package 一起用作 quanteda::corpus() 的输入。

    【讨论】:

    • 这太棒了,肯!比我的第一种方法更通用。另外,我还将研究阅读文本:谢谢您的提示!
    猜你喜欢
    • 2015-06-29
    • 2019-02-27
    • 2017-08-26
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多