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.

Background

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

A series of screenshots of Scratch showing machine learning projects to train images (amongst other things)
Highlight reel of the Machine Learning for Kids project

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.

A screenshot of the settings Sheet for the watson-to-sheets project

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.

Example

A screenshot of the Input URLs or Text Sheet for the watson-to-sheets project

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:

  1. Adjusted the settings sheet to make sure the analysis included information on the categories, concepts, entities, and sentiment (especially for “machine learning”)
  2. Entered https://medium.com/@BillHiggins/ai-for-developers-565a8fce0959 into the Input URLs or Text sheet
  3. Invoked the analysis with the custom menu item Analyze URLs or Text...

Here’s a resource for understanding the labels and an abbreviated list of what I got back (IBM’s documentation can provide more context on the labels):

LabelValue
categories.000.label/business and industrial/business software
categories.000.score0.874142
categories.001.label/technology and computing/hardware/computer
categories.001.score0.865124
categories.002.label/education/homework and study tips
categories.002.score0.858049
concepts.000.textLearning
concepts.000.relevance0.955199
concepts.001.textNatural language processing
concepts.001.relevance0.881563
concepts.002.textArtificial intelligence
concepts.002.relevance0.862863
concepts.003.textMachine learning
concepts.003.relevance0.821308
concepts.004.textNatural language understanding
concepts.004.relevance0.486864
entities.000.textAI
entities.000.typePerson
entities.001.textIBM
entities.001.typeCompany
entities.002.textNetflix
entities.002.typeCompany
entities.003.text20 years
entities.003.typeQuantity
entities.004.textBeth Smith
entities.004.typePerson
languageen
retrieved_urlhttps://medium.com/@BillHiggins/ai-for-developers-565a8fce0959
sentiment.document.labelpositive
sentiment.document.score0.685428
sentiment.targets.000.textmachine learning
sentiment.targets.000.labelpositive
sentiment.targets.000.score0.820423

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!