class UClassifyQuery
Public Class Methods
new(read_api_key)
click to toggle source
# File lib/uclassify_query.rb, line 2 def initialize (read_api_key) @read_api_key = read_api_key @texts = Array.new @classifiers = Array.new end
Public Instance Methods
add_classifier(classifier_name,text)
click to toggle source
# File lib/uclassify_query.rb, line 14 def add_classifier (classifier_name,text) classifier = UClassifyClassifier.new(classifier_name,text) @classifiers << classifier self end
add_text(text)
click to toggle source
# File lib/uclassify_query.rb, line 8 def add_text (text) text = UClassifyText.new(text) @texts << text self end
classify_text(classifier_name,text)
click to toggle source
# File lib/uclassify_query.rb, line 20 def classify_text(classifier_name,text) add_classifier(classifier_name,text) add_text(text) end
get_query_string()
click to toggle source
# File lib/uclassify_query.rb, line 26 def get_query_string @document = Nokogiri::XML::Document.new("1.0") @document.encoding="utf-8" @uclassify_root_node = Nokogiri::XML::Node.new('uclassify',@document) @uclassify_root_node['xmlns']="http://api.uclassify.com/1/RequestSchema" @uclassify_root_node['version']="1.01" @document.root=@uclassify_root_node generate_texts generate_read_calls @document.to_xml end
Private Instance Methods
generate_read_calls()
click to toggle source
# File lib/uclassify_query.rb, line 40 def generate_read_calls if @classifiers.size > 0 read_node = Nokogiri::XML::Node.new('readCalls',@document) read_node['readApiKey']=@read_api_key @uclassify_root_node.add_child(read_node) @classifiers.each do |classifier| node = classifier.to_xml_node(@document) read_node.add_child(node) end else raise 'ERROR: Classifiers not specified. Use add_classifier method to add classifiers to use for this query' end end
generate_texts()
click to toggle source
# File lib/uclassify_query.rb, line 54 def generate_texts #add all the text train calls if @texts.size >0 main_texts_node = Nokogiri::XML::Node.new('texts',@document) @uclassify_root_node.add_child(main_texts_node) @texts.each do |text| node=text.to_xml_node(@document) main_texts_node.add_child(node) end else raise 'ERROR: Texts not specified. Use add_text method to add text(s) to run the classifier on' end end