OpenAmplify
The OpenAmplify API reads text you supply and returns linguistic data explaining and classifying the content. What you do with that analysis is, in the fine tradition of APIs and mashups, up to you. Some possibilities might include pairing ads with articles, creating rich tag-clouds, or monitoring the tone of forum threads.
Supported version
2.1
Helpful links
-
Overview: openamplify.com/quickstart
Install
gem install openamplify
Usage
Configure
OpenAmplify.configure do |config|
config.api_key = 'YOUR_API_KEY'
# default :get
config.method = :post
# default :xml
config.output_format = :json
# default :all
config.analysis = :topics
# default :standard
config.scoring = :todo
end
Default settings can be overriden by the client
client = OpenAmplify::Client.new(:method => :get)
Or when you start ‘amplifying’.
result = client.amplify('input', :output_format => :rdf)
Usage
client = OpenAmplify::Client.new
text = "After getting the MX1000 laser mouse and the Z-5500 speakers i fell in love with logitech"
analysis = client.amplify(text)
puts analysis # default as xml
It knows if the input is a URL and uses the right webservice param (ie. sourceurl)
client.amplify('http://theonion.com')
In case you need a different format, OpenAmplify supports XML, JSON, RDF, CSV. It can also return the result as a fancy HTML page.
# assuming you use Nokogiri
doc = Nokogiri::XML(analysis.to_xml)
# or you want a JSON
json = JSON.parse(analysis.to_json)
# you should really try the pretty formats
puts analysis.to_pretty
# or
puts analysis.to_signals
Command-line
OpenAmplify gem comes with a command-line tool.
openamplify --api-key=APIKEY --format=json --analysis=topics "sample input text"
Upgrading from 0.2.3 to 0.3.0
Note 0.3.0 is a major revamp of the code. In general, it is better but if you encounter a problem, please let me know. Or better, submit a pull request.
The following methods are deprecated and will be removed in 0.3.1
client.analyze_text('input')
client.base_url = 'http://domain.dev'
The following methods are no longer supported. I figure it’s better to let the caller decide how they want to traverse the results.
# Treating the result as hash
response.each do |k, v|
pp k
pp v
end
# 'response' works like a Hash
puts response['Topics']
# Nor the shortcuts
response.top_topics
response.proper_nouns
response.locations
response.domains
Testing
rake test OPEN_AMPLIFY_KEY=YOUR_KEY