R 如何计算quanteda中每天的单词比例?
考虑这个简单的例子R 如何计算quanteda中每天的单词比例?,r,quanteda,R,Quanteda,考虑这个简单的例子 tibble(text = c('a grande latte with soy milk', 'black coffee no room', 'latte is a latte', 'coke, diet coke'), myday = c(ymd('2018-01-01','2018-01-01','2018-01-03','2018-01-03'))) %>
tibble(text = c('a grande latte with soy milk',
'black coffee no room',
'latte is a latte',
'coke, diet coke'),
myday = c(ymd('2018-01-01','2018-01-01','2018-01-03','2018-01-03'))) %>%
corpus() %>%
tokens() %>%
dfm()
Document-feature matrix of: 4 documents, 14 features (71.4% sparse).
4 x 14 sparse Matrix of class "dfm"
features
docs a grande latte with soy milk black coffee no room is coke , diet
text1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
text2 0 0 0 0 0 0 1 1 1 1 0 0 0 0
text3 1 0 2 0 0 0 0 0 0 0 1 0 0 0
text4 0 0 0 0 0 0 0 0 0 0 0 2 1 1
我感兴趣的是得到单词coffee
的比例,按天聚合
也就是说,对于2018-01-01日,我们可以看到有10个单词(a
grande
latte
大豆牛奶黑咖啡
)和咖啡只提到一次。所以这个比例是1/10。前几天也是这样
在quanteda
中如何实现这一点?当然,这样做的目的是避免将稀疏矩阵具体化为稠密矩阵
谢谢 这很简单,也是quanteda设计决策的一部分,将文档从语料库对象传递到“下游”对象,如dfm。您可以使用dfm_group()
通过myday
docvar然后加权来解决此问题
首先,要使示例完全可复制,并为dfm对象指定名称:
库(“quanteda”)
##软件包版本:1.4.3
图书馆(“tibble”)
图书馆(“润滑”)
dfmat%
语料库()%>%
令牌()%>%
dfm()
现在只需两次操作即可获得所需的结果
dfmat2%
dfm_重量(方案=“道具”)
dfmat2
##文档特征矩阵:2个文档,14个特征(42.9%稀疏)。
##2 x 14类“dfm”的稀疏矩阵
##特征
##一杯大拿铁加豆浆黑咖啡没有房间了
## 2018-01-01 0.100 0.1 0.10 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0
## 2018-01-03 0.125 0 0.25 0 0 0 0 0 0 0 0.125
##特征
##可口可乐、减肥药
## 2018-01-01 0 0 0
## 2018-01-03 0.25 0.125 0.125
dfmat2[,“咖啡”]
##文档特征矩阵:2个文档,1个特征(50.0%稀疏)。
##“dfm”类的2 x 1稀疏矩阵
##特征
##博士咖啡
## 2018-01-01 0.1
## 2018-01-03 0