我正在尝试最近进行文本挖掘并查看代码,我可以全面了解它正在尝试对文本做些什么。
但问题在于代码的某些特定部分,我不知道为什么格式是这样的,以及参数是什么。那么你们有关于R语言的参考书或书籍的一些建议,以便我可以检查这个函数的用途和参数的解释是什么?
以下是文本挖掘中的几个问题,如果你们也可以帮助回答它们,请欣赏它:)
1)
cand=c("Romney","Obama")
tdm<-list(name=cand,tdm=s.tdm) #s.tdm is TermDocumentMatrix of a text.
tdm.dm<-t(data.matrix(tdm[["tdm"]]))
我的问题是:为什么我们需要两个&#34; []&#34;在第三行中将termDocumentMatrix转换为矩阵
2)
filepath<-"C:/e"
cor.score<-if(length(grep("http|html",filepath))){cor.score<-Corpus(URISource(filepath))}else{score.cor <- generateSpeechDocCorpus(filepath)}
这句话试图查看文件路径是否为URL,我理解使用&#34; grep&#34;检查文件路径是否有字符串&#34; http&#34;或者&#34; html&#34;,但为什么我们需要句子&#34;长度&#34;外面的grep?我很迷惑。 AND代码中的最后一个术语:
generateSpeechDocCorpus(filepath),
我也可以使用
Corpus(DirSource(directory=filepath,encoding="ANSI"))
达到同样的目的。那么generateSpeechDocCorpus和Corpus之间的区别是什么?
答案 0 :(得分:1)
(1)在这里得到了很好的回答:The difference between [] and [[]] notations for accessing the elements of a list or dataframe
对于(2),它只是一种速记方式 - 许多可能性之一,将grep
的输出转换为可由if
评估的逻辑。
> grep("a", "car")
[1] 1
> grep("a", "bbb")
integer(0)
grep
与which
类似,它返回匹配的索引。如果没有匹配,则返回&#34;空&#34;向量。 if
语句只是想检查是否有任何URL。没有URL意味着grep返回integer(0)
,其长度为0,如果需要FALSE
,则0转换为logical
。
> as.logical(0)
[1] FALSE
> as.logical(1)
[1] TRUE
> as.logical(7)
[1] TRUE