R中的CountVectorizer不能将所有单词都放入包中

时间:2019-03-18 12:57:14

标签: r countvectorizer

我有一个像这样的数据框:

    id                 words
 1:  1          capuccin,mok
 2:  2 bimboll,ext,sajonjoli
 3:  3          burrit,sincr
 4:  4  div,tir,mini,doradit
 5:  5   pan,multigran,linaz
 6:  6         tost,integral
 7:  7             pan,blanc
 8:  8  sup,pan,bco,ajonjoli
 9:  9                  wond
10: 10                  wond

我正在使用以下代码:

bag_of_words <- CountVectorizer$new()
result_df <- cbind(df$id, bag_of_words$fit_transform(df$words))

我想得到类似的东西:

   tab_1$id capuccin mok bimboll ext sajonjoli...
1         1        1   1       0   0         0...
2         2        0   0       1   1         1...
3         3        0   0       0   0         0...
4       ...      ... ...     ... ...       ...

但是,相反,它返回一个矩阵,其中包含每个单词的出现次数,而只是返回单词 wond

   df$id wond
1         1    0
2         2    0
3         3    0
4         4    0
5         5    0
6         6    0
7         7    0
8         8    0
9         9    1
10       10    1

我的代码怎么了?

1 个答案:

答案 0 :(得分:0)

我使用的是silimar方法,而不是tmfmnk在评论中的建议。

tab_1 <- tab_1 %>%
  unnest(words) %>%
  mutate(words = strsplit(words, ','), occ = 1) %>%
  dcast(id ~ unlist(words), fill = 0)

现在它可以正常工作了。

id ajonjoli bco bimboll ...
1         0   0       0 ...
2         0   0       1 ...
3         0   0       0 ...
...     ... ...     ...