4 ms·
Nice, do you have any details already? Library / Language? Can't wait to see some actual efforts in open source in this space.
by cleansy 9y ago
Nice, do you have any details already? Library / Language? Can't wait to see some actual efforts in open source in this space.
- sprobertson 9y agoIt's based on seq2seq translation models, where instead of translating from one human language to another, it translates a human language to a command language: "Find appointments in San Mateo" -> "find($type=appointments, $location=San Mateo)". The code that does that parsing (PyTorch based) is at https://github.com/spro/RARNN https://github.com/spro/RARNN The missing piece is generalizing the training process to fit other people's schemas; generating training data based on models, attributes, and relationships.
- Macuyiko 9y agoThis is very interesting! How far does the 'missing generalization' impact go? I.e. your Nalgene grammar file (nice reference, didn't know about Nalgene) is used to generate both flat input strings and nested desired outputs, which you use to train your network on (if I understand correctly). This file seems to contain quite a lot of hand-written varieties like "please/plz/plox/...". After training the network, I assume it is capable to also handle inputs not seen in the training data? Like someone writing "please?!11"? If not, I don't really understand why'd you'd train a network in the first place: you have put in the effort to create a grammar, so might as well use that one to use the actual conversion to a tree, no? Totally not trying to be negative here, just trying to understand your workflow a bit better.
- sprobertson 9y agoThe words are turned into GloVe word vectors on the input side, so it is able to handle a decent amount of variation in spelling and using synonyms. Having synonyms defined in the Nalgene file helps the network to accept vectors in a general region rather than an exact point in space. It also encourages the network to learn about the grammar of the input rather than use of specific words, so it can handle words that it hasn't seen before (good for names, places).
- Macuyiko 9y agoGotcha! Thanks for the explanation!