【问题标题】:RapidMiner: How can I efficiently generate n-grams?RapidMiner:如何有效地生成 n-gram?
【发布时间】:2014-10-10 10:34:50
【问题描述】:

对于我的论文,我正在尝试使用带有文本挖掘扩展的 RapidMiner 社区版对较大(最多 2GB)的文本文档(产品评论)进行情感分析。

我想为此生成二元组。但是对于一个甚至没有 100.000 个文档的 70MB 小 csv 文件,在 8 核 32GB RAM 机器上生成二元组已经需要 12 个小时(RapidMiner 配置为使用 28GB 和所有内核)。

我已经能够使用过滤器将它减少到 3 个小时,但它的缺点是具有原始文档中不存在的二元组。我不确定,如果这是我能做到的。

我目前的流程是这样的:

Read CSV -> Process documents (Tokenize -> Stem -> Filter stop words -> Filter length < 2 -> Generate n-grams ) -> Split Validation

删除 n-gram 运算符会使精度和召回率下降到约 60%,这远远不能接受。感谢您提供任何想法,如何加快速度。

【问题讨论】:

    标签: text-mining rapidminer


    【解决方案1】:

    有时,使用运算符Materialize Data 会有所作为。将其放在文档处理之后和拆分操作符之前。

    您还可以查看修剪以减少属性数量。您必须通过实验找到最佳参数。

    另一个选项是实现一个单词列表作为Process Documents 运算符的输入。当然,这需要一个已知的单词列表,这可能不适合您的问题。

    处理文档时也可以按内容过滤。您只能包含那些包含下划线的标记。这将保留 2-gram 及以上并删除 unigram,从而减少属性的数量。

    【讨论】:

    • 感谢您的回答,但我的问题不是验证步骤。问题在于generate n-gram 运算符,它需要很长时间才能处理。我已经在尝试使用过滤器运算符尽可能减少令牌的数量。也许我错过了其他东西。
    • 上面的剪枝、单词列表和过滤建议都是Process Documents运算符的一部分,可能有助于n-gram的生成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 2014-12-13
    • 2018-02-20
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    相关资源
    最近更新 更多