循环文件操作符的问题

thapli_64thapli_64 成员职位:18Maven
2018年11月编辑 帮助

你好,

我是论坛和RapidMiner的新手,所以请原谅任何冗余或缺乏细节。

我正在使用CRC出版社出版的《RapidMiner:数据管理用例和业务分析应用》第14章(健壮的语言识别)中的流程。流程从这里下载:http://rapidminerbook.com/index.php/chapter-downloads-13-24/chapter-14/

附件1显示了该流程的屏幕截图,附件2显示了循环文件子流程

我成功地加载了进程,并下载了语言语料库http://corpora.informatik.uni-leipzig.de/download.html

我改变了循环文件操作符的目录,从存放语料库的文件夹中读取。目录中有五个文件(德语、英语、法语、葡萄牙语和西班牙语)。循环文件操作符似乎成功地读取了所有文件,但给出了第6个输出,这看起来毫无意义。附件3显示了任何语言文件(在本例中是英语)的预期输出。附件3显示了无意义的输出。附件5显示了抛出的错误,可能是由无意义的输出引起的。谁能告诉我为什么会这样,怎么解决?谢谢!

1. png 264.5 k
2. png 292.5 k
3. png 339.8 k
4. png 237.5 k
5. png 287 k

最佳答案

  • thapli_64thapli_64 成员职位:18Maven
    解决方案接受

    因此,我能够解决这个问题(在同事的一些调试帮助下——有人一起讨论事情总是好的)!: D

    我在循环操作符中设置了regex过滤(.*\.txt$),只读取所需的文件,在这种情况下,5种语言文件以.txt结尾

    然而,在此修复后出现了另一个错误-一个重复的属性错误wrt 'text'属性。这是由于“数据到文档”操作符中的“选择属性和权重”参数被检查,但没有为它提供值。这似乎是这个过程的情况,因为它是下载的,而不是通过人为错误引入的(或者我告诉自己:P)

    sgenzer

