【问题标题】:dplyr text mining Column `text` must be a 1d atomic vector or a listdplyr 文本挖掘列 `text` 必须是一维原子向量或列表
【发布时间】:2018-06-05 08:06:24
【问题描述】:

我正在尝试使用 Tidytext (Text Mining with R),我想使用 widyr 库中的函数 pairwise_count。我的输入看起来像:

my input table

这可能是 RapidMiner Execute R 运算符中的代码:

rm_main = function(data)
{
library(dplyr)
library(tidytext)
library(widyr)
set.seed(2017)

test <- data_frame(data) %>%
    pairwise_count(text, word)
    print(data)
 return(list(data))
}

当我执行代码时,我得到了错误: "列data 必须是一维原子向量或列表"

请问有没有人可以帮帮我。

问候 托比亚斯

【问题讨论】:

  • dput 分享您的数据。

标签: r text-mining rapidminer


【解决方案1】:

在等待有关您的数据集的详细信息时,我注意到您的代码中几乎没有错误。例如:

  1. 如果函数rm_maindata 参数是data.frame,则无需将其转换为data.frame
  2. library 可以在代码的最开头加载。
  3. 函数pairwise_count 的参数不正确。该参数应与data.framedata.table 中的column 名称匹配

修正后,函数及其在样本数据上的用法为:

library(dplyr)
library(tidytext)
library(widyr)

df <- data_frame(Id = rep(1:5, each = 2),
                  Text = c("a", "b",
                             "a", "c",
                             "a", "c",
                             "b", "e",
                             "b", "f"))
#define function 
rm_main = function(data)
{
  if(is.data.frame(data)){

    test <- data %>%
      pairwise_count(Text, Id)
  }
  print(data)
  return(list(data))
}

#call function now
rm_main(df)

【讨论】:

  • 谢谢,您的解决方案解决了这个问题,但该功能不会计算任何单词对。我将在 RapidMiner 的结果选项卡中看到我的原始表格。也许我误解了这个功能。
  • @TobiasNehrig 很高兴知道我的解决方案解决了您的问题。您能否提供您的预期输出作为 OP 的一部分?
  • 好吧,我现在想知道哪些单词对出现的频率。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-19
  • 1970-01-01
相关资源
最近更新 更多