Sha256: ae2fe833e3dbce610cf5f0acc47405d1a7fa2e0a27c7c574fd9a52476629214f
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
require "json" require "rest_client" require "calais" module Jkl class << self #using the calais gem def calais_response(key, pages) Calais.process_document( :content => pages, :content_type => :text, :license_id => key ) end def get_from_calais(content) begin license_id = YAML::load_file('config/keys.yml')['calais'] c_uri = URI.parse('http://api.opencalais.com/enlighten/rest/') post_args = { 'licenseID' => license_id, 'content' => content, 'paramsXML' => paramsXML('application/json') } post_to(c_uri, post_args) rescue Exception => e puts e end end def get_tag_from_json(response) result = JSON.parse response result.delete_if {|key, value| key == "doc" } # ditching the doc cleaned_result = [] result.each do |key,tag| tag = Jkl::clean_unwanted_items_from_hash tag cleaned_result << tag yield tag if block_given? end cleaned_result end #jkl doesn't work with these aspects of the calais response, also removing blanks def clean_unwanted_items_from_hash h h.delete_if {|k, v| k == "relevance" } h.delete_if {|k, v| k == "instances" } h.delete_if {|k, v| v == "N/A"} h.delete_if {|k, v| v == []} h.delete_if {|k, v| v == ""} h.delete_if {|k, v| k == "_typeGroup"} h end private def paramsXML(format) <<-paramsXML; <c:params xmlns:c="http://s.opencalais.com/1/pred/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <c:processingDirectives c:contentType="text/txt" c:outputFormat="#{format}"> </c:processingDirectives> <c:userDirectives /> <c:externalMetadata /> </c:params> paramsXML end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jakal-0.1.0 | lib/jkl/calais_client.rb |