Class: Dandelionapi::EntityExtraction::Request

Inherits:
Analysis::Request show all
Defined in:
lib/dandelionapi/entity_extraction.rb

Constant Summary collapse

ENDPOINT =
"/nex/v1"
MANDATORY_FIELDS =
[
  "text",
  "url",
  "html",
  "html_fragment"
]
OPTIONAL_FIELDS =
[
  "lang",
  "min_confidence",
  "min_length",
  "social.hashtag",
  "social.mention",
  "include",
  "extra_types",
  "country",
  "custom_spots"
]
FIELDS_FORMAT =
{
  "text" => {
    valid: lambda {|value| value.is_a? String},
    error_message: 'text needs to be a String'
  }, 
  "url" => {
    valid: lambda {|value| value.is_a? String},
    error_message: 'url needs to be a String'
  },  
  "html" => {
    valid: lambda {|value| value.is_a? String},
    error_message: 'html needs to be a String'
  },  
  "html_fragment" => {
    valid: lambda {|value| value.is_a? String},
    error_message: 'html_fragment needs to be a String'
  }, 
  "lang" => {
    valid: lambda {|value| (value.is_a? String and ["de", "en", "fr", "it", "pt", "auto"].include? value)},
    error_message: 'lang needs to be one of the following values: "de", "en", "fr", "it", "pt", "auto"'
  }, 
  "min_confidence" => { 
    valid: lambda {|value| (value.is_a? Float and [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0].include? value) },
    error_message: 'wrong format'
  }, 
  "min_length" => {
    valid: lambda {|value| (value.is_a? Integer and value >= 2) },
    error_message: 'wrong format'
  }, 
  "social.hashtag" => {
    valid: lambda {|value| (value.is_a? TrueClass or value.is_a? FalseClass)},
    error_message: 'wrong format'
  }, 
  "social.mention" => {
    valid: lambda {|value| (value.is_a? TrueClass or value.is_a? FalseClass)},
    error_message: 'wrong format'
  }, 
  "include" => {
    valid: lambda {|values| (values.is_a? Array and values.all?{|value|["types", "categories", "abstract", "image", "lod", "alternate_labels"].include? value})},
    error_message: 'wrong format'
  }, 
  "extra_types" => {
    valid: lambda {|values| (values.is_a? Array and values.all?{|value|["phone", "vat"].include? value})},
    error_message: 'wrong format'
  }, 
  "country" => {
    valid: lambda {|value| ["AD", "AE", "AM", "AO", "AQ", "AR", "AU", "BB", "BR", "BS", "BY", "CA", "CH", "CL", "CN", "CX", "DE", "FR", "GB", "HU", "IT", "JP", "KR", "MX", "NZ", "PG", "PL", "RE", "SE", "SG", "US", "YT", "ZW"].include? value},
    error_message: 'wrong format'
  }, 
  "custom_spots" => {
    valid: lambda {|value| value.is_a? String},
    error_message: 'custom_spots needs to be a String'
  }
}

Method Summary

Methods inherited from Analysis::Request

#analyze