I recently learned about OpenAmplify, a web service that uses Natural Language Processing (NLP) to extract meaning from text. I’m very familiar with NLP because I’ve worked on the Text Analysis team at SAP (previously with Inxight Software), so I was very interested to see OpenAmplify provide this capability for free and online. It’s the first such service that I’ve heard of and I wanted to try it out.
So, I put together a little demo using Twitter and Xcelsius, the product I’m currently working on. Here’s how it works:
- Twitter supplies the data.
- OpenAmplify analyzes it for semantic content.
- Xcelsius displays the data.
Try it out for yourself. (Note: Only single-word keywords will work right now.)
Those who are geekily-inclined can continue reading for the “how.” The rest of you can stop reading now.
Getting this set up was actually really easy and quick. Both Twitter’s and OpenAmplify’s APIs are easy to use and easy to connect. Here is what an OpenAmplify API call looks like when using Twitter as the data source:
http://portaltnx.openamplify.com/AmplifyWeb/AmplifyThis?apiKey=[your API key]&sourceURL=http://search.twitter.com/search.atom?q=[keyword]
To get this into Xcelsius, you first need to create an XML map to that URL in your Excel spreadsheet. Then, you set up the XML Map connection and with a little concatenation, link the URL to a cell that inserts the keyword at the end. (Feel free to e-mail me if you have questions about how to get this working.)
That’s all there is to it. Seriously.
In terms of functionality, I think OpenAmplify is rather limited. In their “About” page, they claim that OpenAmplify “identifies the significant topics, brands, people, perspectives, emotions, actions and timescales.” While that’s probably true, it would be nice to see the data by type (e.g., who are the people? what are the perspectives? what are the emotions?). As it is, you just get a list of “topics” and “actions” with ratings for polarity (positive, negative, or neutral). It would also be nice to get the supporting evidence that shows why each topic got the rating it got as a list of all the positive statements and all the negative statements. The style analysis (“slang” and “flamboyance”) might be fun, but I have a hard time imagining real uses for it. The demographics data, on the other hand, is very useful and I’m glad the OpenAmplify team says they will focus more on this in the future.
The latest release of OpenAmplify seems to have some good improvements in it, including performance improvements and the addition of “intentions” (what are people doing or intend to to). Just note that if you want to use the latest release, you actually have to use a different base URL for your API call:
[A note for any OpenAmplify folks who may be reading this: You might want to update your documentation to point to the latest release URL. Not everyone reads your blog.]
I did not use this latest release because I wasn’t aware of the difference in URLs, but I’ll try to upgrade to it in the future and see how it works.
Overall, I am impressed with OpenAmplify for two reasons. One, it provides a valuable service for free, and two, it uses a community model. Rather than building applications themselves, the OpenAmplify team provides the tools for other people to do it. This can be very powerful, as demonstrated by Apple’s App Store, and I hope it takes off for natural language processing as well. Twitter seems to be a popular choice for analysis at the moment, but I’m really interested to see what other applications people find for OpenAmplify and NLP. I think there is a lot of potential here.
UPDATE: This little app was blogged by OpenAmplify!