Something I'll keep my eye on, for sure. In the meantime:
It feels like you've reinvented much by writing stuff from scratch. spaCy is fast, has tons of features, commonly updated, free, trained on the Common Crawl corpus. Why not just use that? I'm only curious, not critical.