我想计算大量我收集的推文的成对词频率。以便我可以在Gephi中使用它们进行可视化(网络图)。当前的数据看起来像这样(它是一个字符)。将大字符转换为格法字符R的文字频率矩阵
head(Tweet_text)
[1] "habits that separates successful persons from mediocre persons habit success startup entrepreneurship"
[2] "business entrepreneurship tech watch youtube star casey neistat ride a drone dressed as santa"
[3] "how to beat procrastination work deadlines workculture productivity management hr hrd entrepreneurship"
[4] "reading on entrepreneurship and startups and enjoying my latte"
[5] "not a very nice way to encourage entrepreneurship and in the same sentence dog another company"
[6] "us robotics founder on earlyday internet entrepreneurship articles management"
的结构如下:
str(Tweet_text)
chr [1:8661] "habits that separates successful persons from mediocre persons habit success startup entrepreneurship" ...
在该样本数据集,我有8661鸣叫。现在我想计算我可以输出到Gephi的所有这些推文上的成对词频率。最终的结果我找的是以下情况:
+------------------------+--------------+------+
| term1 | term 2 | Freq |
+------------------------+--------------+------+
| entrepreneurship | startup | 2 |
+------------------------+--------------+------+
于是我开始使用DocumentTermMatrix功能在TM封装:
dtm <- DocumentTermMatrix(Corpus(VectorSource(Tweet_text)))
这个工作(见下文中的“成功”的频率第一鸣叫):
inspect(dtm[1, c("success")])
<<DocumentTermMatrix (documents: 1, terms: 1)>>
Non-/sparse entries: 1/0
Sparsity : 0%
Maximal term length: 7
Weighting : term frequency (tf)
Terms
Docs success
1 1
在此之后我试图把这些频率中所需的表格式:
m<-as.matrix(dtm)
m[m>=1] <- 1
m <- m %*% t(m)
Dat_Freq <- as.data.frame(as.table(m))
但是现在第一个问题开始了,矩阵太大了。接下来,我不知道如何才能限制成对wordfrequencies到一个特定的价值。举例来说,一个对需要有一个> 10的频率,这样矩阵不会变大。
希望你的建议,我怎么能以csv格式获得这些成对频率。
一切顺利:)
谢谢Yannis P.!我以前不认识这本书,所以我一定会检查一下。我会评论,如果我找到了解决方案:)。是的,你说得对,我需要先清除停用词。 –
已经找到了一些时间来检查,并且tidytext库适用于成对词频率!感谢Yannis! –
似乎是在R –