使用R汇总词频统计

Rwordseg是中文文本挖掘的常用包,可以进行分词。但是,Rwordseg并未提供词频统计的功能,需要用户具体实现。本文提供了进行词频统计的简单代码。

例子

经爬虫得到的某电商网站某类商品的评论。使用wc进行字数统计:

1
2
3
wc text.txt  
    
 # 0  121467 4694908

使用Rwordseg进行分词

1
2
3
4
5
library(Rwordseg)  
require(Rwordseg)  
  
text <- readLines("text.txt") #输入  
seg <- unlist(segmentCN(text)) #使用segmentCN进行分词

##使用R代码汇总词频统计

1
2
3
4
5
tag <- table(seg)  
tbldf <- as.data.frame(tag)  
freqord <- order(tbldf$Freq, decreasing=TRUE) #数据汇总   final <- tbldf[freqord,][1:length(tag),] #最终结果  

write.table(final, "final.csv", sep=",") #输出

查看分词时间

1
2
3
4
system.time(seg <- unlist(segmentCN(text)))
    
 #  user  system  elapsed   
 # 21.074   0.149  20.594

可见,对约135万字的文本进行挖掘需要约20秒。(OS X 10.9, i7, 16G)

杂项

  • 代码中的数据汇总方法使用了Norman Matloff “The Art of R Programming” pp134-6的方法。

  • 分词后使用Python进行统计也是可以的,具体方法有待研究。(需使用Pandas。)