Сообщите о среднем количестве символов в корпусном документе - PullRequest
0 голосов
/ 14 сентября 2018

Итак, у меня есть набор настроек для чтения текстового файла с параграфами в них.

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

Теперь мне нужно найти среднее значение символов в каждом тексте.Выполнение mean(nchar(apapers), na.rm =T) приводит к очень странному выводу, превышающему количество символов.Любой другой способ получить среднее?

1 Ответ

0 голосов
/ 14 сентября 2018

Вы не предоставили воспроизводимый пример, но rowMeans(sapply(apapers, nchar)) вернет среднее количество символов для всех документов. «Содержимое» - это столбец, который вам нужен.

Более длинная версия работает на корпусе, считая количество документов на документ. Транспонировать эти данные и превратить их в data.frame. Data.frame будет содержать два столбца, content и meta. Контент - это то, что вам нужно. Взяв среднее значение столбца содержимого, вы получите среднее количество символов в документе. Преимущество этого в том, что у вас есть таблица на случай, если вам нужно будет сообщить цифры.

# 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
...