0

我最近正在尝试进行文本挖掘并查看代码,我了解了它试图对文本执行的操作。

但是问题出在代码的某些特定部分,我不知道为什么格式是这样的,以及参数是什么。那么你们对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"]]))

我的问题是:为什么在将 termDocumentMatrix 转换为矩阵时,我们在第三行需要两个“[]”

2)

filepath<-"C:/e"
cor.score<-if(length(grep("http|html",filepath))){cor.score<-Corpus(URISource(filepath))}else{score.cor <- generateSpeechDocCorpus(filepath)}

这句话试图查看文件路径是否为 URL,我理解使用“grep”来检查文件路径是否有字符串“http”或“html”,但是为什么我们需要在 grep 之外的句子“length”?我很困惑。并且对于代码中的最后一项:

generateSpeechDocCorpus(filepath),

我也可以使用

Corpus(DirSource(directory=filepath,encoding="ANSI"))

达到同样的目的。那么generateSpeechDocCorpus和Corpus有什么区别呢?

4

1 回答 1

1

(1) 在这里得到了很好的回答:The difference between [] and [[]] notations for access the elements of a list or dataframe

对于 (2),它只是一种速记方式——许多可能性之一,将 的输出grep转换为可以由 评估的逻辑if

> grep("a", "car")
[1] 1
> grep("a", "bbb")
integer(0)

grep就像which,它返回匹配的索引。如果没有匹配,它返回一个“空”向量。该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 
于 2014-06-09T06:21:19.403 回答