class Azure::CognitiveServices::TextAnalytics::V2_1_preview::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-preview/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-preview' 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 input [BatchInput] 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 242 def detect_language(input, custom_headers:nil) response = detect_language_async(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 input [BatchInput] 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 275 def detect_language_async(input, custom_headers:nil) fail ArgumentError, 'endpoint is nil' if endpoint.nil? fail ArgumentError, 'input is nil' if input.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_preview::Models::BatchInput.mapper() request_content = self.serialize(request_mapper, 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]], 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_preview::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 input [BatchInput] 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 259 def detect_language_with_http_info(input, custom_headers:nil) detect_language_async(input, custom_headers:custom_headers).value! end
The API returns a list of recognized entities in a given document.
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.The API returns a list of known entities and general named entities (”Person“, ”Location“, ”Organization“ etc) in a given document. Known entities are returned with Wikipedia Id and Wikipedia link, and also Bing Id which can be used in Bing Entity Search API. General named entities are returned with entity types. If a general named entity is also a known entity, then all information regarding it (Wikipedia Id, Bing Id, entity type etc) will be returned. See the <a href=”Supported“>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/how-tos/text-analytics-how-to-entity-linking#supported-types-for-named-entity-recognition”>Supported Entity Types in Text Analytics API</a> for the list of supported Entity Types. 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 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 [EntitiesBatchResultV2dot1] operation results.
# File lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 473 def entities(input, custom_headers:nil) response = entities_async(input, custom_headers:custom_headers).value! response.body unless response.nil? end
The API returns a list of recognized entities in a given document.
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.The API returns a list of known entities and general named entities (”Person“, ”Location“, ”Organization“ etc) in a given document. Known entities are returned with Wikipedia Id and Wikipedia link, and also Bing Id which can be used in Bing Entity Search API. General named entities are returned with entity types. If a general named entity is also a known entity, then all information regarding it (Wikipedia Id, Bing Id, entity type etc) will be returned. See the <a href=”Supported“>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/how-tos/text-analytics-how-to-entity-linking#supported-types-for-named-entity-recognition”>Supported Entity Types in Text Analytics API</a> for the list of supported Entity Types. 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 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 536 def entities_async(input, custom_headers:nil) fail ArgumentError, 'endpoint is nil' if endpoint.nil? fail ArgumentError, 'input is nil' if input.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_preview::Models::MultiLanguageBatchInput.mapper() request_content = self.serialize(request_mapper, 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]], 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_preview::Models::EntitiesBatchResultV2dot1.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.
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.The API returns a list of known entities and general named entities (”Person“, ”Location“, ”Organization“ etc) in a given document. Known entities are returned with Wikipedia Id and Wikipedia link, and also Bing Id which can be used in Bing Entity Search API. General named entities are returned with entity types. If a general named entity is also a known entity, then all information regarding it (Wikipedia Id, Bing Id, entity type etc) will be returned. See the <a href=”Supported“>docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/how-tos/text-analytics-how-to-entity-linking#supported-types-for-named-entity-recognition”>Supported Entity Types in Text Analytics API</a> for the list of supported Entity Types. 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 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 505 def entities_with_http_info(input, custom_headers:nil) entities_async(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 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 132 def key_phrases(input, custom_headers:nil) response = key_phrases_async(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 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 173 def key_phrases_async(input, custom_headers:nil) fail ArgumentError, 'endpoint is nil' if endpoint.nil? fail ArgumentError, 'input is nil' if input.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_preview::Models::MultiLanguageBatchInput.mapper() request_content = self.serialize(request_mapper, 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]], 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_preview::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 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 153 def key_phrases_with_http_info(input, custom_headers:nil) key_phrases_async(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-preview/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-preview/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-preview/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 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 [SentimentBatchResult] operation results.
# File lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 348 def sentiment(input, custom_headers:nil) response = sentiment_async(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 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 389 def sentiment_async(input, custom_headers:nil) fail ArgumentError, 'endpoint is nil' if endpoint.nil? fail ArgumentError, 'input is nil' if input.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_preview::Models::MultiLanguageBatchInput.mapper() request_content = self.serialize(request_mapper, 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]], 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_preview::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 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 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-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 369 def sentiment_with_http_info(input, custom_headers:nil) sentiment_async(input, custom_headers:custom_headers).value! end
Private Instance Methods
Adds telemetry information.
# File lib/v2.1-preview/generated/azure_cognitiveservices_textanalytics/text_analytics_client.rb, line 598 def add_telemetry sdk_information = 'azure_cognitiveservices_textanalytics' sdk_information = "#{sdk_information}/0.17.4" add_user_agent_information(sdk_information) end