问题描述
我想了解以下情况的实际区别:
- 使用功能
fcm(objectname # generate feature co-occurrence matrix
计算绝对频率。最后使用函数textplot_network()
进行绘图。 - 我阅读了诸如tidytextmining之类的教程,或由Andreas Niekler和Gregor Wiedemann编写的使用igraph或widyr软件包的教程。我想绘制相关的单词对。 受使用phi系数的tidytextmining教程的启发,我将根据lambda系数绘制此相关性。
我不知道如何用软件包Quanteda绘制相关的单词对。
我的想法是(也许不是一种有效的方法)进行计算
textstat_collocations()
并将其转换为小对象,并使用widyr软件包的功能对其进行绘制。
我的公开问题是:
如何将列并置分为两个单独的列,例如item1 item2和
添加选择列lambda并保存并分配给小对象?
> head(sotu_collocations,1)
collocation count count_nested length lambda z
1 smart city 229 0 2 9.846542 51.78172
解决方法
喜欢吗?如果您希望保留所有列,请删除select()
命令。
library("quanteda")
## Package version: 2.1.2
colls <- textstat_collocations(data_corpus_inaugural[1:5],size = 2)
head(colls)
## collocation count count_nested length lambda z
## 1 of the 98 0 2 1.494207 11.89704
## 2 has been 9 0 2 5.691667 11.61596
## 3 i have 15 0 2 3.754144 11.51091
## 4 may be 14 0 2 4.072366 11.43632
## 5 have been 10 0 2 4.679873 10.94315
## 6 we have 9 0 2 4.458284 10.35023
as.data.frame(colls) %>%
tidyr::separate("collocation",into = c("word1","word2"),sep = " ") %>%
dplyr::select(word1,word2,lambda) %>%
tibble::tibble()
## # A tibble: 678 x 3
## word1 word2 lambda
## <chr> <chr> <dbl>
## 1 of the 1.49
## 2 has been 5.69
## 3 i have 3.75
## 4 may be 4.07
## 5 have been 4.68
## 6 we have 4.46
## 7 foreign nations 6.32
## 8 it is 3.50
## 9 my country 4.49
## 10 united states 7.22
## # … with 668 more rows