class Azure::CognitiveServices::TextAnalytics::V2_1::TextAnalyticsClient
A service client - single point of access to the REST API.
Attributes
@return [String] The preferred language for the response.
@return [String] the base URI of the service.
@return Subscription credentials which uniquely identify client subscription.
@return Credentials needed for the client to connect to Azure
.
@return [String] Supported Cognitive Services endpoints (protocol and hostname, for example: westus.api.cognitive.microsoft.com).
@return [Boolean] Whether a unique x-ms-client-request-id should be generated. When set to true a unique x-ms-client-request-id value is generated and included in each request. Default is true.
@return [Integer] The retry timeout in seconds for Long Running Operations. Default value is 30.
Public Class Methods
Creates initializes a new instance of the TextAnalyticsClient
class. @param credentials [MsRest::ServiceClientCredentials] credentials to authorize HTTP requests made by the service client. @param options [Array] filters to be applied to the HTTP requests.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 45 def initialize(credentials = nil, options = nil) super(credentials, options) @base_url = '{Endpoint}/text/analytics/v2.1' fail ArgumentError, 'invalid type of credentials input parameter' unless credentials.is_a?(MsRest::ServiceClientCredentials) unless credentials.nil? @credentials = credentials @accept_language = 'en-US' @long_running_operation_retry_timeout = 30 @generate_client_request_id = true add_telemetry end
Public Instance Methods
The API returns the detected language and a numeric score between 0 and 1.
Scores close to 1 indicate 100% certainty that the identified language is true. A total of 120 languages are supported.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param language_batch_input [LanguageBatchInput] Collection of documents to analyze. @param custom_headers [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [LanguageBatchResult] operation results.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 131 def detect_language(show_stats:nil, language_batch_input:nil, custom_headers:nil) response = detect_language_async(show_stats:show_stats, language_batch_input:language_batch_input, custom_headers:custom_headers).value! response.body unless response.nil? end
The API returns the detected language and a numeric score between 0 and 1.
Scores close to 1 indicate 100% certainty that the identified language is true. A total of 120 languages are supported.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param language_batch_input [LanguageBatchInput] Collection of documents to analyze. @param [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [Concurrent::Promise] Promise object which holds the HTTP response.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 170 def detect_language_async(show_stats:nil, language_batch_input:nil, custom_headers:nil) fail ArgumentError, 'endpoint is nil' if endpoint.nil? request_headers = {} request_headers['Content-Type'] = 'application/json; charset=utf-8' # Set Headers request_headers['x-ms-client-request-id'] = SecureRandom.uuid request_headers['accept-language'] = accept_language unless accept_language.nil? # Serialize Request request_mapper = Azure::CognitiveServices::TextAnalytics::V2_1::Models::LanguageBatchInput.mapper() request_content = self.serialize(request_mapper, language_batch_input) request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil path_template = 'languages' request_url = @base_url || self.base_url request_url = request_url.gsub('{Endpoint}', endpoint) options = { middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]], query_params: {'showStats' => show_stats}, body: request_content, headers: request_headers.merge(custom_headers || {}), base_url: request_url } promise = self.make_request_async(:post, path_template, options) promise = promise.then do |result| http_response = result.response status_code = http_response.status response_content = http_response.body unless status_code == 200 error_model = JSON.load(response_content) fail MsRest::HttpOperationError.new(result.request, http_response, error_model) end result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil? # Deserialize Response if status_code == 200 begin parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content) result_mapper = Azure::CognitiveServices::TextAnalytics::V2_1::Models::LanguageBatchResult.mapper() result.body = self.deserialize(result_mapper, parsed_response) rescue Exception => e fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result) end end result end promise.execute end
The API returns the detected language and a numeric score between 0 and 1.
Scores close to 1 indicate 100% certainty that the identified language is true. A total of 120 languages are supported.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param language_batch_input [LanguageBatchInput] Collection of documents to analyze. @param custom_headers [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [MsRestAzure::AzureOperationResponse] HTTP response information.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 151 def detect_language_with_http_info(show_stats:nil, language_batch_input:nil, custom_headers:nil) detect_language_async(show_stats:show_stats, language_batch_input:language_batch_input, custom_headers:custom_headers).value! end
The API returns a list of recognized entities in a given document.
To get even more information on each recognized entity we recommend using the Bing Entity Search API by querying for the recognized entities names. See the <a href=“Supported”>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/text-analytics-supported-languages“>Supported languages in Text Analytics API</a> for the list of enabled languages.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param multi_language_batch_input [MultiLanguageBatchInput] Collection of documents to analyze. @param custom_headers [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [EntitiesBatchResult] operation results.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 245 def entities(show_stats:nil, multi_language_batch_input:nil, custom_headers:nil) response = entities_async(show_stats:show_stats, multi_language_batch_input:multi_language_batch_input, custom_headers:custom_headers).value! response.body unless response.nil? end
The API returns a list of recognized entities in a given document.
To get even more information on each recognized entity we recommend using the Bing Entity Search API by querying for the recognized entities names. See the <a href=“Supported”>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/text-analytics-supported-languages“>Supported languages in Text Analytics API</a> for the list of enabled languages.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param multi_language_batch_input [MultiLanguageBatchInput] Collection of documents to analyze. @param [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [Concurrent::Promise] Promise object which holds the HTTP response.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 290 def entities_async(show_stats:nil, multi_language_batch_input:nil, custom_headers:nil) fail ArgumentError, 'endpoint is nil' if endpoint.nil? request_headers = {} request_headers['Content-Type'] = 'application/json; charset=utf-8' # Set Headers request_headers['x-ms-client-request-id'] = SecureRandom.uuid request_headers['accept-language'] = accept_language unless accept_language.nil? # Serialize Request request_mapper = Azure::CognitiveServices::TextAnalytics::V2_1::Models::MultiLanguageBatchInput.mapper() request_content = self.serialize(request_mapper, multi_language_batch_input) request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil path_template = 'entities' request_url = @base_url || self.base_url request_url = request_url.gsub('{Endpoint}', endpoint) options = { middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]], query_params: {'showStats' => show_stats}, body: request_content, headers: request_headers.merge(custom_headers || {}), base_url: request_url } promise = self.make_request_async(:post, path_template, options) promise = promise.then do |result| http_response = result.response status_code = http_response.status response_content = http_response.body unless status_code == 200 error_model = JSON.load(response_content) fail MsRest::HttpOperationError.new(result.request, http_response, error_model) end result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil? # Deserialize Response if status_code == 200 begin parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content) result_mapper = Azure::CognitiveServices::TextAnalytics::V2_1::Models::EntitiesBatchResult.mapper() result.body = self.deserialize(result_mapper, parsed_response) rescue Exception => e fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result) end end result end promise.execute end
The API returns a list of recognized entities in a given document.
To get even more information on each recognized entity we recommend using the Bing Entity Search API by querying for the recognized entities names. See the <a href=“Supported”>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/text-analytics-supported-languages“>Supported languages in Text Analytics API</a> for the list of enabled languages.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param multi_language_batch_input [MultiLanguageBatchInput] Collection of documents to analyze. @param custom_headers [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [MsRestAzure::AzureOperationResponse] HTTP response information.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 268 def entities_with_http_info(show_stats:nil, multi_language_batch_input:nil, custom_headers:nil) entities_async(show_stats:show_stats, multi_language_batch_input:multi_language_batch_input, custom_headers:custom_headers).value! end
The API returns a list of strings denoting the key talking points in the input text.
See the <a href=“Text”>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages“>Text Analytics Documentation</a> for details about the languages that are supported by key phrase extraction.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param multi_language_batch_input [MultiLanguageBatchInput] Collection of documents to analyze. Documents can now contain a language field to indicate the text language @param custom_headers [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [KeyPhraseBatchResult] operation results.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 366 def key_phrases(show_stats:nil, multi_language_batch_input:nil, custom_headers:nil) response = key_phrases_async(show_stats:show_stats, multi_language_batch_input:multi_language_batch_input, custom_headers:custom_headers).value! response.body unless response.nil? end
The API returns a list of strings denoting the key talking points in the input text.
See the <a href=“Text”>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages“>Text Analytics Documentation</a> for details about the languages that are supported by key phrase extraction.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param multi_language_batch_input [MultiLanguageBatchInput] Collection of documents to analyze. Documents can now contain a language field to indicate the text language @param [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [Concurrent::Promise] Promise object which holds the HTTP response.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 413 def key_phrases_async(show_stats:nil, multi_language_batch_input:nil, custom_headers:nil) fail ArgumentError, 'endpoint is nil' if endpoint.nil? request_headers = {} request_headers['Content-Type'] = 'application/json; charset=utf-8' # Set Headers request_headers['x-ms-client-request-id'] = SecureRandom.uuid request_headers['accept-language'] = accept_language unless accept_language.nil? # Serialize Request request_mapper = Azure::CognitiveServices::TextAnalytics::V2_1::Models::MultiLanguageBatchInput.mapper() request_content = self.serialize(request_mapper, multi_language_batch_input) request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil path_template = 'keyPhrases' request_url = @base_url || self.base_url request_url = request_url.gsub('{Endpoint}', endpoint) options = { middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]], query_params: {'showStats' => show_stats}, body: request_content, headers: request_headers.merge(custom_headers || {}), base_url: request_url } promise = self.make_request_async(:post, path_template, options) promise = promise.then do |result| http_response = result.response status_code = http_response.status response_content = http_response.body unless status_code == 200 error_model = JSON.load(response_content) fail MsRest::HttpOperationError.new(result.request, http_response, error_model) end result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil? # Deserialize Response if status_code == 200 begin parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content) result_mapper = Azure::CognitiveServices::TextAnalytics::V2_1::Models::KeyPhraseBatchResult.mapper() result.body = self.deserialize(result_mapper, parsed_response) rescue Exception => e fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result) end end result end promise.execute end
The API returns a list of strings denoting the key talking points in the input text.
See the <a href=“Text”>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages“>Text Analytics Documentation</a> for details about the languages that are supported by key phrase extraction.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param multi_language_batch_input [MultiLanguageBatchInput] Collection of documents to analyze. Documents can now contain a language field to indicate the text language @param custom_headers [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [MsRestAzure::AzureOperationResponse] HTTP response information.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 390 def key_phrases_with_http_info(show_stats:nil, multi_language_batch_input:nil, custom_headers:nil) key_phrases_async(show_stats:show_stats, multi_language_batch_input:multi_language_batch_input, custom_headers:custom_headers).value! end
Makes a request and returns the body of the response. @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete. @param path [String] the path, relative to {base_url}. @param options [Hash{String=>String}] specifying any request options like :body. @return [Hash{String=>String}] containing the body of the response. Example:
request_content = "{'location':'westus','tags':{'tag1':'val1','tag2':'val2'}}" path = "/path" options = { body: request_content, query_params: {'api-version' => '2016-02-01'} } result = @client.make_request(:put, path, options)
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 74 def make_request(method, path, options = {}) result = make_request_with_http_info(method, path, options) result.body unless result.nil? end
Makes a request asynchronously. @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete. @param path [String] the path, relative to {base_url}. @param options [Hash{String=>String}] specifying any request options like :body. @return [Concurrent::Promise] Promise object which holds the HTTP response.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 99 def make_request_async(method, path, options = {}) fail ArgumentError, 'method is nil' if method.nil? fail ArgumentError, 'path is nil' if path.nil? request_url = options[:base_url] || @base_url if(!options[:headers].nil? && !options[:headers]['Content-Type'].nil?) @request_headers['Content-Type'] = options[:headers]['Content-Type'] end request_headers = @request_headers request_headers.merge!({'accept-language' => @accept_language}) unless @accept_language.nil? options.merge!({headers: request_headers.merge(options[:headers] || {})}) options.merge!({credentials: @credentials}) unless @credentials.nil? super(request_url, method, path, options) end
Makes a request and returns the operation response. @param method [Symbol] with any of the following values :get, :put, :post, :patch, :delete. @param path [String] the path, relative to {base_url}. @param options [Hash{String=>String}] specifying any request options like :body. @return [MsRestAzure::AzureOperationResponse] Operation response containing the request, response and status.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 86 def make_request_with_http_info(method, path, options = {}) result = make_request_async(method, path, options).value! result.body = result.response.body.to_s.empty? ? nil : JSON.load(result.response.body) result end
The API returns a numeric score between 0 and 1.
Scores close to 1 indicate positive sentiment, while scores close to 0 indicate negative sentiment. A score of 0.5 indicates the lack of sentiment (e.g. a factoid statement). See the <a href=“Text”>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages“>Text Analytics Documentation</a> for details about the languages that are supported by sentiment analysis.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param multi_language_batch_input [MultiLanguageBatchInput] Collection of documents to analyze. @param custom_headers [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [Object] operation results.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 489 def sentiment(show_stats:nil, multi_language_batch_input:nil, custom_headers:nil) response = sentiment_async(show_stats:show_stats, multi_language_batch_input:multi_language_batch_input, custom_headers:custom_headers).value! response.body unless response.nil? end
The API returns a numeric score between 0 and 1.
Scores close to 1 indicate positive sentiment, while scores close to 0 indicate negative sentiment. A score of 0.5 indicates the lack of sentiment (e.g. a factoid statement). See the <a href=“Text”>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages“>Text Analytics Documentation</a> for details about the languages that are supported by sentiment analysis.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param multi_language_batch_input [MultiLanguageBatchInput] Collection of documents to analyze. @param [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [Concurrent::Promise] Promise object which holds the HTTP response.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 536 def sentiment_async(show_stats:nil, multi_language_batch_input:nil, custom_headers:nil) fail ArgumentError, 'endpoint is nil' if endpoint.nil? request_headers = {} request_headers['Content-Type'] = 'application/json; charset=utf-8' # Set Headers request_headers['x-ms-client-request-id'] = SecureRandom.uuid request_headers['accept-language'] = accept_language unless accept_language.nil? # Serialize Request request_mapper = Azure::CognitiveServices::TextAnalytics::V2_1::Models::MultiLanguageBatchInput.mapper() request_content = self.serialize(request_mapper, multi_language_batch_input) request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil path_template = 'sentiment' request_url = @base_url || self.base_url request_url = request_url.gsub('{Endpoint}', endpoint) options = { middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]], query_params: {'showStats' => show_stats}, body: request_content, headers: request_headers.merge(custom_headers || {}), base_url: request_url } promise = self.make_request_async(:post, path_template, options) promise = promise.then do |result| http_response = result.response status_code = http_response.status response_content = http_response.body unless status_code == 200 || status_code == 500 error_model = JSON.load(response_content) fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model) end result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil? # Deserialize Response if status_code == 200 begin parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content) result_mapper = Azure::CognitiveServices::TextAnalytics::V2_1::Models::SentimentBatchResult.mapper() result.body = self.deserialize(result_mapper, parsed_response) rescue Exception => e fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result) end end # Deserialize Response if status_code == 500 begin parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content) result_mapper = Azure::CognitiveServices::TextAnalytics::V2_1::Models::ErrorResponse.mapper() result.body = self.deserialize(result_mapper, parsed_response) rescue Exception => e fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result) end end result end promise.execute end
The API returns a numeric score between 0 and 1.
Scores close to 1 indicate positive sentiment, while scores close to 0 indicate negative sentiment. A score of 0.5 indicates the lack of sentiment (e.g. a factoid statement). See the <a href=“Text”>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages“>Text Analytics Documentation</a> for details about the languages that are supported by sentiment analysis.
@param show_stats [Boolean] (optional) if set to true, response will contain input and document level statistics. @param multi_language_batch_input [MultiLanguageBatchInput] Collection of documents to analyze. @param custom_headers [Hash{String => String}] A hash of custom headers that will be added to the HTTP request.
@return [MsRestAzure::AzureOperationResponse] HTTP response information.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 513 def sentiment_with_http_info(show_stats:nil, multi_language_batch_input:nil, custom_headers:nil) sentiment_async(show_stats:show_stats, multi_language_batch_input:multi_language_batch_input, custom_headers:custom_headers).value! end
Private Instance Methods
Adds telemetry information.
# File lib/v2.1/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 608 def add_telemetry sdk_information = 'azure_cognitiveservices_textanalytics' sdk_information = "#{sdk_information}/0.17.4" add_user_agent_information(sdk_information) end