R:每组前N个元素,无重复项
对于一个课堂专题,我有一组推特,分为三种类型:仇恨、常规和冒犯。我的目标是最终训练一个分类器,从数据中预测正确类型的tweet 我有一个整洁格式的数据表(每行一个单词),包含每个单词的TF-IDF分数。我审查了带有星号的冒犯性语言:R:每组前N个元素,无重复项,r,dplyr,R,Dplyr,对于一个课堂专题,我有一组推特,分为三种类型:仇恨、常规和冒犯。我的目标是最终训练一个分类器,从数据中预测正确类型的tweet 我有一个整洁格式的数据表(每行一个单词),包含每个单词的TF-IDF分数。我审查了带有星号的冒犯性语言: > tfidf_words # A tibble: 34,717 x 7 speech tweet_id word n tf idf tf_idf <fct> <int> <chr>
> tfidf_words
# A tibble: 34,717 x 7
speech tweet_id word n tf idf tf_idf
<fct> <int> <chr> <int> <dbl> <dbl> <dbl>
1 hate 24282747 reason 1 0.25 5.69 1.42
2 hate 24282747 usd 1 0.25 8.73 2.18
3 hate 24282747 bunch 1 0.25 5.60 1.40
4 hate 24282747 ****** 1 0.25 5.21 1.30
5 hate 24284443 sand 1 0.5 4.76 2.38
6 hate 24284443 ****** 1 0.5 2.49 1.24
7 hate 24324552 madden 1 0.111 8.73 0.970
8 hate 24324552 call 1 0.111 4.11 0.456
9 hate 24324552 ****** 1 0.111 2.05 0.228
10 hate 24324552 set 1 0.111 5.90 0.655
# ... with 34,707 more rows
这是:
feature_space <- tfidf_words %>%
group_by(speech) %>%
top_n(n = SENTIMENT_SIZE, wt = tf_idf) %>%
ungroup()
方法2的结果如下:
> length(vocabulary)
[1] 293
我怎样才能:
在这里,我假设您正在寻找每组
语音中唯一的单词
tfidf_words %>% arrange(desc(tf_idf)) %>%
group_by(speech) %>% distinct(word, .keep_all = TRUE)
在这里,我假设您正在寻找每组语音中唯一的单词
tfidf_words %>% arrange(desc(tf_idf)) %>%
group_by(speech) %>% distinct(word, .keep_all = TRUE)
多亏了@A.Suliman,我想我现在有了一些有用的东西
feature_space <- tfidf_words %>%
arrange(desc(tf_idf)) %>%
distinct(word, .keep_all = TRUE) %>% #remove all duplicate words
group_by(speech) %>%
slice(1:SENTIMENT_SIZE) %>% #grab first n of each speech category
ungroup()
feature\u space%
排列(描述(tf_idf))%>%
不同的(单词,.keep_all=TRUE)%>%#删除所有重复的单词
组别(演讲)%>%
切片(1:情绪大小)%>%#获取每个语音类别的前n个
解组()
在我的词汇表中,这应该总是能产生预期的词数,因为这会预先消除任何平局的机会。多亏了@a.Suliman,我想我现在有了一些有效的方法
feature_space <- tfidf_words %>%
arrange(desc(tf_idf)) %>%
distinct(word, .keep_all = TRUE) %>% #remove all duplicate words
group_by(speech) %>%
slice(1:SENTIMENT_SIZE) %>% #grab first n of each speech category
ungroup()
feature\u space%
排列(描述(tf_idf))%>%
不同的(单词,.keep_all=TRUE)%>%#删除所有重复的单词
组别(演讲)%>%
切片(1:情绪大小)%>%#获取每个语音类别的前n个
解组()
在我的词汇表中,这应该总是产生预期的词数,因为它会预先消除任何平局的机会。你可以在分组后使用唯一(单词)
或不同(单词)
。Suliman你能举个例子吗?在groupby
之后,我该如何使用它?你可以在groupby
@A之后使用unique(word)
或distinct(word)
。苏利曼你能举个例子吗?在groupby
之后我将如何使用它?谢谢分享!我认为distinct
功能正是我所需要的。我唯一真正改变的是在对数据进行分组之前使用distinct
,以确保没有一个单词用于多个语音类型。谢谢分享!我认为distinct
功能正是我所需要的。我真正改变的唯一一件事是在对数据进行分组之前使用distinct
,以确保没有一个单词用于超过一种语音类型。