在一个大的示例列表上循环脚本
TobiasNehrig
成员职位:41大师
嗨,专家,
我有一个例子集与1属性和1975个例子,每个是一个网页的内容)。
输入如下所示:
对于每个例子,我想执行一个R脚本来拆分单词,创建一个双图图列表,并将其存储在一个列表中,以便以后分析它们。
我想,我可以使用循环值运算符在每个示例上运行脚本,但是运算符将在所有1975个示例上循环1975次。
如果我使用循环示例操作符,它也会运行所有示例,但在这种情况下,进程在第二个循环开始时终止,并出现错误信息:PM INFO: [1] "Failed to execute the script.";PM INFO:[1] "计算错误:参数"…’应该是字符向量(或强制对象)。”
这是我的过程:
<?xml version="1.0" encoding="UTF-8"?> <过程version = " 8.0.001”>
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文
<过程扩展= " true " >
< /操作符>
< /操作符>
<过程扩展= " true " >
<参数key="script" value="library(dplyr) library(tidytext) rm_main = function(data) { 如果(is.data.frame(数据)){& # 10;& # 9;spon_words & lt; -数据%祝辞% & # 10;& # 9;Unnest_tokens (bigram, text, token = "ngram ", n = 2) } & # 10; & # 9;打印(spon_words) & # 10; & # 10;返回列表((spon_words)) & # 10;} & # 10;" / >
< /操作符>
< /操作符>
<参数键=“脚本”值= " rm_main = function(数据)& # 10;{& # 10;& # 9;图书馆(dplyr) & # 10; & # 9;图书馆(tidytext) & # 10; & # 9;图书馆(tidyr) & # 10; & # 10; & # 9; count_bigrams & lt; -数据%祝辞% & # 10;& # 9;count(word1, word2, sort = TRUE) print(count_bigrams) & # 10;返回(counted_bigrams) & # 10;} & # 10;" / >
< /操作符>
<参数key="script" value="rm_main = function(data) { library(dplyr) library(tidytext) library(tidyr) 库(igraph) & # 10; & # 10;- data %>% Filter (n >= 10) %>% graph_from_data_frame& # 10;打印(bigram_graph) & # 10;& # 9 # bigram_graph & lt;——data.frame (bigram_graph) & # 10; & # 10;& # 9;图书馆(ggraph) & # 10;& # 9; set.seed (2017) & # 10; & # 10; graph <- ggraph(bigram_graph, layout = "fr") + geom_edge_link() + geom_node_point() + geom_node_text(aes(label = name), vjust = 1, hjust =1) setwd("/home/knecht") #graph.write(graph, "/home/knecht/graph01.txt",, "edgelist") #ggsave(filename = "foo300.png", width = 5, height = 4, dpi = 300, units = "in", device='png') return(list(graph)) } "/>
< /操作符>
> < /过程
< /操作符>
<过程扩展= " true " >
<参数key="script" value="library(dplyr) library(tidytext) rm_main = function(data) { 如果(is.data.frame(数据)){& # 10;& # 9;spon_words & lt; -数据%祝辞% & # 10;& # 9;Unnest_tokens (bigram, text, token = "ngram ", n = 2) } & # 10; & # 9;打印(spon_words) & # 10; & # 10;返回列表((spon_words)) & # 10;} & # 10;" / >
< /操作符>
< /操作符>
<参数键=“脚本”值= " rm_main = function(数据)& # 10;{& # 10;& # 9;图书馆(dplyr) & # 10; & # 9;图书馆(tidytext) & # 10; & # 9;图书馆(tidyr) & # 10; & # 10; & # 9; count_bigrams & lt; -数据%祝辞% & # 10;& # 9;count(word1, word2, sort = TRUE) print(count_bigrams) & # 10;返回(counted_bigrams) & # 10;} & # 10;" / >
< /操作符>
<参数key="script" value="rm_main = function(data) { library(dplyr) library(tidytext) library(tidyr) 库(igraph) & # 10; & # 10;- data %>% Filter (n >= 10) %>% graph_from_data_frame& # 10;打印(bigram_graph) & # 10;& # 9 # bigram_graph & lt;——data.frame (bigram_graph) & # 10; & # 10;& # 9;图书馆(ggraph) & # 10;& # 9; set.seed (2017) & # 10; & # 10; graph <- ggraph(bigram_graph, layout = "fr") + geom_edge_link() + geom_node_point() + geom_node_text(aes(label = name), vjust = 1, hjust =1) setwd("/home/knecht") #graph.write(graph, "/home/knecht/graph01.txt",, "edgelist") #ggsave(filename = "foo300.png", width = 5, height = 4, dpi = 300, units = "in", device='png') return(list(graph)) } "/>
< /操作符>
> < /过程
< /操作符>
> < /过程
< /操作符>
> < /过程
有人能告诉我怎么解决这个问题吗?
问候
托拜厄斯
标记:
0
最佳答案
-
MartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3314年RM数据科学家
答案
你好@TobiasNehrig-嗯,我更喜欢使用文本处理扩展和操作符“从数据处理文档”。类似于tokenize, generate n-gram,等等:
这有帮助吗?
斯科特
嗨@sgenzer
谢谢你的回答。输入数据先前被抓取并使用提取内容、标记句子、过滤停止词和按长度过滤进行预处理。但是用N-Gram算子,我没有得到任何进一步的图形。所以我尝试实现整洁文本方法(www.tidytextmining.com)通过执行R操作符。使用这种方法,如果我提前对1975个示例中的每一个运行脚本,我也会尝试找到共现现象。
问候
托拜厄斯
哦,我明白了。好的。你想要每个例子的双元图还是整个数据集的双元图?
你能附上截图中显示的数据集吗?
斯科特
嗨,是的,我想为每个例子创建一个双元图。
我不知道如何附加数据集,但这是生成数据集的过程:
嗨@mschmitz,
非常感谢你的建议。对于正常循环的提示,由于我的计算机缺乏RAM,它不起作用。但收集循环在很短的时间内就能完美地工作。
问候
托拜厄斯
嗨@TobiasNehrig,
这很可能是因为通常的循环是并行运行的,这会占用更多的内存。如果您停用此功能,它也应该与通常的循环一起工作。
最好的
马丁
德国多特蒙德
所以RapidMiner的一个小技巧-右键单击你想保存的结果标签,然后选择“在存储库中存储ExampleSet”:
然后,如果你想把它发送给别人,最简单的方法就是找到它在你的驱动器上,然后使用社区帖子部分的“选择文件”按钮来附加:
好了,现在看看你的双字母图……请继续关注。
斯科特
故事是这样的——你可以用“黑客”的方式,或者“正确”的方式来做这件事。“黑客”的方法是使用非常老的,几乎弃用的报告扩展,将创建一个PDF与您的图表。我在这篇文章中附上了一个过程,这样你就可以看到我是如何做到的。
之所以说这是一种“黑客”方式,是因为RM Studio并不是真正为BI设计的。它是一个数据科乐鱼平台进入学平台——我们把BI留给其他平台,比如Qlik、Tableau等,或者我们把结果推送到RM Server的生产环境中。所以“正确”的方法是使用其中一种技术。
过程和样本结果PDF附件。注意,您需要向RM Studio添加报表扩展。
斯科特
嗨@sgenzer我非常感谢你的帮助。嗯,我选择老式的“时尚”方式
托拜厄斯