使用 TM 和 pdftools 时,utf8towcs 中的输入 'ðŸ'§' 无效



我的工作进展顺利,但由于我的一些pdf文件包含奇怪的符号("ðŸ"§(,我遇到了问题

我已经回顾了较早的讨论,但这些解决方案都没有奏效:R tm 包在"utf8towcs"中的输入无效

这是我到目前为止的代码:

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( 中的错误:'utf8towcs' 中的输入 'ðŸ'§' 无效

inspect(Comments.tdm[1:32,])
ap_td <- tidy(Comments.tdm)
write.csv(ap_td, file = "Terms 50.csv")

任何帮助都非常感谢。PS,此代码在其他 PDF 上完美运行。

再看一下前面的讨论。 这个解决方案终于对我有用:

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

记得遵循弗朗西斯科的指示:"乍得的解决方案对我不起作用。我将其嵌入到一个函数中,它给出了一个关于 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")

相关内容

  • 没有找到相关文章