suz*_*zee 8 text machine-learning n-gram neural-network lstm
我是机器学习的新手,所以如果问题很简单,请放心.
我得到了一系列观察到的人物说,ABABBABBB .....(n个字符).我的目标是通过一些"学习"机制预测下一个角色.我的约束是观察到的字符(训练数据?)不是太多,即我说一个长度为6000的序列来学习基础模式
我很担心解决这个问题需要采取什么策略,我最初的赌注是:1)某种ngram模型?2)神经网络(LSTM等)?3)HMM
你能否指出解决这个问题的正确方法?
如果您正在处理一个相当简单的模式,其中字母仅基于前一个字母,那么您就会发现隐马尔可夫模型(HMM)可以解决它 - 事实上,就像马尔可夫链一样简单的东西工作。
如果您想找点乐子,那么这里有一个基于 HMM 的自定义解决方案,您可以随意摆弄。
检查示例数据,并按照插入顺序创建每个元素的链接列表。现在为每个不同的字符创建另一个列表,并将每个列表元素的索引放在它所属的位置。这是链表及其下面的存储桶的直观表示(绘制得非常糟糕):
现在,当您看到一个序列并要求预测下一个字符时,您所要做的就是查看最近的 X 个字符,并查看与其相似的子序列的行为方式。
要使用上面的示例,请查看最近(最后)3 个字符以获取BAC。您想查看该序列BAC以前是否发生过,以及发生后发生了什么。BAC如果您检查存储桶中(the )的第一个字母B,您可以看到该字母B之前出现过一次。值得庆幸的是,它遵循顺序 - 并且A紧随其后,所以这将是预测。
您可能不仅要检查过去 X 的序列,还要检查 X 以下的每个数字,如果序列匹配,则给予每个数字较小的权重,以创建更好的启发式。
困难的部分是决定向后看多远——如果你看得太远,就会花费很长时间,而且你可能找不到任何匹配项。如果你看起来太短,那么你可能会错过一个模式,并且必须猜测。
祝你好运——希望这很好,很容易实现,并且适合你。