我必须分析看起来或多或少像这个JSON blob 的动作序列。我试图回答的问题是,当被要求执行某个特定任务时,是否存在不同用户采用的重复(子)模式——在这种情况下,任务是使用这个编辑器构建一个数学公式。特别是我想知道人们是否有多种明显不同的方式来构建相同的表达。
我想创建一个马尔可夫模型,但这只会给我最可能的长度为N的动作序列。一个明显的替代方法是构建树并计算某个路径在数据集中出现的次数。然而,表达构建过程的性质意味着序列可能被许多令人困惑的、不重要的动作(如 UNDO-REDO 的条纹、删除符号等)污染。
我可能会走“最长的公共子序列”路线,但我不确定这会告诉我是否有“显着不同”的方式来构建相同的表达式(用引号引起来,因为目前我没有严格的定义“显着不同”,但是,例如,一种方法是以正确的顺序拖放所有符号,另一种方法是将所有符号拖到画布上,然后将它们放入正确的位置)。
我认为这对于某些 AI 算法来说可能是一个不错的挑战,但我对此很陌生,所以我愿意接受建议。