I see the Rasa NLU use the MITIE and spaCy, but can anyone explain the how they use it and the algorithm behind?
There is a post by Alan on the Rasa blog here that covers the basic approach used: https://medium.com/rasa-blog/do-it-yourself-nlp-for-bot-developers-2e2da2817f3d
This should give a good idea of roughly what it's doing but if you are keen to find out more, you can easily look over the actual code used (which is the great advantage of open source solutions!) https://github.com/RasaHQ/rasa_nlu/tree/master/rasa_nlu