SPMF 中的顺序模式挖掘:将单词作为输入

数据挖掘 数据挖掘 文本挖掘
2022-03-04 13:13:19

我的数据集是存储在 MySQL 数据库中的大型事务数据库多次连接的结果。有一些列具有文本值和双精度值。我正在尝试使用 SPMF 对此数据集进行一级顺序模式挖掘。

  1. 是否可以在 SPMF 中输入单词作为输入?文档告诉我们只允许使用正整数。
  2. 如果我想给出单词或十进制数字,我应该使用哪个软件/软件包?

谢谢。

2个回答

感谢您使用 SPMF。我是那个图书馆的创始人。目前,SPMF 不支持包含某些文本作为输入的文本文件。因此,用户需要做一些预处理来将文本文件转换为 SPMF 使用的格式。但在未来,我计划在 SPMF 中添加本地处理文本文件的功能。它可能会在接下来的几周内添加,具体取决于我的日程安排。

顺便说一句,如果您对 SPMF 有任何疑问,也可以直接在SPMF网站上的论坛上提问。那么,我会尽快回复你。

为了补充@Phil 的答案和出色的 SPMF 库:

Seq2Pat:序列到模式生成库可能与您的案例相关。

该库是用 Cython 编写的,以利用具有高级 Python 接口的快速 C++ 后端。它支持基于约束的频繁序列模式挖掘。

下面是一个示例,展示了如何在尊重所找到模式价格的平均约束的同时挖掘序列数据库。

# Example to show how to find frequent sequential patterns
# from a given sequence database subject to constraints
from sequential.seq2pat import Seq2Pat, Attribute

# Seq2Pat over 3 sequences
seq2pat = Seq2Pat(sequences=[["A", "A", "B", "A", "D"],
                             ["C", "B", "A"],
                             ["C", "A", "C", "D"]])

# Price attribute corresponding to each item
price = Attribute(values=[[5, 5, 3, 8, 2],
                          [1, 3, 3],
                          [4, 5, 2, 1]])

# Average price constraint
seq2pat.add_constraint(3 <= price.average() <= 4)

# Patterns that occur at least twice (A-D)
patterns = seq2pat.get_patterns(min_frequency=2)

请注意,序列可以有不同的长度,您可以添加/删除其他属性和约束。序列可以是任何字符串,如示例中所示,也可以是整数。

底层算法使用多值决策图,特别是来自 AAAI 20019 的最先进算法

免责声明:我是 Fidelity 和 CMU 在Seq2Pat 库上的研究合作的成员。