Superpowered Spreadsheets with Watson
A tremendous amount of office work revolves around the spreadsheet. While many Excel experts don’t consider themselves programmers, the solutions they create to solve business problems, simplify workflows, and track metrics range from the merely complex to the jaw-droppingly byzantine. I want to show those experts (and all the other folks who use the spreadsheets they set up) that there are a powerful new set of machine learning and artificial intelligence tools they can experiment with.
The most cutting-edge companies in the world spent the last decade rapidly improving their products and services with machine learning and artificial intelligence. These two (closely related) approaches to solving problems transformed what was possible in software. That expansion of possibility led to changes that ranged from the delightful to the mundane to the odd:
- cellphone cameras learned how to take good pictures in the dark
- people started expecting customer service requests to be answered by robots
- YouTube, Spotify, and Netflix trained customers to expect to navigate a catalog of millions of items through a personalized, curated list of recommendations
As we start the new decade, a growing number of “regular” developers are beginning to realize that these new approaches have become mainstream enough that they’re ready to be integrated into any application. The tricky parts of artificial intelligence are still extremely complex (and becoming even trickier as our appetite for novel solutions expands), but the straightforward uses are available to anyone.
Skeptical? There’s are worksheets and projects to open up machine learning for kids in the block-based programming environment Scratch (since 2017!). And, if it’s good enough for kids, it’s good enough for spreadsheets.
Putting New Technology Within Reach
The basis for the (free) projects for kids is a set of APIs provided by IBM (also free to try out). These APIs allow IBM’s sophisticated Watson machine learning and artificial intelligence services to be easily integrated into other software. What can these things actually do? The kids’ projects use various services to recognize images, group words by similiarity, and make predictions, but I want to focus on IBM’s Natural Language Understanding service. They bill it as “a cloud native product that uses deep learning to extract metadata from text such as entities, keywords, categories, sentiment, emotion, relations, and syntax.” Got that?
What that means in clearer language: send a URL to IBM’s API and it will analyze the underlying text of the webpage to extract information about the overall sentiment (positive or negative), what it focuses on (categories and concepts), and any people, cities, or organizations that get mentioned (entities). You can check out IBM’s demo and experiment with different settings and features.
Language analysis powered by machine learning (for free!) was what I wanted to share with people. A spreadsheet (in particular a Google Sheet) seemed like was the best way to do that. I’ve created the watson-to-sheets project with an open-source integration that’s free for you to use. Copy this Google Sheet template and then use the custom menu to send a list of your URLs (or your custom text) to IBM for analysis. After a few seconds, the results are added to a new sheet in a clearly readable format. The project homepage has clear documentation on how to get started and how to use the tool, all without writing any code.
To give you a concrete sense of what the results actually look like, I analyzed Bill Higgins’ AI for Developers essay using the tool. Here’s how I set it up:
- Adjusted the settings sheet to make sure the analysis included information on the categories, concepts, entities, and sentiment (especially for “machine learning”)
https://medium.com/@BillHiggins/ai-for-developers-565a8fce0959into the Input URLs or Text sheet
- Invoked the analysis with the custom menu item Analyze URLs or Text...
|categories.000.label||/business and industrial/business software|
|categories.001.label||/technology and computing/hardware/computer|
|categories.002.label||/education/homework and study tips|
|concepts.001.text||Natural language processing|
|concepts.004.text||Natural language understanding|
How to Use This?
I find this technology quite exciting and I want to share it with others. I also have learned that new tools will be applied broadly (and in surprising ways) by non-technical people as soon as they have a way to use them without too much difficulty. That knowledge makes me reluctant to recommend specific applications, but here are three to get you started:
- Checking a list of news articles to see if your product is mentioned favorably or unfavorably
- Trying to find which pages of your company intranet need to be updated because they mention a benefit that’s just been improved
- Categorizing the transcripts of old events (or blog posts) to help make them easier to navigate
If this tool ends up being useful for you, please let me know!