Prevyo Semantic Services
Briques logicielles pour comprendre le langage naturel.
Pour tester les Prevyo Semantic Services vous pouvez soit utiliser l'interface web https://pss.prevyo.com/ soit utiliser l'API REST. Pour utiliser l'API REST, vous devez créer un compte Prevyo sur https://pss.prevyo.com/. Une fois connecté(e), rendez-vous dans le menu en haut à droite de l'écran, dans API, pour récupérer le token d'authentification.
Versions
- 2022.12 changelog
- 2022.10 changelog
- 2022.06 changelog
- 2021.06 changelog
- 2020.08 changelog
- 2020.05 changelog
- 2020.03 changelog
- 2019.12
USAGE
API SYNCHRONE ET ASYNCHRONE
Au-dessous de 1000 mots, l'API est synchrone. Elle donnera le résultat dans la réponse à la requête.
Exemple :
curl -X POST "https://pss-api.prevyo.com/pss/api/v1/opinions" -H "accept: application/json" -H "Content-Type: application/json" -H "Poa-Token: XXXXXXXX" -d "{\"text\": \"Paul n'aime pas la très bonne pomme de Marie.\"}"
Réponse :
{"message":null,"code":0,"language":"fr","startTime":1679302086167,"endTime":1679302086167,"result":{"opinions":[{"target":"pomme","refTarget":"0-7","context":null,"value":-1.0,"emitter":"Paul"}],"globalScore":-1.0}}
Au-dessus de 1000 mots, l'API est asynchrone. Elle renverra un token dans la réponse à la requête.
Exemple:
curl -X POST "https://pss-api.prevyo.com/pss/api/v1/opinions" -H "accept: application/json" -H "Content-Type: application/json" -H "Poa-Token: XXXXXXXX" -d "{\"text\": \"<TEXTE DE PLUS DE 1000 MOTS>\"}"
Réponse :
{"token": "<TOKEN>","code": 201}
Récupération du résultat de l'analyse :
curl -X GET "https://pss-api.prevyo.com/pss/api/v1/opinions/<TOKEN>" -H "accept: application/json" -H "Content-Type: application/json" -H "Poa-Token: XXXXXXXX"
Réponse :
{"message":null,"code":0,"language":"fr","startTime":1679302086167,"endTime":1679302086167,"result":{...}
Notes pour les langues
Version 2
La langue n'est plus obligatoire. Si la langue n'est pas précisée, celle-ci sera automatiquement détectée.
Requête :
{
"text": "TEXT"
}
Réponse : la langue détectée sera retournée dans la réponse.
{
"message": null,
"code": 0,
"language": "fr",
...
Version 1
La langue doit être passée en paramètre. Les langues disponibles sont : français (fr) et anglais (en).
{
"text": "TEXT",
"parameters": [
{
"name": "lang",
"value": "LANG"
}
]
}
avec LANG : fr ou en.
REST API
Keywords
L'extraction de mots clés fournit une liste ordonnée des termes les plus pertinents dans le contexte donné.
Emotions
L'analyse d'émotions consiste à identifier les émotions (joie, colère, tristesse, dégoût, surprise, peur) qui sont exprimées dans le texte à analyser. Ce service permet d'identifier quelle est l'émotion ("value" dans l'output), qui la ressent ("emitter" dans l'output) et ce qui la déclenche ("trigger" dans l'output). Par exemple dans "Luc déteste les e-mails.", l'émetteur Luc a une émotion colérique envers le produit.
Opinions
L'analyse d'opinions (opinion mining ou sentiment analysis) consiste à identifier les opinions (positif/négatif/neutre) qui sont exprimées dans le texte à analyser. Ce service permet d'identifier quelle est l'opinion ("value" dans l'output), qui l'exprime ("emitter" dans l'output) et sur quoi porte-t-elle ("target" dans l'output). De surcroit, ce service fournit pour chaque texte un score global d'opinion compris entre -1 et 1. Par exemple dans "Luc déteste ce produit alors que Sophie l'adore." le produit est positif du point de vue de Luc mais négatif du point de vue de Marie.
Anonymiser
L'anonymiseur a pour objectif d'anonymiser toutes les entités que l'utilisateur souhaite (noms de personnes, de marques, d'organisations, lieux, dates, etc.).
Concepts
L'identification des concepts permet de faire émerger des concepts qui n'apparaissent pas explicitement dans le texte à analyser.
Résumés
Le générateur de résumés crée une synthèse du texte, dont le niveau d'abstraction est paramétrable.
Meaning Representation
Meaning Representation retourne une représentation sémantique du texte donné en entrée.
Highlighter
La reconnaissance des entités nommées vise à identifier dans un texte les noms de personnes, les noms de lieux, les noms d'organisations, les noms de produits, etc.
Parser
Le parser fournit une analyse syntaxique du texte, c'est-à-dire indique les catégories grammaticales de chaque mot, leur nature, leur lemme, etc., ainsi que les relations syntaxiques entre ces mots (sujet, objet, compléments, etc.).
Query
Le service Query prend une question écrite en langage naturel et la transforme en une requête SPARQL pour interroger une base de connaissances.
Glossaire général
-
annotatedValue (String) : Donnée textuelle annotée en utilisant le langage de balisage XML.
-
arguments (Object) : Sémantiquement un prédicat exprime une propriété ou une relation, c'est-à-dire quelque chose d'attribuable à une ou plusieurs entités (en l'occurrence les arguments). Dans "Luc envoie une facture proforma", "envoyer" est un prédicat ayant pour arguments "Luc" et "facture proforma".
-
concepts (List) : Liste de concepts.
-
context (String) : Ensemble de mots constituant le contexte de value. Dans "Luc envoie une facture proforma", "proforma" a pour contexte "facture proforma".
-
contexts (List) : Liste de contextes. Cf. "context" dans le glossaire.
-
definite (Boolean) : Indication sur le caractère défini ou indéfini de l'élément auquel cet attribut est rattaché (un token par exemple).
-
depRel (String) : Type de la relation de dépendance syntaxique entre deux tokens : sujet, objet, complément, etc. Voir la liste des dépendances gérées.
-
emitter (String) : Emetteur de l'élément auquel cet attribut est rattaché.
-
emotions (List) : Liste d'émotions parmi : joie, tristesse, peur, colère, dégoût, surprise. Dans "Luc déteste envoyer des e-mails", la colère et le dégoût sont des émotions déclenchées.
-
end (Integer) : Index de fin (en nombre de caractères). Dans "Luc envoie une facture proforma", la valeur de end pour le mot "une" est 14.
-
endTime (Time Stamp Unix) : Indication temporelle de la fin de l'analyse. Time Stamp Unix en millisecondes.
-
form (String) : mot ou locution tel qu'il apparaît dans le contexte (accordé en genre et en nombre par exemple). Par exemple la forme "envoyées" a pour lemme "envoyer". Voir "lemma" dans le glossaire.
-
gender (String) : Indique si le mot est au féminin ou au masculin.
-
head (String) : Tête syntaxique d'un token.
-
id (Integer) : Identifiant de l'élément auquel cet attribut est rattaché.
-
keywords (List) : Liste de mots clés.
-
lemma (String) : Forme canonique, considérée par convention comme non fléchie, d’un nom, d’un adjectif, d’un verbe, d’un pronom, présentée comme entrée principale, dans un dictionnaire. Par exemple la forme "envoyées" a pour lemme "envoyer". Voir "form" dans le glossaire.
-
level (Integer) : niveau d'analyse. Dans le cadre du service Summarizer, "level" est un niveau d'abstraction compris entre 1 et 10 : 1 indique un résumé proche du texte d'origine, 10 indique un texte le plus fortement résumé.
-
mode (String) : trait grammatical qui dénote la manière dont le verbe exprime le fait (indicatif, impératif, subjonctif, conditionnel, infinitif, participe, gérondif).
-
namedentities (List) : Liste des entités nommées (noms de personnes, de lieux, d'organisations, etc. ; cf. les tags ayant pour préfixe "nerd:" dans l'entrée "tag" du glossaire).
-
negation (Boolean : true/false) : Indique si le token, la valeur ou le prédicat considéré est négatif ou affirmatif. Dans "Luc envoie une facture proforma", l'attribut negation vaut false car la phrase est affirmative.
-
number : Indique si le mot est au singulier ou au pluriel.
-
opinions (List) : Liste des opinions positives et négatives détectées dans le texte.
-
person (String) : Indique la première personne ("1"), la deuxième personne ("2") ou la troisième personne ("3"). Par exemple, "vous" est la deuxième personne du pluriel (voir "plural").
-
pointOfView (String) : Indication sur la personne qui émet une information, un jugement, un sentiment, une émotion, ... Dans "Luc déteste envoyer des e-mails", la colère et le dégoût sont des émotions portées sur l'envoie d'e-mails, du point de vue de Luc.
-
plural (String) : Indication sur le caractère singulier ("false") ou pluriel ("true") de l'élément auquel il est rattaché.
-
polarity (Double between -1 and +1) : Sentiment positif, négatif ou neutre exprimé dans le texte. Dans "Luc déteste envoyer une facture", un sentiment négatif est déclenchée.
-
pos (String) : Catégorie grammaticale. Liste des catégories grammaticales gérées (pos) : ADJ : Adjectif, ADJPOS : Adjectif possessif, ADJDEM : Adjectif démonstratif, ADJNUM : Adjectif numéral, ADJVPP : Adjectif ou Verbe au participe passé, ADJWH : Adjectif interrogatif, ADV : Adverbe, ADVHW : Adverbe interrogatif, AUX : Auxiliaire, CC : Conjonction de coordination, CS : Conjonction de subordination, CL : Clitique , CLS : Clitique sujet, CLO : Clitique object, CLR : Clitique réflexif, DET : Déterminant, DETI : Déterminant indéfini, DETD : Déterminant défini, DETWH : Déterminant interrogatif, I : Interjection, NC : Nom commmun, NPP : Nom propre, P : Préposition, PD : Contraction d'une préposition et d'un déterminant, PONCT : Ponctuation, PRO : Pronom, PROREL : Pronom relatif, PROWH : Pronom interrogatif, SEMAUX : Semi-Auxiliaire, V : Verbe, VIMP : Verbe conjugué à l'impératif, VINF : Verbe à l'infinitif, VPP : Verbe conjugué au participe passé, VPR : Verbe conjugué au participe présent, VS : Verbe au subjonctif
-
predicate (String) : Sémantiquement un prédicat exprime une propriété ou une relation, c'est-à-dire quelque chose d'attribuable à une ou plusieurs entités (en l'occurrence les arguments). Dans "Luc envoie une facture", "envoyer" est un prédicat ayant pour arguments "Luc" et "facture".
-
pronominal (Boolean) : Indique si le verbe est pronominal.
-
ref[value/source/target/trigger] (String) : Indique l'identifiant du terme. Cet identifiant existe dans plusieurs services ce qui permet de croiser des informations provenant de ces services.
-
result (List) : Liste des résultats retournés par le service.
-
role (String) : Role sémantique parmis : vn:Agent, vn:Theme, vn:Patient, vn:Time, vn:Beneficiary, vn:Location, vn:Recipient, vn:Pivot, etc. Dans "Luc envoie une facture proforma", "Luc" a pour rôle Agent et "facture proforma" a pour rôle Theme.
-
score (Integer) : Score de l'élément auquel cet attribut est rattaché.
-
sentences (List) : Phrases analysées.
-
source (String) : Terme à partir duquel un resultat a été généré. Dans "Luc envoie une facture proforma", le concept "administratif" pourrait être généré à partir de la source "facture".
-
start (Integer) : Index de début (en nombre de caractères). Dans "Luc envoie une facture proforma", la valeur de end pour le mot "une" est 11.
-
startTime (Time Stamp Unix) : Indication temporelle du début de l'analyse. Time Stamp Unix en millisecondes.
-
tags (List) : Liste d'étiquettes sémantiques. Cf. "tag".
-
tag (String) : Etiquette sémantique faisant partie de l'ontologie NERD ou de l'otologie WSD : nerd:Date, nerd:Animal, nerd:Function, nerd:Nation, nerd:Time, nerd:Timemin, nerd:Timemax, nerd:Timefuzzy, nerd:Timeduration, nerd:Person, nerd:Facility, nerd:Location, nerd:LocationSource, nerd:LocationDestination, nerd:LocationFuzzy, nerd:LocationSpan, nerd:Money, nerd:Organization, nerd:Measure, nerd:PhoneNumber, nerd:EMail, nerd:Duration, nerd:Set, nerd:Url, nerd:Brand, nerd:Event, nerd:FictionalCharacter, nerd:Language, nerd:TransportLine, nerd:Sportsteam, nerd:Sport, nerd:Media, nerd:Method, nerd:Product, nerd:ProductRange, nerd:ReferenceDocument, nerd:Reference, nerd:Reward, nerd:Species, nerd:Ingredient, wsd:Concrete, wsd:Abstract, wsd:Animate, wsd:Inanimate, wsd:LivingBeing, wsd:Animal, wsd:Vehicle, wsd:Vegetal, wsd:Location, wsd:Time, wsd:TimeMin, wsd:TimeMax, wsd:TimeFuzzy, wsd:Sport, wsd:Color, wsd:MusicalInstrument, wsd:Religion, ... Dans "Luc envoie une facture proforma", "Luc" a pour tag nerd:Person.
-
target (String) : Cible sur laquelle porte l'élément auquel il est rattaché (l'opinion par exemple).
-
tense (String) : Indique le temps utilisé ("past", "present", ou "future").
-
tokens (List) : Ensemble de tokens, c'est-à-dire de mots ou locutions.
-
trigger (String) : Déclencheur de l'élément auquel il est rattaché (par exemple une émotion).
-
type : Type de la phrase analysée : declarative, exclamative, interrogative ou imperative.
-
value (String) : Valeur de l'élément auquel cet attribut est rattaché.
-
values (List) : Liste des valeurs de l'élément auquel cet attribut est rattaché.
-
valuesToDisplay (List) : Liste des valeurs de l'élément auquel cet attribut est rattaché, contenant les informations de mise en forme du texte (sauts de ligne : \n, tabulations : \t, ...).
-
verbalForm (String) : Forme verbale : active ou passive.