过滤:1)从文本列中提取数字信息2)根据表选择属性子集

st0nydest0nyde 成员职位:2贡献我
亲爱的所有,

我有点新处理的RapidMiner,希望你们中的一些人在社区能够帮助我解决我的问题。我已经有了使用其他ETL和数据管理工具的经验,但在RapidMiner中没有找到正确解决它的方法。

我有两个问题。1更重要,2更好

1)在文本列中使用模式提取数字信息

我正试图解决一个数据准备任务,在那里我有一个属性类型文本包含句子,描述在德语语言和数值这是有趣的。因此,我已经准备了一些教程,在社区中搜索可能的解决方案,并尝试了操作符及其参数,包括RegEx逻辑。

在用例中,需要将数据集相乘,一方面提取文本信息,另一方面提取文本列中包含的值,以便最终将它们匹配在一起。使用文本处理扩展(转换大小写、Tokenize、过滤停止词、Stem)执行文本模式没有问题,但是在单独的过程中提取包含在同一列中的数字数据使我感到沮丧
用RegEx描述它,搜索的模式可以用([€0-9.;,\-]+[-€])来描述。在数字信息提取流中,可以从列中的文本中删除所有其他信息。

到目前为止我所尝试的:

-从数据处理文档:我有一个问题与“-”字符,所以我试图用“E”替换它后,我转换的情况[a-z]到[a-z],以便只有E在数据中留下-在过程文档和外部。但我无法获得预期的结果-通过流程文档,它在大多数情况下是空的(没有结果)

- replaceAll(替换,生成属性,Tokenize)函数与RegEx。我试图排除很多字符组合,但最终它太复杂了,所以我专注于用([€0-9.;,\-]+[-€])描述的逆函数。

问题
是否有可能接收到一个反向的RegEx,而不是替换已经确定的模式值作为结果集活动。在新列中首选,以便与文本进行比较/限定?或者你知道一种方法,我可以很容易地提取数字值遵循一个模式(€符号之前或之后的一些特殊字符,如50.000,-€,€500,500€)。基于这些信息,我想创建一些新的指标,所以我实际上在过程中卡住了。

2)根据另一个表选择属性(例如通过扩展连接条件)

的想法
我有一个包含82个属性的数据表,我想减少,但不是导入的表,因为如果我想重新加载不同的样本,我将不得不操纵每个样本集。
与其手动选择一个子集(Retrieve -> Select Attributes),不如为将来的情况编写相关特性的脚本。因此,我考虑生成第二个表,其中只包含没有观察标志的特性(只是主数据)-逻辑中只有接收标志值1的属性是相关的。

问题
是否可以根据表输入定义子集?用加权算子试过,但实际上并不成功。

希望您能够理解我的挑战,并根据您的RapidMiner经验给我一些提示微笑:

问候,

答案

  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽
    对于第一个问题,我相信您应该能够使用“替换”操作符,然后简单地使用捕获组符号(E\d+)来保留您感兴趣的部分(在这里使用E作为欧元符号)。

    对于第二个问题,我不完全确定您在问什么,或者您试图用脚本完成什么。普通的“选择属性”设置不适合您的原因是什么?如果无论输入集是什么,您都有相同的属性集,那么您应该能够重用相同的Select attributes操作符。
    布莱恩·T。
    Lindon合资企业
    乐鱼平台进入来自认证RapidMiner专家的数据科学咨询
    st0nyde
  • st0nydest0nyde 成员职位:2贡献我
    2020年5月编辑
    嗨Telcontar120,

    首先感谢您的支持。

    考虑到1)总的来说,这应该能确定我感兴趣的部分我是否能够通过“生成属性”或其他操作符以简单的方式存储它?我只找到了执行RegEx模式的替换方法和通过^或协商的方法!并没有真正起作用。所以它是相同的结果,我已经有,我正在寻找一种方法,只离开/提取搜索模式值,而不是替换它们。

    考虑到你是完全正确的,只是从另一个角度来看,但没有必要这样做。想知道是否有可能根据来自另一个数据源的标记输入变量混淆属性选择。

    问候,
登录注册置评。