Did a similar thing in C++ way back when; routing short sentence fragments (questions in a bank website search box to the correct FAQs). One of the things we quickly discovered was how hard it is to separate Spanish (Castilian) from Catalan (and to less extent Bask). Similarly for Mandarin versus Cantonese.
At first we suspected that low precision could be attributed to the fact that users would typically only type short 2-5 word sentences (think Google searches). We later discovered talking to Barcelonean linguists (and Chinese native speakers) that another major factor is that so many words, idiom and even grammar is borrowed that it's hard to discern pure "uncontaminated" training / testing corpus to start with.