Hi Fellow Hackers,
Recently at my day job I wrote a script to help some non-technical people fuzzy match two data sets of strings for a data migration project. I've seen this same problem/need a couple of times and I've been reading on Indie Hackers lately, so it got me thinking a bit.
I did a domain name search and found out that https://www.stringdistance.com was available and I thought "Heck, I might was well buy this exact match domain name and make a little web app".
So I used it as an excuse to learn a bit about React and Google App Engine's Golang run time.
I'm not sure if this is a monetizable idea or not. Currently it's just a Levenshtein distance algorithm exposed as a REST API, but I was thinking I could make it more interesting by using machine learning to match strings and expose that as a service and perhaps that might be something people would pay for. I'm debating about moving forward with that or not.
Anyway, right now it costs me nothing to host this on Google App Engine with their free quotas, so I will probably just leave it live regardless of whether I get any traction.
So, thanks for the backlink and thanks for any feedback/interest.
PS: @ Courtland, if you read this, thanks for what you are doing with Indie Hackers. I just listened to your latest talk on Software Engineering Daily and thought it was pretty inspirational > https://softwareengineeringdaily.com/2017/01/30/making-money-online-for-software-engineers-with-courtland-allen/
Although basic Levenshtein distance is a solved problem, this could be handy/worth paying for if your service tempers its results to match, e.g., commonly-searched for words/phrases and returns the shortest edit distance to those phrases.
Toward that end, I wrote a little plugin during one of my first software jobs to solve the problem of people mis-typing their email address while signing up (thereby making it impossible for us to contact them). You can check it out here, and are free to use/modify it if it would help: http://petestreet.github.io/physical-keys-autocorrector/ https://www.npmjs.com/package/special-speller
@alexpete, thanks for the comment. I didn't completely understand your suggestion though. Are you saying my service could have a "robust word bank" and users of the service would find it valuable to match from a source term to a bank of commonly searched terms?
That might be closer to what I was thinking with machine learning. I was thinking that Levenshtein distance obviously is not good at understanding context, so I might be able to train a ML algorithm that would do a better job at understanding context and natural language and therefore be more valuable.
That's what I was thinking - the plugin I linked to wasn't exactly what you're doing, but I posted it because it demonstrates a specific business use-case -- validating email addresses. I'd manually whitelist domains like "gmail", "aol", "hotmail", "yahoo", etc., and then if a user typed in "gnail" by accident they'd be given the option to replace it with "gmail" instead (notably, the words in the whitelist aren't common English words you could validate with a built-in spell-checker). But there are wider applications where you'd benefit from using some sort of automated or ML process to find the "best fit" given the end-user's input. Normalizing catalog entries, like you mention on your website, is a good example, but I'm sure there are lots of others. My recommendation is to get a demo working for a very specific use-case (items on a popular eCommerce website, say), so that you can demonstrate something it can tangibly do. An "ah-ha" moment for me would be watching someone search for an obscurely-named brand, misspell it, and then be shown the proper result anyway thanks to your algorithm.
Once a specific example is in place, there's a very wide branch-out potential.
Thanks!