分类存储在SQL记录中的文本

IngoRMIngoRM 管理员、版主、员工、RapidMiner认证分析师、RapidMiner认证专家、社区经理、RMResearcher、会员、大学教授职位:1751年RM创始人
2019年10月编辑 帮助
来自SourceForge论坛的原始消息http://sourceforge.net/forum/forum.php?thread_id=2044574&; forum_id = 390413



祝贺发布了RapidMiner 4.1!!

我试图分类存储在SQL记录的文本。每个文本都是我想要聚类的电子邮件交易(还没有监督学习)。我还没有找到一个简单的方法来获得文本进入分类器。

1- TextInput使用目录作为文档源,而不是单独的记录或文件。
2- DatabaseExampleSource -> StringTextInput没有提供一种方法来指定哪个字段是文本。我选择filternomalattributes,但我仍然有一个关于流输入的错误消息。
3-操作符->预处理->属性没有标称到字符串的转换器。有ChangeAttributeType操作符,但它似乎与ChangeAttributeRole相同。(Type不应该是字符串,布尔值,整数等吗?)

是否可以将文本字段直接移动到文本分类器中,或者我必须将它们导出并转换为RM格式(aml/dat)或导入?













< /操作符>


<列出关键= "名称空间”>
< / >列表
< /操作符>
< /操作符>
错误信息:

错误:StringTextInput (StringTextInput)输入示例集不包含任何值类型为string的属性。一些操作符需要具有特定值类型属性的示例集。有关详细信息,请参阅所使用操作符的文档。

输入示例集不包含任何值类型为字符串的属性。


谢谢你!


Ingo的回答:

你好,

你能给我们提供一个截图的结果正确(元数据视图和数据视图)后,加载它从你的数据库,即正确之后








< /操作符>

例如,你可以在这里上传截图:

http://tinypic.com/

并发布链接。如有需要,请考虑删除敏感内容。我只需要确保使用StringTextInput操作符一切正常。

提前感谢。欢呼,
Ingo