答案

  • sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区管理员,成员,大学教授,PM版主职位:2959年社区经理

    你好@thapli_64-欢迎来到社区。因此,首先,如果你能在这个帖子中分享你的XML过程(回复时请参阅右边的“有用的提醒”),那么我们就可以真正地复制你正在做的事情,这将会更容易。其次,我刚刚从RapidMinerBook和循环文件操作符中查看了该过程,该操作符自上个版本以来已弃用:

    屏幕截图2017-10-25下午5:26.21。png左边已弃用的循环文件操作符屏幕截图2017-10-25下午5:27.41。png这是新的循环文件操作符

    所以我建议将操作符移动到旧的“循环文件”中,并在新的“循环文件”中重新布线,然后再试一次。然后将您的XML粘贴到这里,我们将看到您得到了什么。


    斯科特

  • thapli_64thapli_64 成员职位:18Maven

    斯科特,

    感谢您的欢迎、回复和建议!:)我已经尝试了你提到的,它抛出了同样的错误。我附上了截图。请看下面的XML:

    谢谢!

    Racchit。

    <?xml version="1.0" encoding="UTF-8"?> <过程version = " 7.6.001”>
    > <上下文
    <输入/ >
    <输出/ >
    <宏/ >
    > < /上下文

    <过程扩展= " true " >



    <过程扩展= " true " >

    /> .


    <列出关键= "注释" / >
    .
    <列出关键= " data_set_meta_data_information " / >

    < /操作符>



    <列出关键= " rename_additional_attributes " / >
    < /操作符>



    < /操作符>

    <列出关键= " function_descriptions " >

    < / >列表
    < /操作符>


    .
    <列出关键= " set_additional_roles " / >
    < /操作符>

    <枚举关键= "分区" >


    < /枚举>

    < /操作符>




    < /操作符>

    <列出关键= " specify_weights " / >
    < /操作符>

    /> .








    .
    .
    .
    .
    > < /过程
    < /操作符>




    <过程扩展= " true " >

    /> .


    <列出关键= "注释" / >
    .
    <列出关键= " data_set_meta_data_information " / >

    < /操作符>



    <列出关键= " rename_additional_attributes " / >
    < /操作符>



    < /操作符>

    <列出关键= " function_descriptions " >

    < / >列表
    < /操作符>


    .
    <列出关键= " set_additional_roles " / >
    < /操作符>

    <枚举关键= "分区" >


    < /枚举>

    < /操作符>




    < /操作符>

    <列出关键= " specify_weights " / >
    < /操作符>


    /> .








    .


    .
    > < /过程
    < /操作符>




    < /操作符>

    .
    < /操作符>




    < /操作符>

    .
    < /操作符>


    .
    < /操作符>


    .
    <列出关键= " set_additional_roles " / >
    < /操作符>

    .
    < /操作符>





    /> .
    /> .
    .
    > < /过程
    < /操作符>
    > < /过程

  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,会员职位:1761年独角兽
    该错误指向这样一个事实:从数据操作符的过程文档中处理了名为language的属性后,该属性不在数据集中。在输出到达set角色操作符之前,再次检查属性语言是否在输出中
  • thapli_64thapli_64 成员职位:18Maven

    托马斯,

    它确实存在于从5个预期数据文件中提取的数据中(见附件中的德语语料库截图)。错误由第6个意外输入抛出。我得想办法摆脱它。它不应该在那里。

  • sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区管理员,成员,大学教授,PM版主职位:2959年社区经理

    你好@thapli_64-好的,谢谢(下次请使用工具插入您的XML:)).所以最好的调试方法是使用“断点”,看看在引起麻烦的操作符之前的数据是什么样子的:

    屏幕截图2017-10-25下午5.51.49。png添加断点屏幕截图2017-10-25下午5:52.00。png添加断点

    我猜是一样的@Thomas_Ott你会看到第六次“language”属性没有了。


    斯科特

  • thapli_64thapli_64 成员职位:18Maven

    斯科特,

    再次感谢你的建议——我边做边学!:)

    是的,我一直在使用断点来弄清楚发生了什么,这就是我如何发现正在读入的额外数据。您是对的,该错误确实是由于此时缺少语言属性而抛出的。我之前已经发现了,但没有分享,因为我觉得根本原因是第6个数据集被读取,这本来就不应该在那里。我这样想错了吗?它应该在那里吗?

    见附件截图。正如你所看到的,我添加了一个断点来查看输入到set role标签操作符中的内容。结果屏幕截图显示,5个预期文档的文本和语言属性都有,但第6个文档却没有。显然,循环文件子进程是为了有效地处理实际的语言语料库文件而设置的,但不是这种错误情况。所以错误情况根本不应该出现。如果我说错了,请指正。

  • thapli_64thapli_64 成员职位:18Maven

    所以@sgenzer,罪犯似乎是一个'。由read csv操作符从目录读入DS_STORE文件,该操作符反过来输出错误的结果(附件1)。

    附件2显示了Deutsch文件的预期结果。

    附件3显示文件夹中只有5个文件。我找不到任何隐藏文件。

    我该怎么解决这个问题?为什么循环文件/读取CSV操作符读取这个文件?

    1. png 235.6 k
    2. png 269.3 k
    3. png 159.2 k
  • sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区管理员,成员,大学教授,PM版主职位:2959年社区经理

    啊,有趣的是,我几乎要问你是否在Mac上,因为如果你是而且不使用RegEx表达式过滤掉. ds_store文件,你会有问题。这是一个隐藏的文件,会导致各种挑战。很高兴你自己解决了。:)


    斯科特

    thapli_64
  • thapli_64thapli_64 成员职位:18Maven

    感谢斯科特!这特别烦人,但这个过程是有教育意义的。通过这个调试过程,我学到了很多关于每个操作符的知识,并对RapidMiner有了更多的信心——这是我第一次认真使用RM。

    sgenzer
  • sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区管理员,成员,大学教授,PM版主职位:2959年社区经理

    这是我的荣幸@thapli_64.享受RapidMiner之旅。这是一个爆炸。:)


    斯科特

登录注册置评。