0

我正在寻找有关如何存储用户路径模式的想法/示例 - 目的是分析他们的行为并在我们能够以某种方式检测到它们时优化“最常用的路径”。

例如。他们在做什么之后执行哪个动作,以便我们稍后可以检查某些动作是否一遍又一遍地完成 - 因此开发一个快捷方式或将一些动作组合成一个组合的多动作。

我的第一个猜测是某种“简单日志”,可能以某种 SQL 方式存储,我们可以将每个操作作为索引保存,然后记录所有内容。

问题是路径/动作可能会动态改变——即使是在记录时——所以我们也需要能够处理这个事实,在以后寻找模式时。

您会先记录“大时代”的一切,然后在一段时间后对每一个细节进行 POST 处理,还是您对其他策略有丰富的经验?

我担心的是这会占用空间,在一个月或更长时间内每天记录 1000 个用户时会占用大量空间。

希望这是有道理的,我很想知道是否有人可以提供示例代码、伪代码或者可能是有用的链接。

我们的工具将是 C#、SQL 数据库、XML 和 .NET 3.5 - 如果需要,客户端也可以获得 .NET 4.0。

我们期望的模式示例

...
User #1001: A-B-A-A-A-B-C-E-F-G-H-A-A-A-C-B-A
User #1002: B-A-A-B-C-E-F
User #1003: F-B-B-A-E-C-A-A-A   
User #1002: C-E-F
...

等等。没有真正的方法知道他们接下来要做什么,也不知道他们将使用多少,他们将多久做一次。

次要目标,如果可能的话,如果我们稍后添加一个名为 G 的新“动作”(仅举例说明,将有数百个动作),我们如何检测这些新行为对先前模式的影响。

为了更好地解释它,我的想法是用某种方法来检测“模式中的模式”,有点像压缩的工作原理,因此“重复模式”是有斑点的。我们不知道这些模式会持续多久,也不知道它们出现的频率。我们如何将其分解为“小块” - 您认为最好的方法是什么?

4

2 回答 2

1

我不确定你所说的路径是什么意思,但是,如果你给路径中的每个动作一个唯一的符号,你可以将问题减少到最长的公共子字符串或子序列。

或者有一张指向该动作发生次数的路径图。每次发生特定路径时,增加该路径的计数。然后排序找到最常见的。

于 2010-10-30T02:50:16.290 回答
0

到目前为止的伪想法/实现

  1. 将用户的操作记录到一个列表/一系列操作中,批量有点风格(文本文件/SQL - 无论如何,只需存储整个内容以进行后处理)

  2. 开始计算每个“1 个动作”、“2 个动作”、“3 个动作”直到一定数量(比如说 30 个级别)

  3. 通过为某些操作(可能是产生最终结果的操作)赋予重要值,对它们进行排序

也许一个有用的结果?

如果我们计算所有 [A]、[AA]、[AB]、[AC]、[AAA]、[AAB] 等,它将列出一个长而细的列表,列出哪些动作在行中经常使用,这就是正确的方向,因为如果其中一些结果太高,我们可能需要更短的路径。那么问题来了,什么动作太少需要优化,什么动作列表最长需要搜索?我的猜测是我们需要先进行计数,然后检查数字。

问题是这将是我们正在开发的分析工具的一部分,并且在实施之前我们没有数据,所以我们不知道在实际完成之前要寻找什么。嗯...想知道这个问题是否真的有答案。

于 2010-11-01T15:51:41.343 回答