我正在寻找一种算法,分别是一种在某个程序中学习用户操作(输入)的方法,并基于已完成的用户操作的构建信息库,为用户提供未来操作的建议。信息库应该由使用同一软件的多个用户的操作构建而成。用户操作取决于它们发生的顺序。这意味着,应该根据会话中已经完成的用户操作来提出建议。会话是一个抽象的时间段,用户在其中使用软件。
在我最初的方法中,我考虑在有向图中对用户操作进行建模,其中每个节点代表一个唯一的用户操作实例。第一次完成的用户操作会生成一个新节点。节点有一个计数器,表示用户执行此用户操作的频率。当用户操作在另一个节点之后完成时,存在从一个节点到另一个节点的转换(对用户操作序列建模)。对于每个转换,概率是基于后续节点(即,存在转换的节点)的计数器计算的。有一个根节点作为起点,指向所有初始节点(用户操作在会话中首先完成)。这可能是一个(隐藏的)马尔可夫模型,但我不确定。它绝对不是贝叶斯网络,因为它可以是循环图(可取)。
这个问题是否已经有方法、算法、库等?如果没有,我的方法如何?任何替代方案,更好的想法?