【发布时间】:2013-02-12 19:11:52
【问题描述】:
我正在尝试构建一个人工智能单元。我计划首先将感官输入(“观察”)收集到一个短期工作记忆列表中,不断形成在这个列表中找到的模式(“想法”),然后将这些想法提交到一个长期存储记忆中它们达到了相当大的规模,可能是七个连锁观察。对于任何哲学爱好者来说,类似于洛克的人类理解论文,但这不会是Tabula Rasa。需要有一个编码的底层结构。
因此,我的问题是:
是否有/在哪里有一个好的算法来动态合并或“模式化”这个不断增长的观察字符串的最大子字符串?例如:如果到目前为止给了我 ABCDABCABC,我想要一个 ABC 想法,D 和另外两个 ABC 想法;然后,如果观察到另一个 D 并将其添加到短期记忆中,我想要一个 ABCD 令牌、一个 ABC 令牌和另一个 ABCD 令牌。我不想使用 Shortest Common Substring,因为我需要在添加任意数量的字符后重新运行它。我想我更喜欢一些易于搜索/修改的树结构。
这看起来是不是一个足够体面的解决方案? http://www.cs.ucsb.edu/~foschini/files/licenza_spec_thesis.pdf。如果不出意外,我认为其他数据挖掘者可能会喜欢。
【问题讨论】:
-
什么是{A,B,C,D}?单个字符、单词/标记或子字符串?
-
我不是这个领域的专家,但这听起来很像您在为压缩算法构建字典时想要做的事情。
-
@wildplasser - 它们是“观察”、感官输入标记,但就我而言,它们可能是字符。
-
您需要第一次通过(tokeniser),它使用字符,并将它们作为“单词”或“令牌”返回。 (如果你不能构造这样的标记器,你的标记将是最小的标记:单个字符)开发“动态”DFA 非常接近于构造马尔可夫树(或决策树,或贝叶斯树)。 (除了,例如,循环是可能的)查看我的 Wakkerbot 标记器的个人资料(这是相当先进的,恕我直言,但非常特定于域)
-
霍夫曼编码,或者一些LZ类算法。
标签: string artificial-intelligence substring data-mining longest-substring