From 8aa4cc7077dbed7ca719c12abb10c93dfc64b4aa Mon Sep 17 00:00:00 2001 From: Clement Olivier Date: Fri, 10 Feb 2023 17:48:00 +0100 Subject: [PATCH] MeaningCloud (Independent Publisher) (#2329) * MeaningCloud (Independent Publisher) * feedback fixes --------- Co-authored-by: Clement Olivier --- .../MeaningCloud/apiDefinition.swagger.json | 1495 +++++++++++++++++ .../MeaningCloud/apiProperties.json | 23 + .../MeaningCloud/readme.md | 33 + 3 files changed, 1551 insertions(+) create mode 100644 independent-publisher-connectors/MeaningCloud/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/MeaningCloud/apiProperties.json create mode 100644 independent-publisher-connectors/MeaningCloud/readme.md diff --git a/independent-publisher-connectors/MeaningCloud/apiDefinition.swagger.json b/independent-publisher-connectors/MeaningCloud/apiDefinition.swagger.json new file mode 100644 index 000000000..9a934aa04 --- /dev/null +++ b/independent-publisher-connectors/MeaningCloud/apiDefinition.swagger.json @@ -0,0 +1,1495 @@ +{ + "swagger": "2.0", + "info": { + "title": "MeaningCloud", + "description": "MeaningCloud provides you a set of actions around classification, categorization, analysis and more.", + "version": "1.0", + "contact": { + "email": "clement@carfup.com", + "name": "Clement OLIVIER", + "url": "https://stuffandtacos.azurewebsites.net/" + } + }, + "host": "api.meaningcloud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/sentiment-2.1": { + "post": { + "responses": { + "200": { + "description": "Sentiment Analysis analyzes texts and detects their polarity, subjectivity, irony and emotional agreement.", + "schema": { + "type": "object", + "properties": { + "agreement": { + "type": "string", + "x-ms-summary": "Agreement", + "description": "Marks the agreement between the sentiments detected in the text, the sentence or the segment it refers to." + }, + "confidence": { + "type": "string", + "x-ms-summary": "Confidence", + "description": "Represents the confidence associated with the sentiment analysis performed on the text." + }, + "irony": { + "type": "string", + "x-ms-summary": "Irony", + "description": "Indicates the irony of the text." + }, + "model": { + "type": "string", + "x-ms-summary": "Model", + "description": "Holds the model used in the evaluation followed by an underscore and the language in which the analysis has been carried out." + }, + "score_tag": { + "type": "string", + "x-ms-summary": "Score Tag", + "description": "Polarity of the element it refers to: global polarity,polarity_term, sentimented_concept, sentimented_entity, segment or sentence." + }, + "sentence_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "agreement": { + "type": "string", + "x-ms-summary": "Agreement", + "description": "Marks the agreement between the sentiments detected in the text, the sentence or the segment it refers to." + }, + "bop": { + "type": "string", + "x-ms-summary": "Bop", + "description": "Marks if the sentence is the beginning if the paragraph (y or n)." + }, + "confidence": { + "type": "string", + "x-ms-summary": "Confidence", + "description": "Represents the confidence associated with the sentiment analysis performed on the text." + }, + "endp": { + "type": "string", + "description": "Position of the last character of the sentence (zero indexed).", + "x-ms-summary": "Endp" + }, + "inip": { + "type": "string", + "description": "Position of the first character of the sentence (zero indexed).", + "x-ms-summary": "Inip" + }, + "score_tag": { + "type": "string", + "x-ms-summary": "Score Tag", + "description": "Polarity of the element it refers to: global polarity,polarity_term, sentimented_concept, sentimented_entity, segment or sentence." + }, + "segment_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "agreement": { + "type": "string", + "x-ms-summary": "Agreement", + "description": "Marks the agreement between the sentiments detected in the text, the sentence or the segment it refers to." + }, + "confidence": { + "type": "string", + "x-ms-summary": "Confidence", + "description": "Represents the confidence associated with the sentiment analysis performed on the text." + }, + "endp": { + "type": "string", + "description": "Position of the last character of the sentence (zero indexed).", + "x-ms-summary": "Endp" + }, + "inip": { + "type": "string", + "description": "Position of the first character of the sentence (zero indexed).", + "x-ms-summary": "Inip" + }, + "polarity_term_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "confidence": { + "type": "string", + "x-ms-summary": "Confidence", + "description": "Represents the confidence associated with the sentiment analysis performed on the text." + }, + "endp": { + "type": "string", + "description": "Position of the last character of the sentence (zero indexed).", + "x-ms-summary": "Endp" + }, + "inip": { + "type": "string", + "description": "Position of the first character of the sentence (zero indexed).", + "x-ms-summary": "Inip" + }, + "score_tag": { + "type": "string", + "x-ms-summary": "Score Tag", + "description": "Polarity of the element it refers to: global polarity,polarity_term, sentimented_concept, sentimented_entity, segment or sentence." + }, + "sentimented_concept_list": { + "type": "array", + "items": { + "$ref": "#/definitions/SentimentConceptListResponse" + }, + "description": "This is a list of the concepts identified in the text with a certain polarity." + }, + "tag_stack": { + "type": "string", + "x-ms-summary": "Tag Stack", + "description": "Polarity modifiers affecting this polarity term." + }, + "text": { + "type": "string", + "x-ms-summary": "Text", + "description": "Text of the term, including in parentheses the polarity modifiers it is affected by, and the context words used to determine its polarity" + } + } + }, + "description": "List of words with polarity found in the segment." + }, + "score_tag": { + "type": "string", + "x-ms-summary": "Score Tag", + "description": "Polarity of the element it refers to: global polarity,polarity_term, sentimented_concept, sentimented_entity, segment or sentence." + }, + "segment_type": { + "type": "string", + "x-ms-summary": "Segment Type", + "description": "This field indicates if the segment has been used to compute the aggregated polarity of its parent." + }, + "text": { + "type": "string", + "x-ms-summary": "Text", + "description": "Text of the segment" + } + } + }, + "description": "List of segments in which each sentence has been divided to perform the analysis." + }, + "sentimented_concept_list": { + "type": "array", + "items": { + "$ref": "#/definitions/SentimentConceptListResponse" + }, + "description": "This is a list of the concepts identified in the text with a certain polarity." + }, + "sentimented_entity_list": { + "type": "array", + "items": { + "$ref": "#/definitions/SentimentConceptListResponse" + }, + "description": "This is a list of the entities identified in the text with a certain polarity." + }, + "text": { + "type": "string", + "description": "text" + } + } + }, + "description": "sentence_list" + }, + "sentimented_concept_list": { + "type": "array", + "items": { + "$ref": "#/definitions/SentimentConceptListResponse" + }, + "description": "This is a list of the concepts identified in the text with a certain polarity." + }, + "sentimented_entity_list": { + "type": "array", + "items": { + "$ref": "#/definitions/SentimentConceptListResponse" + }, + "description": "sentimented_entity_list" + }, + "status": { + "type": "object", + "properties": { + "code": { + "type": "string", + "x-ms-summary": "Status code", + "description": "Numerical value of result code." + }, + "msg": { + "type": "string", + "x-ms-summary": "Message", + "description": "Human-readable error code, if any, or OK." + }, + "credits": { + "type": "string", + "x-ms-summary": "Credits", + "description": "Credits consumed by the request. A credit corresponds to a bucket of 500 words." + }, + "remaining_credits": { + "type": "string", + "x-ms-summary": "Remaining credits", + "description": "Credits left to reach the usage limit." + } + } + }, + "subjectivity": { + "type": "string", + "x-ms-summary": "Subjectivity", + "description": "Marks the subjectivity of the text." + } + } + } + } + }, + "summary": "Sentiment Analysis", + "operationId": "SentimentAnalysis", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json", + "text/plain" + ], + "parameters": [ + { + "name": "key", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "API Key", + "description": "Authorization key for using MeaningCloud services." + }, + { + "name": "txt", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Text to Analyse", + "description": "Text to Analyse." + }, + { + "name": "lang", + "in": "formData", + "required": true, + "type": "string", + "default": "auto", + "x-ms-summary": "Language of the text", + "description": "Language of the text to analyze." + }, + { + "name": "of", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "json", + "xml" + ], + "x-ms-summary": "Output format", + "description": "Output format.", + "default": "json" + }, + { + "name": "txtf", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "plain", + "markup" + ], + "x-ms-summary": "Text format", + "description": "The text format parameter specifies if the text included in the txt parameter uses markup language that needs to be interpreted.", + "default": "plain" + }, + { + "name": "model", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "x-ms-summary": "Model to use", + "description": "Sentiment model to use." + }, + { + "name": "verbose", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "y", + "n" + ], + "x-ms-summary": "Verbose mode", + "description": "When active, it shows additional information about the sentiment analysis specifically.", + "default": "y" + }, + { + "name": "uw", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "y", + "n" + ], + "x-ms-summary": "Unknown words", + "description": "Deal with unknown words.", + "default": "n" + } + ], + "description": "Sentiment Analysis is MeaningCloud's solution for performing a detailed multilingual sentiment analysis of texts from different sources." + } + }, + "/class-2.0": { + "post": { + "responses": { + "200": { + "description": "Text Classification classifies texts based on a hierarchical categorization or taxonomy.", + "schema": { + "type": "object", + "properties": { + "category_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "abs_relevance": { + "type": "string", + "x-ms-summary": "Abs relevance", + "description": "Absolute relevance value of the category." + }, + "code": { + "type": "string", + "x-ms-summary": "Code", + "description": "Category code." + }, + "label": { + "type": "string", + "x-ms-summary": "Label", + "description": "Category description." + }, + "relevance": { + "type": "string", + "x-ms-summary": "Relevance", + "description": "Relative relevance value of the category, a number in the 0-100% range, and computed with respect to the top ranked result." + } + } + }, + "description": "Contains list of categories in which the input text is classified." + }, + "status": { + "type": "object", + "properties": { + "code": { + "type": "string", + "x-ms-summary": "Status code", + "description": "Numerical value of result code." + }, + "msg": { + "type": "string", + "x-ms-summary": "Message", + "description": "Human-readable error code, if any, or OK." + }, + "credits": { + "type": "string", + "x-ms-summary": "Credits", + "description": "Credits consumed by the request. A credit corresponds to a bucket of 500 words." + }, + "remaining_credits": { + "type": "string", + "x-ms-summary": "Remaining credits", + "description": "Credits left to reach the usage limit." + } + } + } + } + } + } + }, + "summary": "Text Classification", + "operationId": "TextClassification", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json", + "text/plain" + ], + "parameters": [ + { + "name": "key", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "API Key", + "description": "Authorization key for using MeaningCloud services." + }, + { + "name": "txt", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Text to Analyse", + "description": "Text to Analyse." + }, + { + "name": "model", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Classification model to use", + "description": "It will define into which categories the text may be classified.", + "enum": [ + "IPTC_en", + "IPTC_es", + "IPTC_fr", + "IPTC_it", + "IPTC_pt", + "IPTC_ca", + "EUROVOC_es_ca", + "BusinessRep_es", + "SocialMedia_en", + "SocialMedia_es" + ] + }, + { + "name": "title", + "in": "formData", + "type": "string", + "x-ms-summary": "Descriptive title of the content", + "description": "The terms relevant for the classification process found in the title will have more influence in the classification than if they were in the text." + }, + { + "name": "debug", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "y", + "n" + ], + "x-ms-summary": "Debug mode", + "description": "When enabled, it shows additional debug information about the rules in the model that have been fired.", + "default": "y" + }, + { + "name": "verbose", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "y", + "n" + ], + "x-ms-summary": "Verbose mode", + "description": "When active, it shows additional information about the sentiment analysis specifically.", + "default": "n" + }, + { + "name": "expand_hierarchy", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "n", + "p", + "a" + ], + "x-ms-summary": "Expand Hierarchy", + "description": "Deal with unknown words.", + "default": "n" + } + ], + "description": "It allows you to select if in the results you want to include the parents or the ancestors of the category/categories." + } + }, + "/reputation-2.0": { + "post": { + "responses": { + "200": { + "description": "This API provides a semantic tagging of multilingual content for the purpose of Corporate Reputation analysis.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "x-ms-summary": "Status code", + "description": "Numerical value of result code." + }, + "msg": { + "type": "string", + "x-ms-summary": "Message", + "description": "Human-readable error code, if any, or OK." + }, + "credits": { + "type": "integer", + "x-ms-summary": "Credits", + "description": "Credits consumed by the request. A credit corresponds to a bucket of 500 words." + }, + "remaining_credits": { + "type": "integer", + "x-ms-summary": "Remaining credits", + "description": "Credits left to reach the usage limit." + } + } + }, + "entity_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "ID", + "description": "Id of the entity." + }, + "form": { + "type": "string", + "x-ms-summary": "Form", + "description": "Main form of the entity." + }, + "type": { + "type": "string", + "x-ms-summary": "Type", + "description": "Ontology type of the entity." + }, + "polarity": { + "type": "string", + "x-ms-summary": "Polarity", + "description": "Global polarity of the entity." + }, + "category_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "x-ms-summary": "Code", + "description": "Category code." + }, + "label": { + "type": "string", + "x-ms-summary": "Label", + "description": "Category description." + }, + "polarity": { + "type": "string", + "x-ms-summary": "Polarity", + "description": "Polarity associated to the category." + }, + "abs_relevance": { + "type": "integer", + "x-ms-summary": "Absolute relevance", + "format": "int32", + "description": "Absolute relevance value of the category." + }, + "relat_relevance": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Relative relevance", + "description": "Relative relevance value of the category, a number in the 0-100% range, and computed with respect to the top ranked result." + }, + "sentence_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "text": { + "type": "string", + "x-ms-summary": "Text", + "description": "Sentence text." + }, + "inip": { + "type": "string", + "x-ms-summary": "Inip", + "description": "Position of the first character of the sentence (zero indexed)." + }, + "endp": { + "type": "string", + "x-ms-summary": "Endp", + "description": "Position of the last character of the sentence (zero indexed)." + } + } + }, + "description": "List of sentences in which the text is divided." + } + } + }, + "description": "List of reputational categories in which the entity is classified." + } + } + }, + "description": "List of the entities identified in the text." + } + } + } + } + }, + "summary": "Corporate Reputation", + "operationId": "CorporateReputation", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "key", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "API Key", + "description": "Authorization key for using MeaningCloud services." + }, + { + "name": "txt", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Text to Analyse", + "description": "Text to Analyse." + }, + { + "name": "lang", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Language to Analyse", + "description": "Language of the text to analyze.", + "default": "auto" + }, + { + "name": "model", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "x-ms-summary": "Classification model to use", + "description": "It will define into which categories the text may be classified.", + "default": "CorporateReputation" + } + ], + "description": "This API semantically tags content in various languages for Corporate Reputation analysis purposes." + } + }, + "/summarization-1.0": { + "post": { + "responses": { + "200": { + "description": "Summarize a given text/document according to the specified length.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "object", + "properties": { + "code": { + "type": "string", + "x-ms-summary": "Status code", + "description": "Numerical value of result code." + }, + "msg": { + "type": "string", + "x-ms-summary": "Message", + "description": "Human-readable error code, if any, or OK." + }, + "credits": { + "type": "string", + "x-ms-summary": "Credits", + "description": "Credits consumed by the request. A credit corresponds to a bucket of 500 words." + }, + "remaining_credits": { + "type": "string", + "x-ms-summary": "Remaining credits", + "description": "Credits left to reach the usage limit." + } + } + }, + "summary": { + "type": "string", + "description": "String of text with the summary extracted for the document.", + "x-ms-summary": "Summary" + } + } + } + } + }, + "summary": "String of text with the summary extracted for the document", + "operationId": "Summarization", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json", + "text/plain" + ], + "parameters": [ + { + "name": "key", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "API Key", + "description": "Authorization key for using MeaningCloud services." + }, + { + "name": "txt", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Text to Analyse", + "description": "Text to Analyse." + }, + { + "name": "lang", + "in": "formData", + "required": true, + "type": "string", + "default": "auto", + "x-ms-summary": "Language of the text", + "description": "Language of the text to analyze." + }, + { + "name": "sentences", + "in": "formData", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-summary": "Number of sentences", + "description": "Number of sentences for the summary." + }, + { + "name": "of", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "json", + "xml" + ], + "x-ms-summary": "Output format", + "description": "Output format.", + "default": "json" + } + ], + "description": "Summarization tries to extract a summary for a given document, selecting the most relevant sentences in it to try to sum up what it is about." + } + }, + "/deepcategorization-1.0": { + "post": { + "responses": { + "200": { + "description": "Deep Categorization assigns one or more categories to a text, using a very detailed rule-based language that allows you to identify very specific scenarios and patterns using a combination of morphological, semantic and text rules.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "object", + "properties": { + "code": { + "type": "string", + "x-ms-summary": "Status code", + "description": "Numerical value of result code." + }, + "msg": { + "type": "string", + "x-ms-summary": "Message", + "description": "Human-readable error code, if any, or OK." + }, + "credits": { + "type": "string", + "x-ms-summary": "Credits", + "description": "Credits consumed by the request. A credit corresponds to a bucket of 500 words." + }, + "remaining_credits": { + "type": "string", + "x-ms-summary": "Remaining credits", + "description": "Credits left to reach the usage limit." + } + } + }, + "category_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "x-ms-summary": "Code", + "description": "Category code." + }, + "label": { + "type": "string", + "x-ms-summary": "Label", + "description": "Category description." + }, + "abs_relevance": { + "type": "string", + "x-ms-summary": "Absolute relevance", + "description": "Absolute relevance value of the category." + }, + "relevance": { + "type": "string", + "x-ms-summary": "Relevance", + "description": "Relative relevance value of the category, a number in the 0-100% range." + } + } + }, + "description": "Contains list of categories in which the input text is classified." + } + } + } + } + }, + "summary": "Deep Categorization (premium)", + "operationId": "DeepCategorization", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json", + "text/plain" + ], + "parameters": [ + { + "name": "key", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "API Key", + "description": "Authorization key for using MeaningCloud services." + }, + { + "name": "txt", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Text to Analyse", + "description": "Text to Analyse." + }, + { + "name": "model", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Classification model to use", + "description": "It will define into which categories the text may be classified.", + "enum": [ + "IAB_2.0", + "IAB_2.0-tier3", + "IAB_2.0-tier4", + "Emotion", + "IntentionAnalysis", + "VoC-Generic", + "VoC-Banking", + "VoC-Insurance", + "VoC-Retail", + "VoC-Telco", + "VoE-Performance", + "VoE-Organization", + "VoE-ExitInterview" + ] + }, + { + "name": "title", + "in": "formData", + "type": "string", + "x-ms-summary": "Descriptive title of the content", + "description": "The terms relevant for the classification process found in the title will have more influence in the classification than if they were in the text." + }, + { + "name": "of", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "json", + "xml" + ], + "x-ms-summary": "Output format", + "description": "Output format.", + "default": "json" + }, + { + "name": "debug", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "y", + "n" + ], + "x-ms-summary": "Debug mode", + "description": "When enabled, it shows additional debug information about the rules in the model that have been fired.", + "default": "n" + }, + { + "name": "verbose", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "y", + "n" + ], + "x-ms-summary": "Verbose mode", + "description": "When active, it shows additional information about the sentiment analysis specifically.", + "default": "n" + }, + { + "name": "polarity", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "y", + "n" + ], + "x-ms-summary": "Polarity", + "description": "Determines if categories will contain an associated polarity value.", + "default": "n" + } + ], + "description": "Text Classification assigns one or more classes to a text according to their content." + } + }, + "/lang-4.0/identification": { + "post": { + "responses": { + "200": { + "description": "Language Identification automatically detects the language of texts obtained from any source.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "x-ms-summary": "Status code", + "description": "Numerical value of result code." + }, + "msg": { + "type": "string", + "x-ms-summary": "Message", + "description": "Human-readable error code, if any, or OK." + }, + "credits": { + "type": "integer", + "x-ms-summary": "Credits", + "description": "Credits consumed by the request. A credit corresponds to a bucket of 500 words." + }, + "remaining_credits": { + "type": "integer", + "x-ms-summary": "Remaining credits", + "description": "Credits left to reach the usage limit." + } + } + }, + "language_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "iso-639-1": { + "type": "string", + "x-ms-summary": "ISO-639-1", + "description": "Two-letter code of the language if it is included in the ISO-639-1 standard." + }, + "iso-639-2": { + "type": "string", + "x-ms-summary": "ISO-639-2", + "description": "Two-letter code of the language if it is included in the ISO-639-2 standard." + }, + "iso-639-3": { + "type": "string", + "x-ms-summary": "ISO-639-3", + "description": "Two-letter code of the language if it is included in the ISO-639-3 standard." + }, + "language": { + "type": "string", + "x-ms-summary": "Language", + "description": "Code of the language." + }, + "name": { + "type": "string", + "x-ms-summary": "Name", + "description": "Human-readable name of the language." + }, + "relevance": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Relevance", + "description": "Relevance value associated to the detected language." + } + } + }, + "description": "Contains the list of languages detected, sorted by relevance." + }, + "deepTime": { + "type": "number", + "format": "float", + "x-ms-summary": "DeepTime", + "description": "Time taken for the neural network to perform the identification." + }, + "time": { + "type": "number", + "format": "float", + "description": "Time taken for the API to perform the request.", + "x-ms-summary": "Time" + } + } + } + } + }, + "summary": "Language Identification", + "operationId": "LanguageIdentification", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "key", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "API Key", + "description": "Authorization key for using MeaningCloud services." + }, + { + "name": "txt", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Text to Analyse", + "description": "Text to Analyse." + } + ], + "description": "Language Identification (LID) is the process of finding out in which language a given text is written." + } + }, + "/clustering-1.1": { + "post": { + "responses": { + "200": { + "description": "This tool automatically groups documents by similarity and detects the most significant subjects.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "object", + "properties": { + "code": { + "type": "string", + "x-ms-summary": "Status code", + "description": "Numerical value of result code." + }, + "msg": { + "type": "string", + "x-ms-summary": "Message", + "description": "Human-readable error code, if any, or OK." + }, + "credits": { + "type": "string", + "x-ms-summary": "Credits", + "description": "Credits consumed by the request. A credit corresponds to a bucket of 500 words." + }, + "remaining_credits": { + "type": "string", + "x-ms-summary": "Remaining credits", + "description": "Credits left to reach the usage limit." + } + } + }, + "cluster_list": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "x-ms-summary": "Title", + "description": "Contains the title assigned to the cluster. If more than one term is assigned, they will be separated by commas." + }, + "size": { + "type": "integer", + "x-ms-summary": "Size", + "description": "Contains the number of documents included in the cluster." + }, + "score": { + "type": "string", + "x-ms-summary": "Score", + "description": "Relevance value assigned to the cluster." + }, + "document_list": { + "type": "object", + "properties": { + "1": { + "type": "string", + "x-ms-summary": "Document 1", + "description": "Document 1" + }, + "2": { + "type": "string", + "x-ms-summary": "Document 2", + "description": "Document 2" + }, + "3": { + "type": "string", + "x-ms-summary": "Document 3", + "description": "Document 3" + }, + "4": { + "type": "string", + "x-ms-summary": "Document 4", + "description": "Document 4" + }, + "5": { + "type": "string", + "x-ms-summary": "Document 5", + "description": "Document 5" + }, + "6": { + "type": "string", + "x-ms-summary": "Document 6", + "description": "Document 6" + }, + "7": { + "type": "string", + "x-ms-summary": "Document 7", + "description": "Document 7" + }, + "8": { + "type": "string", + "x-ms-summary": "Document 8", + "description": "Document 8" + }, + "9": { + "type": "string", + "x-ms-summary": "Document 9", + "description": "Document 9" + }, + "10": { + "type": "string", + "x-ms-summary": "Document 10", + "description": "Document 10" + } + }, + "description": "List of documents assigned to the cluster." + } + } + }, + "description": "List of cluster objects that have been detected for the set of documents sent." + } + } + } + } + }, + "summary": "Text Clustering", + "operationId": "TextClustering", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json", + "text/plain" + ], + "parameters": [ + { + "name": "key", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "API Key", + "description": "Authorization key for using MeaningCloud services." + }, + { + "name": "txt", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Text to Analyse", + "description": "Text to Analyse." + }, + { + "name": "lang", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Language of text", + "description": "It specifies the language in which the text is.", + "enum": [ + "en", + "es", + "it", + "fr", + "pt", + "ca", + "da", + "sv", + "no", + "fi", + "zh", + "ru", + "ar" + ] + }, + { + "name": "of", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "json", + "xml" + ], + "x-ms-summary": "Output format", + "description": "Output format.", + "default": "json" + }, + { + "name": "mode", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "tm", + "dg" + ], + "x-ms-summary": "Mode", + "description": "Define the approach used to carry out the clustering process.", + "default": "tm" + }, + { + "name": "sw", + "in": "formData", + "type": "string", + "x-ms-visibility": "advanced", + "enum": [ + "y", + "n" + ], + "x-ms-summary": "Stop words", + "description": "Stopwords to be ignored by the algorithm, both in the clustering process, and as labels for the clusters.", + "default": "n" + } + ], + "description": "This is MeaningCloud's solution for automatic document clustering, i.e., the task of grouping a set of texts in such a way that texts in the same group (called a cluster) are more similar to each other than to those in other clusters." + } + }, + "/documentstructure-1.0": { + "post": { + "responses": { + "200": { + "description": "This service extracts different sections of a given document with markup content, including titles, sections, abstract and parts of an email.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "object", + "properties": { + "code": { + "type": "string", + "x-ms-summary": "Status code", + "description": "Numerical value of result code." + }, + "msg": { + "type": "string", + "x-ms-summary": "Message", + "description": "Human-readable error code, if any, or OK." + }, + "credits": { + "type": "string", + "x-ms-summary": "Credits", + "description": "Credits consumed by the request. A credit corresponds to a bucket of 500 words." + }, + "remaining_credits": { + "type": "string", + "x-ms-summary": "Remaining credits", + "description": "Credits left to reach the usage limit." + } + } + }, + "title": { + "type": "string", + "description": "Title of the document", + "x-ms-summary": "Title" + }, + "abstract_list": { + "type": "array", + "items": {}, + "description": "It will include the pieces of text than include abstract markers such abstract, introduction, overview or summary.", + "x-ms-summary": "Abstract List" + }, + "heading_list": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Takes into account all the heading tags found in the text, as well as paragraphs that follow what can be considered a title format.", + "x-ms-summary": "Heading List" + }, + "emails_info": { + "type": "object", + "properties": { + "from": { + "type": "string", + "description": "String with the sender.", + "x-ms-summary": "From" + }, + "to": { + "type": "array", + "items": {}, + "description": "Array of strings with all the contacts the email is sent to.", + "x-ms-summary": "To" + }, + "cc": { + "type": "array", + "items": {}, + "description": "Array of strings with all the contacts in copy in the email.", + "x-ms-summary": "CC" + }, + "subject": { + "type": "array", + "items": {}, + "x-ms-summary": "Subject", + "description": "String with the subject of the email." + } + }, + "description": "This element will contain different sections of an email." + } + } + } + } + }, + "summary": "Document Structure", + "operationId": "DocumentStructure", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json", + "text/plain" + ], + "parameters": [ + { + "name": "key", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "API Key", + "description": "Authorization key for using MeaningCloud services." + }, + { + "name": "txt", + "in": "formData", + "required": true, + "type": "string", + "x-ms-summary": "Text to Analyse", + "description": "Text to Analyse." + }, + { + "name": "of", + "in": "formData", + "type": "string", + "enum": [ + "json", + "xml" + ], + "x-ms-summary": "Output format", + "description": "Output format.", + "default": "json" + } + ], + "description": "This service extracts different sections of a given document with markup content, including the title, headings, abstract and parts of an email." + } + } + }, + "definitions": { + "SentimentConceptListResponse": { + "type": "object", + "properties": { + "endp": { + "type": "string", + "description": "Position of the last character of the sentence (zero indexed).", + "x-ms-summary": "Endp" + }, + "inip": { + "type": "string", + "description": "Position of the first character of the sentence (zero indexed).", + "x-ms-summary": "Inip" + }, + "score_tag": { + "type": "string", + "x-ms-summary": "Score Tag", + "description": "Polarity of the element it refers to: global polarity,polarity_term, sentimented_concept, sentimented_entity, segment or sentence." + }, + "form": { + "type": "string", + "x-ms-summary": "Form", + "description": "Main form of the entity/concept in the language specified in the ilang parameter." + }, + "id": { + "type": "string", + "x-ms-summary": "ID", + "description": "ID of the entity/concept." + }, + "type": { + "type": "string", + "x-ms-summary": "Type", + "description": "Ontology type of the entity/concept." + }, + "variant": { + "type": "string", + "x-ms-summary": "Variant", + "description": "How the entity/concept appears in the text (only in polarity_term elements)." + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "key" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.meaningcloud.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.meaningcloud.com/data-protection-policy" + }, + { + "propertyName": "Terms and Conditions", + "propertyValue": "https://www.meaningcloud.com/terms-and-conditions" + }, + { + "propertyName": "Categories", + "propertyValue": "AI; Data" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/MeaningCloud/apiProperties.json b/independent-publisher-connectors/MeaningCloud/apiProperties.json new file mode 100644 index 000000000..d9d55ed50 --- /dev/null +++ b/independent-publisher-connectors/MeaningCloud/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "key", + "description": "The key for this api", + "tooltip": "Provide your key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Clement Olivier", + "stackOwner": "MeaningCloud" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/MeaningCloud/readme.md b/independent-publisher-connectors/MeaningCloud/readme.md new file mode 100644 index 000000000..ce2b1de7b --- /dev/null +++ b/independent-publisher-connectors/MeaningCloud/readme.md @@ -0,0 +1,33 @@ +# MeaningCloud +MeaningCloud's mission is to make high-quality text analytics accessible to all types of businesses. MeaningCloud is one of the leaders in the field of cloud-based text analytics. + +## Publisher: Clément Olivier + +## Prerequisites +You need to have a MeaningCloud account. You can [sign up](https://www.meaningcloud.com/developer/login) for free. + +## Supported Operations +The connector supports the following operations: +* `Deep Categorization`: Deep Categorization assigns one or more categories to a text, using a very detailed rule-based language that allows you to identify very specific scenarios and patterns using a combination of morphological, semantic and text rules. +* `Topics Extraction`: Topics Extraction extracts relevant information such as Named Entities (people, locations, organizations, etc), concepts as well as facts (dates, time expressions, quantities, etc) from bodies of text. +* `Text Classification`: Text Classification classifies texts based on a hierarchical categorization or taxonomy. +* `Sentiment Analysis`: Sentiment Analysis analyzes texts and detects their polarity, subjectivity, irony and emotional agreement. +* `Language Identification`: Language Identification automatically detects the language of texts obtained from any source. +* `Corporate Reputation`: This API provides a semantic tagging of multilingual content for the purpose of Corporate Reputation analysis. +* `Text Clustering`: This tool automatically groups documents by similarity and detects the most significant subjects. +* `Summarization`: Summarize a given text/document according to the specified length. +* `Document Structure Analysis`: This service extracts different sections of a given document with markup content, including titles, sections, abstract and parts of an email. + +## Obtaining Credentials +### Mailjet side +Through the [Subscription page](https://www.meaningcloud.com/developer/account/subscriptions), you can grab the Licence Key. + +### Custom connector side +Once you are configuring the connector on the Power Platform. +You will have to use the **API Key** in every request since it can't be send using the Header security parameter. + +## Getting Started +Visit MeaningCloud [REST API reference](https://www.meaningcloud.com/developer/apis) documentations page for further details. + +## Deployment Instructions +Import the swagger file in target Power Apps environment.