4 ms·
I've put ML/NLP into production this year to automate away much of our ~1,000 person call center (successfully). I've tried a lot of things on the way, played a
by Maro 8y ago
I've put ML/NLP into production this year to automate away much of our ~1,000 person call center (successfully). I've tried a lot of things on the way, played around with SKL to see what features end up being useful. But in the end what's worked and is in production right now is fairly simple tokenization, getting rid of stopwords, and a simple rule engine, where the rules are coming from a back-end ML job, which is not doing anything beyond median/mean/counts/ratios to find good rules. Overall the most fancy library call I have is a fuzzy string match thing, I even got rid of SKL to reduce dependencies. It works very well, easy to understand, tunable, I can add exceptions/logging/etc at each step.
When it comes to DL stuff, I think the most useful thing in production projects will be "embeddings", and all the relatively simple stuff you can do once you have the word -> vector mapping. It's simple stuff, pick up the new O'reilly book 'Deep Learning Cookbook' [1] the first 4 chapters already cover this [2]. Popular libraries have this baked in [3], I think soon this will be like making SQL calls in Django projects...
[1] https://www.amazon.com/Deep-Learning-Cookbook-Practical-Recipes-ebook/dp/B07DK1ZZXT https://www.amazon.com/Deep-Learning-Cookbook-Practical-Reci...
[2] https://github.com/DOsinga/deep_learning_cookbook/blob/master/04.2%20Build%20a%20recommender%20system%20based%20on%20outgoing%20Wikipedia%20links.ipynb https://github.com/DOsinga/deep_learning_cookbook/blob/maste...
[3] https://pytorch.org/tutorials/beginner/nlp/word_embeddings_tutorial.html https://pytorch.org/tutorials/beginner/nlp/word_embeddings_t...
- scottmcdot 8y agoWhat is the nature of the work that you are automating?
- Maro 8y agoSee answer above.
- mlevental 8y agodo you mean literally phone calls? if so how are you doing the speech to text?
- solresol 8y agoNot the poster, but there are dozens of speech to text solutions that can do an OK-ish job on phone calls. Voicebase, Google Speech, Speechmatics, Amazon Transcribe just to name a few. What problem are you trying to solve?
- Maro 8y agoThe thing I did makes the call unnecessary. So there's no speech-to-text involved. Detail: deliveries in the Middle East. There's no zip codes, street names are iffy, people don't know their address, there's multiple names for everything (at least english and arabic), there's no "database" for lookups (Gmaps/OSM does not have good enough coverage/accuracy). So delivery companies, when they accept a package for delivery, get the (customer_name, customer_phone, customer_address) tuple (and the physical package), where everything is totally freetext, sometimes the address is like "I live in the X laborcamp, near the gate, call me when you get here". So by default there's a large call center which calls the recipient, and the CC agent tries to figure out where the driver should go based on the conversation. The outcome of the phonecall is a (lat, lon) that the CC agent drops on Gmaps. Then, the next day, packages are assigned to drivers based on the (lat, lon), each driver has a zone (cities are broken into zone polygons). Challenge: given the historic delivery data, can you (how well can you?) automate the (customer_name, customer_phone, customer_address) -> (lat, lon) prediction? Answer: as I wrote above, it's doable for 40-80% of orders, depending on what accuracy we're willing to accept, with fairly simple ML.
- solresol 8y agoI'm very interested to hear about your call centre project.