答案

  • B_B_ 成员职位:70大师
    Ingo

    下面是一个示例表,其中包含来自SQL数据库的一些文本字段。我使用DatabaseExample操作符链接到数据库并将文本字段拉入RM。

    这些图片显示了初始设置和与文本字段的链接。我可以指定ID、标签和属性。我不能声明属性类型,比如字符串或整数。

    http://tinypic.com/view.php?pic=n6ylud&; s = 3
    http://tinypic.com/view.php?pic=app1d&; s = 3

    已准备好数据库示例连接
    http://tinypic.com/view.php?pic=25kkcr8&; s = 3

    在数据库示例之后设置StringTextInput。“Database Example”输出为“Example Set”,“StringTextInput”输入为“Example Set”。但是,属性类型不是通过Example连接从SQL数据库携带的,因此我不能在第一步中声明它。
    http://tinypic.com/view.php?pic=dxl538&; s = 3

    元数据视图
    http://tinypic.com/view.php?pic=2l9o3z9&; s = 3

    数据视图
    http://tinypic.com/view.php?pic=xfp7k0&; s = 3


    错误消息
    http://tinypic.com/view.php?pic=1z4czt0&; s = 3
    http://tinypic.com/view.php?pic=vhzqwx&; s = 3

    这些图片似乎不够清晰。如果你看不懂,我可以直接发给你。)

    运营商链










    < /操作符>

    < /操作符>


    <列出关键= "名称空间”>
    < / >列表
    < /操作符>
    < /操作符>

    谢谢你的帮助。
  • IngoRMIngoRM 管理员、版主、员工、RapidMiner认证分析师、RapidMiner认证专家、社区经理、RMResearcher、会员、大学教授职位:1751年RM创始人
    你好,

    谢谢你的精彩图片和描述。因此,很容易找到这种行为的原因:StringTextInput操作符中有一个错误,因此只能处理String属性。由于没有操作符“nomal2string”或类似的东西可用,这当然只有在处理.aml文件时才有可能,而在从数据库加载数据时则不可能(正如您所注意到的)。

    我们修复了文本插件并上传了一个新版本:

    Windows安装程序:http://rapid-i.com/snapshot/rapidminer-text-4.1-installer.exe
    其他平台:http://rapid-i.com/snapshot/rapidminer-text-4.1.jar

    抱歉给您带来的不便,再次感谢您的报告和指出这个bug。

    欢呼,
    Ingo
  • B_B_ 成员职位:70大师
    Ingo

    感谢您的快速响应,并在Windows安装程序中发布更新。

    现在,每条记录中的文本通过DatabaseExample进入RM,并传递给下一个操作符。当我设置filternomalattributes = On时,导入过程没有错误。该过程运行到最后,但StringTextInput不解析文本并创建向量(或者我错过了一些东西)。

    另外,当我设置filternomalattributes = Off时,该进程将停止并生成一个错误。

    我检查了安装,/lib/plugin文件的日期是5/29/2008。

    下面是屏幕截图。
    =========================

    DatabaseExample从SQL数据库中提取。
    1
    http://tinypic.com/view.php?pic=2qjf57d&; s = 3


    StringTextInput
    2
    Filter nomalattributes = On
    http://tinypic.com/view.php?pic=2qjf57d&; s = 3


    断点1元数据
    3.
    http://tinypic.com/view.php?pic=121y0qw&; s = 3
    http://i27.tinypic.com/2rmxni0.jpg


    断点1数据
    4
    http://i31.tinypic.com/21mf3ae.jpg


    断点2元数据结果
    StringTextInput应该将文本转换为单词向量,但文本仍然是一个字符串
    5
    http://i27.tinypic.com/14tt4io.jpg


    断点2数据
    文本记录不被解析为单独的词向量
    6
    http://i30.tinypic.com/bdldw2.jpg




    这次filternomalattributes = Off
    7
    http://i26.tinypic.com/ei81go.jpg


    错误消息
    8
    http://i32.tinypic.com/2hqur79.jpg
  • IngoRMIngoRM 管理员、版主、员工、RapidMiner认证分析师、RapidMiner认证专家、社区经理、RMResearcher、会员、大学教授职位:1751年RM创始人
    你好,

    再次感谢您的详细描述!
    另外,当我设置filternomalattributes = Off时,该进程将停止并生成一个错误。
    应该是这样的。通常,StringTextInput操作符作用于String属性只有并且不转换名义属性。例如,如果您将文本存储在值类型为string的属性中,并且有其他(名义)属性存储有关文本的附加信息(例如author…),这些信息不应该被转换,则这很有用。因此得名字符串TextInput。但是,由于一些IO操作符不支持String属性,而名义属性对于用户来说更为常见,因此我们决定添加该参数,以便操作符也可以直接处理名义属性。在您的例子中,您只需激活参数,一切都很好。
    现在,每条记录中的文本通过DatabaseExample进入RM,并传递给下一个操作符。当我设置filternomalattributes = On时,导入过程没有错误。该过程运行到最后,但StringTextInput不解析文本并创建向量(或者我错过了一些东西)。
    是的,我完全忘了在我的上一篇文章中提到这一点,抱歉……

    新的文本插件概念(我想是在RM 4.0中引入的)使文本预处理比以前更加模块化。这意味着预处理的所有步骤现在都可以定义为操作符(每个操作符都有自己的参数),这些操作符必须作为子操作符添加到TextInput / SingleTextInput / StringTextInput操作符中。通常,你想先添加一个标记器(例如StringTokenizer),然后可能是词干等。如果没有向*TextInput操作符添加预处理操作符,则根本不会创建向量。

    实际上,应该有一条警告消息,说明“此操作符没有子操作符”。这通常不是有意的。您可能希望至少添加一个标记器”。

    因此,解决方案很简单:只需添加一些文本预处理操作符,例如在以下设置中:



    < /操作符>


    <列出关键= "名称空间”>
    < / >列表

    < /操作符>

    < /操作符>

    < /操作符>
    < /操作符>
    < /操作符>
    欢呼,
    Ingo
  • B_B_ 成员职位:70大师
    好吧

    关于子操作符的额外信息是我不理解的。当我添加Tokenizer和Stopword时,它会起作用。谢谢你的帮助。

    将filternomalattributes设置为On似乎是正确的事情,但是我没有得到解析的结果,所以我尝试将其设置为Off。

    要学的东西太多了。

    你应该考虑出售培训视频。RM是提高数据挖掘技能的优秀工具。它是我发现的唯一一个非开发人员可以轻松使用的工具,而且比SAS和其他系统便宜。许多开源系统都是基于学术的,需要Java或其他编程知识。
  • IngoRMIngoRM 管理员、版主、员工、RapidMiner认证分析师、RapidMiner认证专家、社区经理、RMResearcher、会员、大学教授职位:1751年RM创始人
    你好再次,

    很高兴听到现在有用了。

    实际上,我们也考虑过制作和销售培训视频,它们可能会在某个时候出现。目前,我们决定在德国提供内部培训课程和非常小的小组课程,这样我们就可以准确地讨论用户的问题,并处理他们带来的数据(当然,如果数据不是太明智的话)。培训效果远远大于,所有学员在课程结束后都确认了这一点。当然,我们不可能只通过视频进行同样多的个人和问题相关的讨论。

    另一方面,对于标准流程来说,提供网络广播和/或培训视频绝对是一个好主意,这样他们就可以完成基本任务。

    谢谢你的溢美之词,祝一切顺利。
    Ingo
  • rdmckinneyrdmckinney 成员职位:15Maven
    这个问题可能类似。我的文本存储在一个Excel文件中,其中一列标识成员,另一列包含注释。我会使用ExcelExample操作符将数据输入RM,然后使用SingleText操作符创建向量吗?谢谢!
  • IngoRMIngoRM 管理员、版主、员工、RapidMiner认证分析师、RapidMiner认证专家、社区经理、RMResearcher、会员、大学教授职位:1751年RM创始人
    你好,

    几乎。它是ExcelExampleSource连同StringTextInput(不是TextInput),参数filter_nominal_attributes设置为true。不要忘记在文本预处理操作符中添加内部操作符;)

    欢呼,
    Ingo
  • amithatobviousamithatobvious 成员职位:6因素二世
    我也有类似的问题……我有2个字段,一个用于数据ID,一个用于每个记录的描述。然而,描述太长了(max = 65,535个字符),我不能将它们设置为字符串类型…我正在使用MySQL,我正试图使用文本插件为每个记录创建词向量。当我使用其他数据(字符串形式)时,我可以让RM从中创建向量,但我没有同样的运气与我真正想做的事情。我希望这能说得通……
  • B_B_ 成员职位:70大师
    AmI

    转到这篇文章
    http://rapid-i.com/rapidforum/index.php/topic,78.0.html

    这里有一些设置SQL链接以及要设置的操作符和参数的屏幕截图。下载STI补丁,将filter_nominal_attributes设置为ON/TRUE。将您的ID字段作为要选择的第一个字段,以便它将显示为字符串的左侧部分,并将ID_attribute_type设置为short或long,以便将文本用作ID。否则RM将覆盖您的ID。

    这是一个解决方法,直到STI可以正确地通过操作符传递ID字段。

    让我们知道你的长描述是否有效。我没有使用过超过几个句子或电子邮件的文本量的字符串,并且不能告诉您如此大量的文本是否可以正常工作。

    B。
  • IngoRMIngoRM 管理员、版主、员工、RapidMiner认证分析师、RapidMiner认证专家、社区经理、RMResearcher、会员、大学教授职位:1751年RM创始人
    你好,

    只是想让您知道,我们刚刚发布了RapidMiner的新版本(版本:4.2),其中包含一个修复StringTextInput操作符ID问题的错误。这些链接将在接下来的几个小时内出现在我们的网站上。

    欢呼,
    Ingo
登录注册置评。