【发布时间】:2022-01-14 23:33:41
【问题描述】:
我是 R 新手,我正在对多个 pdf 文件进行一些文本分析。 到目前为止,我已经设法绘制了 wordcloud 和条形图。但是,我还需要制作共现图或称为网络分析或链接图。任何人都可以帮助我指导如何将其应用于我当前的代码以及我应该使用什么库? 代码如下:
require(pdftools)# reads pdf documents
require(tm)#text mining analysis
require(wordcloud)
require(RColorBrewer)
files<-list.files(pattern = "pdf$")#create vector of pdf file names (i included the pdf files in the same foldr)
alcohol<-lapply(files, pdf_text) #loads all the files
length(alcohol)# check the number of files
lapply(alcohol, length) #check the length of each file
pdfdatabase <- Corpus(URISource(files), readerControl = list(reader = readPDF)) #crearing a pdf database
pdfdatabase <- tm_map(pdfdatabase, removeWords, stopwords("english"))
pdfdatabase <- tm_map(pdfdatabase, removeNumbers)
alcohol.tdm <- TermDocumentMatrix(pdfdatabase, control = list(removePunctuation = TRUE,
stopwords = TRUE,
tolower = TRUE,
streaming = FALSE,
removeNumbers = TRUE,
bounds = list(global = c(3, Inf))))
ft <- findFreqTerms(alcohol.tdm, lowfreq = 20, highfreq = Inf)
as.matrix(alcohol.tdm[ft,])
ft.tdm <- as.matrix(alcohol.tdm[ft,])
sort(apply(ft.tdm, 1, sum), decreasing = TRUE)
#find frequent terms
findFreqTerms(alcohol.tdm, lowfreq = 10)
#Examine frequent terms and their association
findAssocs(alcohol.tdm, terms = "sensor", corlimit = 0.5)
#convert term document matrix to data frame
m <- as.matrix(alcohol.tdm)
v <- sort(rowSums(m),decreasing = TRUE)
d <- data.frame(word = names(v), freq=v)
#create wrodcloud
set.seed(1234)
wordcloud(words = d$word, freq = d$freq, min.freq = 10,
max.words = 200, random.order = FALSE, rot.per = 0.35,
colors = brewer.pal(8, "Dark2"))
#Create Bar chart
barplot(d[1:11,]$freq, las = 2, names.arg = d[1:11,]$word,
col = "lightblue", main = "Most frequent words",
ylab = "Word freqencies")
提前致谢
a screen shot from the console after running the object ft.tdm
【问题讨论】:
-
请注意,RStudio 标记保留用于与 IDE 本身相关的问题,而不是与 R 编程语言相关的问题。选择前请阅读标签说明。在 RStudio 的情况下:它声明“不要将此标签用于一般的 R 编程问题,只需使用 R 标签。仅用于 RStudio 特定的问题”。
-
您是否关心某个单词在特定 pdf 中出现的频率(例如 tf/idf)还是共现只是一个二进制术语,例如是否在 pdf 中找到?
-
此外,我们需要对象
ft.tdm的示例数据,例如使用函数dput -
我不关心这个词在特定 pdf 中出现的频率;但是,我关心它在我包含的所有文档中出现的频率。基本上,我正在研究与一个主题相关的几篇已发表的文章
-
我刚刚在主要问题中附上了一个 ft.tdm 对象的示例。我只是在运行 ft.tdm 后截取了控制台的屏幕截图
标签: r text-mining