计算特定单词的使用次数
Count how many times specific words are used
我想对多个银行账户描述进行文本挖掘。我的第一步是对描述中使用最多的词进行排名。
所以假设我有一个如下所示的数据框:
a b
1 1 House expenses
2 2 Office furniture bought
3 3 Office supplies ordered
然后我想创建一个单词使用排名。像这样:
Name Times
1. Office 2
2. Furniture 1
等等...
关于如何快速概览描述中最常用的词有什么想法吗?
d<-data.frame(a=c(1,2,3), b=c("1 House expenses", "2 Office furniture bought", "3 Office supplies ordered"), stringsAsFactors =FALSE)
e <- unlist(strsplit(d$b, " "))
f <- e[! e %in% c("")]
g <- sapply(f, function(x) { sum(f %in% c(x))})
h = data.frame(Name=names(g), Times=g)
h[!duplicated(h),]
另一种解决方法是使用 tm 包。
您可以创建语料库:
require(tm)
corpus <- Corpus(DataframeSource(data))
dtm<-DocumentTermMatrix(corpus)
dtmDataFrame <- as.data.frame(inspect(dtm))
默认情况下,它使用 "weightTf" 生成词频 tf。我将文档术语矩阵转换为数据框。
现在你拥有的是每个文档一行,每个词一列,值是每个词的词频,你可以直接创建排名,为每一列添加所有值。
colSums(dtmDataFrame)
你也可以在之后排序,无论如何。使用 tm 的好处是您可以轻松地过滤出单词,用停用词等一堆东西处理它们,删除标点符号,词干,删除稀疏词以备不时之需。
我想对多个银行账户描述进行文本挖掘。我的第一步是对描述中使用最多的词进行排名。
所以假设我有一个如下所示的数据框:
a b
1 1 House expenses
2 2 Office furniture bought
3 3 Office supplies ordered
然后我想创建一个单词使用排名。像这样:
Name Times
1. Office 2
2. Furniture 1
等等...
关于如何快速概览描述中最常用的词有什么想法吗?
d<-data.frame(a=c(1,2,3), b=c("1 House expenses", "2 Office furniture bought", "3 Office supplies ordered"), stringsAsFactors =FALSE)
e <- unlist(strsplit(d$b, " "))
f <- e[! e %in% c("")]
g <- sapply(f, function(x) { sum(f %in% c(x))})
h = data.frame(Name=names(g), Times=g)
h[!duplicated(h),]
另一种解决方法是使用 tm 包。 您可以创建语料库:
require(tm)
corpus <- Corpus(DataframeSource(data))
dtm<-DocumentTermMatrix(corpus)
dtmDataFrame <- as.data.frame(inspect(dtm))
默认情况下,它使用 "weightTf" 生成词频 tf。我将文档术语矩阵转换为数据框。 现在你拥有的是每个文档一行,每个词一列,值是每个词的词频,你可以直接创建排名,为每一列添加所有值。
colSums(dtmDataFrame)
你也可以在之后排序,无论如何。使用 tm 的好处是您可以轻松地过滤出单词,用停用词等一堆东西处理它们,删除标点符号,词干,删除稀疏词以备不时之需。