I've been tinkering with learning algorithms for my computer-go player, jgogears.
It linearises board positions and then uses classic string processing techniques, principally a large suffix-tree. Suffix-trees are widely used in information processing, information theory and compression fields of computer science. I also used them extensively in my recent Ph.D.
Currently I'm training with about 200 go games (~40k moves), giving me about 950K nodes in my suffix tree.
I've just switched my linearisation method from a strict distance measure to one which capitalises on adjacency much better.
There are a number of tuning parameters for the rate at which I grow the tree. I'll be tinkering with them as I increase the number of boards I'm using for training.