Markov Chain Text Generation
blog.demofox.org
blog.demofox.org
Another cool use for ML is for categorical and textual data. A fitted Markov Chain can give the probability of a string occuring. Strings that are more random (such as spammy text) get a low probability. Strings that are similar (such as certain user agents) get a similar probability, without having to directly compare these.
As an example try to build a character level Markov chain for text generation and see how that goes.
Also RNNs can "evolve" (or be adapted) more easily to other architectures like LSTMs.
For reference his code his 400 lines and this is what he is importing:
#include <stdio.h>
#include <vector>
#include <string>
#include <unordered_map>
#include <random>
#include <algorithm>
#include <array>
We can assume that <math.h> import is reasonable for comparisonTo implement RNNs for text you need to implement tensors/ndarrays of 3 dimensions with slicint and all that jazz, efficient matrix multiplication, implement the RNN, implement the RNN backprop properly.
RNNs stands on the shoulder of giants.
In any case by ease of implementation I think you men availability of libraries rather than something fundamental to the approach. Anyway we have strayed from your claim that RNNs are not Markovian. I was struck by the confidence in the claim especially so because it isnt true by a long shot.
It does appear that you would benefit from such an excercise yourself. No really, just try it.
A well trained higher order hidden Markov model would function no less impressively than an RNN and with good reason.
https://pub.uni-bielefeld.de/download/2903474/2907910/MOD201...
The unreasonable effectiveness of Character-level Language Models (and why RNNs are still cool)
https://nbviewer.jupyter.org/gist/yoavg/d76121dfde2618422139
In general, it’s a bit all over the place and convoluted, but sometimes it generates true gems. People find it via hashtags, and some folks even interact before realizing it’s a silly bot.