r - 每项频率 - R TM DocumentTermMatrix

标签 r tm term-document-matrix

我对 R 很陌生,无法完全理解 DocumentTermMatrixs。我有一个用 TM 包创建的 DocumentTermMatrix,它有术语频率和里面的术语,但我不知道如何访问它们。

理想情况下,我希望:

    Term  # 
    "the" 200 
    "is"  400 
    "a"   200 

目前我的代码是:
    library(tm)
    common.words <- c("amp","@RT","I","http","https", stopwords("english"), "you")
    x <- Corpus(VectorSource(results)) 
    x <- tm_map(x, stripWhitespace) 
    x <- tm_map(x, removeNumbers) 
    x <- tm_map(x, removePunctuation) 
    x <- tm_map(x, stripWhitespace)

    dtm <- DocumentTermMatrix(x)
    for(i in 1:length(common.words)) {
    dtm <- dtm[,!colnames(dtm)%in%c(common.words[i])]
    }

这是 str(dtm) 的输出
   List of 6
   $ i       : int [1:9769] 1 1 1 1 1 1 1 1 2 2 ...
   $ j       : int [1:9769] 1596 1684 1858 2112 2175 2490 2714 2814 873 961 ...
   $ v       : num [1:9769] 1 1 2 1 1 2 1 1 1 1 ...
   $ nrow    : int 1477
   $ ncol    : int 3201
   $ dimnames:List of 2
   ..$ Docs : chr [1:1477] "1" "2" "3" "4" ...
   ..$ Terms: chr [1:3201] "\u0093\u0085a" "aardvark" "aaron" "abbie" ...
    - attr(*, "class")= chr [1:2] "DocumentTermMatrix" "simple_triplet_matrix"
    - attr(*, "Weighting")= chr [1:2] "term frequency" "tf"

谢谢,

-一种

最佳答案

它似乎是数据的稀疏矩阵组织。频率似乎在“v”列表中,您可以通过在“条款”属性中查找术语的位置来获得该频率。为什么不提供dput(head(results, 30))所以您的代码(和您的 SO 受众)将有一些工作要做?在浏览了包中的示例之后,我怀疑您实际上想要以下内容:

tdm <- TermDocumentMatrix(x)
z <- inspect( tdm[ c("the", "is", "a"), dimnames(tdm)$Docs] )
rowSums(z)

关于r - 每项频率 - R TM DocumentTermMatrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14426925/

相关文章:

r - 如何一次替换多个值

r - 使用 tidytext 和 broom 但没有找到 LDA_VEM 的 tidier

r - 将 igraph 对象的子集作为边的名称

只删除数字但在 R 中保留像 "3D"这样的词?

r - 使用 R 和术语文档矩阵创建频率表

r - 将漂亮的 data.frames/tables 打印到控制台

r - 如何使用 quanteda 引导文本可读性统计?

r - 如何使用 stemCompletion 函数(tm 包)从字典中完成词干语料库

r - 大文本语料库打破了tm_map

R - 缓慢地对有序因子进行排序