如何创建一个术语矩阵,该术语矩阵将与每个文档关联的数值相加?

时间:2016-05-13 12:37:58

标签: r text-mining tm corpus

我对R和tm有点新意,所以我很挣扎这个练习!

我有一个描述列,其中包含有关客户名称,城市和国家/地区的文字的混乱非结构化数据。还有另一列已售出商品

**Description   Sold Items**
Mrs White London UK 10
Mr Wolf London UK   20
Tania Maier Berlin Germany  10
Thomas Germany  30
Nick Forest Leeds UK    20
Silvio Verdi Italy Torino   10
Tom Cardiff UK  10
Mary House London   5

使用tm软件包和documenttermmatrix,我能够将每一行细分为术语并获取每个单词的频率(即具有该单词的客户数)。

         UK London  Germany …   Mary
Frequency   4   3   2   …   1

但是,我还要总计已售商品的总数。

所需的输出应为:

         UK London  Germany …   Mary
Frequency   4   3   2   …   1
Sum of Sold Items   60  35  40  …   5

我怎样才能得到这个结果?

1 个答案:

答案 0 :(得分:1)

假设你可以进入拥有Frequency表的阶段:

           UK London  Germany …   Mary
Frequency   4   3   2   …   1

您可以使用grep提取可以使用应用函数的单词。在这里,我将创建一个向量,表示从frequency表中提取的词典:

S_data<-read.csv("data.csv",stringsAsFactors = F)

Words<-c("UK","London","Germany","Mary")

然后在申请中使用此如下。这可以更有效地完成。但你会明白这个想法:

string_rows<-sapply(Words, function(x) grep(x,S_data$Description))

string_sum<-unlist(lapply(string_rows, function(x) sum(S_data$Items[x])))
> string_sum
     UK  London Germany    Mary 
     60      35      40       5 

只需将其绑定到您的frequency表格

即可