我有一个很大的术语列表及其从文本文件加载的频率,我将其转换为表格:
myTbl = read.table("word_count.txt") # read text file
colnames(myTbl)<-c("term", "frequency")
head(myTbl, n = 10)
> head(myTbl, n = 10)
term frequency
1 de 35945
2 i 34850
3 \xe3n 19936
4 s 15348
5 cu 13722
6 la 13505
7 se 13364
8 pe 13361
9 nu 12693
10 o 11995
我应该添加一个带有单词排名的列,然后根据频率绘制排名,但是我该怎么做?
答案 0 :(得分:4)
使用tm
包会更容易,而不是滚动自己的计算。将myTbl转换为术语文档矩阵(tdm)
library(tm)
tdm <- TermDocumentMatrix(myTbl) # there are many more clean up steps, but I am simplifying
然后你不仅有Zipf,还有Heaps和plots来显示。
Zipf_plot(tdm)
Heaps_plot(tdm) # how vocabulary grows as size of text grows
或者,您可以使用qdap
包及其排名频率图。以下是小插曲的引用:
排名频率图是一种可视化单词排名的方式 与Zipf法律相关的频率,表明a的等级 单词与其频率成反比。 rank_freq_mplot和 rank_freq_plot提供绘制等级和频率的方法 单词(使用rank_freq_mplot通过对变量进行分组绘制) Rank_freq_mplot使用ggplot2包,而rank_freq_plot 采用基础图形。