1

我正在尝试构建一个人工智能单元。我计划首先将感官输入(“观察”)收集到一个短期工作记忆列表中,不断形成在这个列表中找到的模式(“想法”),然后将这些想法提交到一个长期存储记忆中它们达到了相当大的规模,可能是七个连锁观察。对于任何哲学人来说,类似于洛克的人类理解论文,但这不会是白板。需要有一个编码的底层结构。

因此,我的问题是:

是否有/在哪里有一个很好的算法来动态合并或“模式化”这个不断增长的观察字符串的最大子字符串?例如:如果到目前为止给了我 ABCDABCABC,我想要一个 ABC 想法,D 和另外两个 ABC 想法;然后,如果观察到另一个 D 并将其添加到短期记忆中,我想要一个 ABCD 令牌、一个 ABC 令牌和另一个 ABCD 令牌。我不想使用 Shortest Common Substring,因为我需要在添加任意数量的字符后重新运行它。我想我更喜欢一些易于搜索/可修改的树结构。

这看起来像一个足够体面的解决方案吗? http://www.cs.ucsb.edu/~foschini/files/licenza_spec_thesis.pdf。如果不出意外,我认为其他数据挖掘者可能会喜欢。

4

1 回答 1

1

第一步:标记器。定义您认为的 {A,B,C,D} 和不考虑的内容。

  • 至少需要一个额外的令牌来存放垃圾/杂项(好消息是,如果出现此令牌,随后的状态机将始终重置为其起始状态)
  • 您可能希望也可能不希望保留空格(这将再次导致额外的令牌,以及稍后在 DFA 或 NFA 识别器中的许多额外状态)
  • 也许您需要某种等价类:例如,将所有数字字符串包装为一种标记类型;折叠小写/大写;接受某种程度的拼写错误(很难!)
  • 对于行首/行尾等,您可能需要特殊的虚拟令牌类型。
  • 您必须对误报数量与允许的误报数量做出一些选择。
  • 如果涉及文本,请确保所有源都采用相同的规范编码,或对它们进行预处理以将它们带入相同的编码。

构建标记器是调查您的语料库的绝佳方式:如果它是来自外部世界的真实数据,您会惊讶于您在开始时甚至不知道它们存在的时髦案例!

考虑到正确的标记化,第二步(识别器)可能会容易得多。对于正常的确定性状态机(具有要识别的预定义序列),您可以使用 Dragon Book 或 Crochemore 中的标准算法。

对于模糊自学习匹配器,我将从构建马尔可夫链或 -trees 开始。(也许贝叶斯树,我不是这方面的专家)。我认为从标准状态机开始并为节点和边添加一些权重和计数并不难。并动态地向图中添加边。或删除它们。(这是我希望开始变得艰难的地方)

战略决策:您需要数据库吗?如果你的模型适合核心,你不会也不应该。(数据库不打算获取一行并处理它,然后存储它然后获取下一行,等等)如果您的数据不适合核心,那么您将遇到的不仅仅是数据建模问题。顺便说一句:我知道的所有 DNA 组装器/匹配器都在核心和平面文件中工作。(可能有数据库备份,便于管理和检查)

于 2013-02-28T23:26:56.597 回答