Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:每组前N个元素,无重复项_R_Dplyr - Fatal编程技术网

R:每组前N个元素,无重复项

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>

对于一个课堂专题,我有一组推特,分为三种类型:仇恨、常规和冒犯。我的目标是最终训练一个分类器,从数据中预测正确类型的tweet

我有一个整洁格式的数据表(每行一个单词),包含每个单词的TF-IDF分数。我审查了带有星号的冒犯性语言:

> 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
    ,以确保没有一个单词用于超过一种语音类型。