首页 > 解决方案 > 报告语料库文档中的平均字符数

问题描述

所以我有一个语料库设置读取一堆带有段落的文本文件。

    library('tm')
my.text.location <- "C:/Users//.../*/"
apapers <- VCorpus(DirSource(my.text.location))

现在我需要找到每个文本中字符的平均值。运行 a mean(nchar(apapers), na.rm =T)会导致非常奇怪的输出,超过字符数。有什么其他的方法来获得平均值吗?

标签: rrstudiomeantext-mining

解决方案


您没有提供可重现的示例,但rowMeans(sapply(apapers, nchar))将返回所有文档的平均字符数。“内容”是您需要的列。

更长的版本是在语料库上运行 sapply,计算每个文档的数量。转置这些数据并将其转换为 data.frame。data.frame 将包含两列,内容和元。内容是您需要的。取内容列的平均值将为您提供文档中的平均字符数。这样做的好处是您有表格,以防您需要报告数字。

# your code
my_count <- data.frame(t(sapply(apapers, nchar)))
mean(my_count$content)

使用原始数据集的可重现示例:

library(tm)
data("crude")
crude <- as.VCorpus(crude)

# in one statement
rowMeans(sapply(crude, nchar))
    content    meta 
    1220.30  453.15

# longer version keeping intermediate results.
my_count <- data.frame(t(sapply(crude, nchar)))
mean(my_count$content)
[1] 1220.3

my_count
    content meta
127     527  440
144    2634  458
191     330  444
194     394  441
211     552  441
236    2774  455
237    2747  477
242     930  453
246    2115  440
248    2066  466
273    2241  458
349     593  492
352     621  468
353     591  445
368     629  440
489     876  445
502    1166  446
543     463  447
704    1797  456
708     360  451

推荐阅读