我写了一个小的R脚本。输入是文本文件(数千篇期刊文章)。我从文件名生成了元数据(包括出版年份)。现在我想计算每年的令牌总数。但是,我在这里没有任何进展。
# Metadata from filenames
rawdata_SPARA <- readtext("SPARA_paragraphs/*.txt", docvarsfrom = "filenames", dvsep="_",
docvarnames = c("Unit", "Year", "Volume", "Issue"))
# we add some more metadata columns to the data frame
rawdata_SPARA$Year <- substr(rawdata_SPARA$Year, 0, 4)
# Corpus
SPARA_corp <- corpus(rawdata_SPARA)
有人知道解决办法吗?
我使用了quanteda包的tokens_by函数,该函数似乎已经过时。
2条答案
按热度按时间dgiusagp1#
谢谢!我没能让你的脚本正常工作。但它启发了我开发一个替代解决方案:
pbgvytdp2#
您不需要将
substr(rawdata_SPARA$Year, 0, 4)
作为子字符串。在调用readtext
函数时,它会从文件名中提取年份。在下面的示例中,文件名具有类似EU_euro_2004_de_PSE.txt
的结构,并且2004
将自动插入readtext
对象中。由于它继承自data.frame
,因此您可以使用标准的数据操作函数,例如dplyr
包。然后
group_by
按年份,summarize
按代币,代币数量由quanteda
的ntoken
函数计算。请参见下面的代码:
输出: