首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MovieLens数据集-外壳脚本

MovieLens数据集-外壳脚本
EN

Stack Overflow用户
提问于 2015-04-13 19:06:16
回答 1查看 141关注 0票数 0

我使用的是数据集和shell脚本找到的here。当我使用以下命令运行shell脚本时:

sh split_ratings.sh

终端读取:

代码语言:javascript
复制
ratings count: 
expr: syntax error
set size: 
expr: syntax error
remainder: 
tail: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r1.test created.   lines.
r1.train created.   lines.
tail: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r2.test created.   lines.
r2.train created.   lines.
tail: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r3.test created.   lines.
r3.train created.   lines.
expr: syntax error
tail: -: No such file or directory
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r4.test created.   lines.
r4.train created.   lines.
tail: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
head: -: No such file or directory
expr: syntax error
tail: -: No such file or directory
tail: -: No such file or directory
r5.test created.   lines.
r5.train created.   lines.
ra.test created.   lines.

ra.train created.   lines.
rb.test created.   lines.
rb.train created.   lines.

所有文件都显示在该文件夹中;但是,大多数文件都是空的。r5.test是唯一包含数据的.test文件,它包含以下数据:

代码语言:javascript
复制
==> ratings.dat <==
71567::1984::1::912580553
71567::1985::1::912580553
71567::1986::1::912580553
71567::2012::3::912580722
71567::2028::5::912580344
71567::2107::1::912580553
71567::2126::2::912649143
71567::2294::5::912577968
71567::2338::2::912578016
71567::2384::2::912578173

这显然不是10,000,000的20%!

唯一正确的文件是ra.trainra.test,rb.trainandrb.test` -这些文件实际上是我唯一不需要的文件!

我没有使用Shell的经验,因此不知道为什么会发生这种情况。我使用的是Mac,所有的文件都已下载--我没有改变任何文件结构。

EN

回答 1

Stack Overflow用户

发布于 2015-04-26 19:37:49

我也有同样的问题。事实上,我在Xubuntu上试过,它工作得很完美。因此,我打开了split_ratings.sh,并试图找出脚本的错误所在。令人惊讶的是,问题出在第一行。如果在您的终端上运行

代码语言:javascript
复制
$ wc -l ratings.dat | cut -d ' ' -f 1

它不返回任何东西。第一个命令(在管道的左侧)计算文件包含的评级数。第二个方法是从字符串中提取数字。如果你运行

代码语言:javascript
复制
$ wc -l ratings.dat | cut -d ' ' -f 2

您将看到它正确地返回了数字。

所以如果你改变这个

代码语言:javascript
复制
RATINGS_COUNT=`wc -l ratings.dat | cut -d ' ' -f 1`

到这个

代码语言:javascript
复制
RATINGS_COUNT=`wc -l ratings.dat | cut -d ' ' -f 2`

脚本现在将知道有多少个评分。此外,如果您在第23、24、28、29、32和33行应用相同的更改,脚本将输出每个生成的文件的行数(评级)。

我希望它能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29603820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档