R 文本挖掘PDF-将字符向量(字符串)列表转换为数据帧

R 文本挖掘PDF-将字符向量(字符串)列表转换为数据帧,r,dataframe,text-mining,R,Dataframe,Text Mining,我正在使用文本挖掘软件包将一组PDF文档读入纯文本,我想将这些纯文本导出到dataframe/CSV/text文件中 (以便于使用RTextTools进行进一步分析) 首先,我使用tm软件包将PDF文档拉入VCorpus。tm包的VCorpus对象存储包含元数据和明文的“明文文档”和“TextDocument”对象的列表。即“元数据:DocumentName1”。。。还有内容,“X的术语是……” 产生这个输出 [16] “目录” [17] “页面” [18] “” [19] “缔约方” [20]

我正在使用文本挖掘软件包将一组PDF文档读入纯文本,我想将这些纯文本导出到dataframe/CSV/text文件中 (以便于使用RTextTools进行进一步分析)

首先,我使用tm软件包将PDF文档拉入VCorpus。tm包的VCorpus对象存储包含元数据和明文的“明文文档”和“TextDocument”对象的列表。即“元数据:DocumentName1”。。。还有内容,“X的术语是……”

产生这个输出

[16] “目录”
[17] “页面”
[18] “”
[19] “缔约方”
[20] “”
[21]“5”
. .

[379]“附属公司”的意思是:“
[380]“(a)” [381]“”
[382]“任何一方直接或间接持有绝对股份的公司或任何其他实体”
[383]“股东的多数票”™ 满足或持有超过百分之五十(50%)的权利“
[384]“以及授予该公司或实体管理权或具有”

[385]“对此类公司或实体的管理和控制;”

这应该可以做到:

#dummy data generation: file names and a list of strings (your corpus)    
files <- paste("file", 1:6)

strings <- list("a","b","c", "d","e","f")
names(strings) <-files
t(as.data.frame(unlist(strings)))

#             file 1 file 2 file 3 file 4 file 5 file 6
# unlist(strings) "a"    "b"    "c"    "d"    "e"    "f"  
#虚拟数据生成:文件名和字符串列表(您的语料库)

文件这应该可以做到:

#dummy data generation: file names and a list of strings (your corpus)    
files <- paste("file", 1:6)

strings <- list("a","b","c", "d","e","f")
names(strings) <-files
t(as.data.frame(unlist(strings)))

#             file 1 file 2 file 3 file 4 file 5 file 6
# unlist(strings) "a"    "b"    "c"    "d"    "e"    "f"  
#虚拟数据生成:文件名和字符串列表(您的语料库)

文件这应该可以工作,但出于某种原因,我得到documentname.pdf1 |“The”,documentname.pdf2 |“reason”,documentname.pdf3 |“that”。不知道为什么它觉得有必要这样分割文本。我似乎得到了由空格或换行符分隔的单个字符串标记,而不是每个文档的语料库中的完整文档文本。你认为哪里出了问题?(如果没有出现这种情况,此解决方案确实有效。)请编辑您的帖子,以包含数据样本。这应该有效,但出于某种原因,我得到了documentname.pdf1 |“The”、documentname.pdf2 |“reason”、documentname.pdf3 |“that”。不知道为什么它觉得有必要这样分割文本。我似乎得到了由空格或换行符分隔的单个字符串标记,而不是每个文档的语料库中的完整文档文本。你认为哪里出了问题?(如果没有发生这种情况,这个解决方案确实有效。)请编辑您的帖子,以包含您的数据样本。
df <- data.frame(text = sapply(docs, as.character), stringsAsFactors = FALSE)
    ^Error during wrapup: arguments imply differing number of rows: 1, 5, 3, 3889, 3366
 strings[3] 
#dummy data generation: file names and a list of strings (your corpus)    
files <- paste("file", 1:6)

strings <- list("a","b","c", "d","e","f")
names(strings) <-files
t(as.data.frame(unlist(strings)))

#             file 1 file 2 file 3 file 4 file 5 file 6
# unlist(strings) "a"    "b"    "c"    "d"    "e"    "f"  
files <- paste("file", 1:6)

strings <- list(c("a","b"),c("c", "d"),c("e","f"),
                c("g","h"), c("i","j"), c("k", "l"))

names(strings) <-files
t(data.frame(Doc=sapply(strings, paste0, collapse = " "))) 

#     file 1 file 2 file 3 file 4 file 5 file 6
# Doc "a b"  "c d"  "e f"  "g h"  "i j"  "k l"