Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tiphaine.viard/mapaie
1 result
Show changes
Commits on Source (4)
Showing
with 23201 additions and 7 deletions
This diff is collapsed.
This diff is collapsed.
File added
This diff is collapsed.
%% Cell type:markdown id: tags:
 
<center><img src="data:image/png;base64,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" /></center>
 
%% Cell type:markdown id: tags:
 
<h1><center><strong><font color="green">IA 717: CHAI & fairness: linguistics of AI ethics charters & manifestos<br/>PART4 : AMR</font></strong></center></h1>
 
<h3><center><font color="blue"><strong>Student Version</strong></font></center></h3>
 
<center>
<h3> Project Supervisor</h3>
<a>Maria Boritchev</a> <email>maria.boritchev@telecom-paris.fr</email>
 
<h3> Project student</h3>
<a>Josephine Bernard</a> <email>josephine.bernard@telecom-paris.fr</email><br/>
<a>Laury Magne</a> <email>laury.magne@telecom-paris.fr</email><br/>
<a>Dan Hayoun</a> <email>dan.hayoun@telecom-paris.fr</email><br/>
<a>Nicolas Allègre</a> <email>nicolas.allegre@telecom-paris.fr</email><br/>
 
 
<br/>
Year 2024-2025
</center>
 
------------------------
 
%% Cell type:markdown id: tags:
 
### Table of Contents
 
* [Chapter 0 initialisation Python](#0---code-python-initial)
* [Chapter 4 - AMR](#4---amr)
* [Section 4.0 - intro et explication](#40-intro-et-explication)
* [Section 4.1 - initialisation d'utilisation](#41-initialisation-utilisation)
* [Section 4.2 - analyse AMR](#42-analyse-fearness-à-partir-amr)
* [Part 4.2.2 - analyse des parents AMR ( **P** )](#422-recherche-des-parents-amr--p-)
* [Part 4.2.3 - analyse des liens parents AMR ( **F_tag** )](#423-analyse-des-liens-parents-amr--f_tag-)
* [Part 4.2.4 - analyse des voisins AMR ( **V** )](#424-recherche-des-voisins-amr--v-)
 
<!-- <a class="anchor" id="0---code-python-initial"></a> -->
 
%% Cell type:markdown id: tags:
 
# <font color="green">**0 - Code Python initial**</font>
 
%% Cell type:markdown id: tags:
 
### 0.1) Première partie imports et fonctions globales
 
%% Cell type:code id: tags:
 
``` python
# python -m pip install matplotlib numpy scipy sklearn tabulate penman
# python -m pip install matplotlib numpy scipy sklearn tabulate penman wordcloud
 
# Global import
import importlib
import itertools
import math
import os
import re
import shutil
import sys
import string
import typing
from collections import Counter
from collections.abc import Iterable
from itertools import islice
from pathlib import Path
from pprint import pprint
 
import matplotlib.pyplot as plt
import numpy as np
import numpy.typing as npt
import penman
from scipy.stats import norm # type: ignore[import-untyped]
from sklearn.feature_extraction.text import CountVectorizer
from tabulate import tabulate
from wordcloud import WordCloud
 
import metamorphosed.amrdoc as amrdoc
import metamorphosed.amreditor as amreditor
# from Corpus import Corpus
 
PATH_DATA_FOLDER = '../data'
PATH_LOG_FOLDER = '../log'
PATH_DATA_TXT = '../data/txts'
PATH_DATA_DOCS = '../data/docs'
PATH_DATA_PREPROCESSED = '../data/preprocessed'
PATH_DATA_CORTEX = '../data/corpus_cortext'
PATH_DATA_IRAMUTEQ = '../data/corpus_iramuteq'
PATH_DATA_AMR = '../data/AMR'
FILENAME_DATA_IRAMUTEQ = 'corpus.txt'
FILENAME_DATA_LANG = 'corpus_lang.csv'
FILENAME_DATA_LANG_PREPRO = 'corpus_lang_preprocessing.csv'
FILENAME_DATA_AMR = 'key_penmans.amr'
PATH_DATA_FILE_LANG = os.path.join(PATH_DATA_FOLDER, FILENAME_DATA_LANG)
PATH_DATA_FILE_LANG_PREPRO = os.path.join(PATH_DATA_FOLDER, FILENAME_DATA_LANG_PREPRO)
PATH_DATA_FILE_IRAMUTEQ = os.path.join(PATH_DATA_IRAMUTEQ, FILENAME_DATA_IRAMUTEQ)
PATH_DATA_FILE_AMR = os.path.join('..', FILENAME_DATA_AMR)
TYPE_METHOD = ['cortex', 'iramuteq', 'txt']
CHARSET = 'UTF-8'
 
sys.path.append('..')
 
 
def take(n: int, iterable: Iterable) -> list[any]:
"""Return the first n items of the iterable as a list."""
return list(islice(iterable, n))
#end def take
 
def dict_revert(x: dict[str, any], sort: bool=False) -> list[list[str, any]]:
tmp = x
if sorted is True:
tmp = dict(sorted(x.items(), key=lambda item: item[1], reverse=True))
return [[list(x.keys())[i], list(x.values())[i]] for i in range(len(x))]
# Chargement de tout les corpus
# list_corpus = {method: Corpus(method) for method in TYPE_METHOD}
```
 
%% Cell type:markdown id: tags:
 
### 0.2) Deuxième partie chargement des données
 
%% Cell type:code id: tags:
 
``` python
amr_mapaie = amrdoc.AMRdoc(PATH_DATA_FILE_AMR)
```
 
%% Output
 
1201 sentences read from ..\key_penmans.amr
 
%% Cell type:markdown id: tags:
 
# <font color="green">**4 - AMR**</font>
 
%% Cell type:markdown id: tags:
 
## **4.0) Intro et explication**
 
%% Cell type:markdown id: tags:
 
### 4.0.1) Mémo d'utilisation
 
%% Cell type:markdown id: tags:
 
##### **Variable Notebook `amr_mapaie` :**
 
- **`amr_mapaie`** : variable contenant le chargement du fichier AMR (classe amrdoc.AMRdoc)
- `amr_mapaie.sentences` : liste contenant toutes les phrases en AMR (classe amrdoc.AMRsentence)
- `amr_mapaie.sentences.tsv()` : liste de l'AMR au format Graph Penman (triplet)
- ATTENTION : le format Graph n'est pas unique à partir d'un AMR !!!
> *Conversion from a PENMAN string to a Tree, and vice versa, is straightforward and lossless. Conversion to a Graph, however, is potentially lossy as the same graph can be represented by different trees.*
- `amrdoc.relations_between_concepts([amr_mapaie])` : Permet d'avoir un comptage et des stats sommaires.
- Avec *, depth=1* comme argument, seulement les concepts
- Avec *, depth=2* (défaut) comme argument, les stats concepts et relation associés
 
 
##### **La classe `amrdoc.AMRsentence` :**
 
- `amr_mapaie.sentences[0].amr` : l'AMR de la phrase (non parsé)
- `amr_mapaie.sentences[0].text` : la phrase de l'AMR
- `amr_mapaie.sentences[0].comments[0]` : le numéro du fichier (Format : 'File xxx')
- `amr_mapaie.sentences[0].tsv()` : Graph de l'AMR (même remarque)
- égale à *penman.decode(amr_mapaie.sentences[0].amr)*
- `amr_mapaie.sentences[0].getconceptlist()` : Retourne la liste des concept de la phrase
 
 
##### **Le module `Penman` :**
 
À utiliser pour plus de précision sur le parcours des graphes/arbres de la syntaxe AMR.
 
- https://penman.readthedocs.io/en/latest/api/penman.html
- https://penman.readthedocs.io/en/latest/api/penman.graph.html
 
 
```python
amr = amr_mapaie.sentences[0].amr
g = penman.decode(amr)
top = g.top # Sommet de l'arbre
concepts = {}
# for s, p, o in amr_mapaie.sentences[0].tsv():
for s, p, o in g.instances():
# s = source – the source variable of the triple (g.top est le sommet)
# p = role – the edge label between the source and target
# o = target – the target variable or constant => C'est le concept pour les noeuds
if p == ":instance":
concepts[s] = o
...
```
 
%% Cell type:markdown id: tags:
 
### 4.0.2) Aide analyse AMR
 
%% Cell type:markdown id: tags:
 
Le fichier AMR de mapaie, `key_penmans.amr` est un fichier brut pouvant être lu en texte.
- La ligne *::snt* est la phrase originelle
- Suivie du numéro de fichier*
- Suivie de la syntaxe AMR (Penman)
 
Normalement, il n'y a pas besoin de lire directement ce fichier, juste à utiliser la variable `amr_mapaie`.
 
Aide sur la syntaxe AMR : https://github.com/amrisi/amr-guidelines/blob/master/amr.md
 
%% Cell type:markdown id: tags:
 
### 4.0.3) Exemple d'utilisation dans amrdoc :
 
%% Cell type:code id: tags:
 
``` python
def relations_between_concepts(ads, depth=2):
output = []
concepts = {} # {concept: {relation: {concept: freq}}}
for ad in ads:
for sent in ad.sentences:
instances = {} # inst: concept
for s, p, o in sent.tsv():
if p == ":instance":
instances[s] = o
for s, p, o in sent.tsv():
if p != ":instance":
sclass = instances[s]
oclass = instances.get(o, "lit:" + o)
 
if depth == 1:
if sclass in concepts:
concepts[sclass] += 1
else:
concepts[sclass] = 1
continue
 
if sclass in concepts:
relations = concepts[sclass]
else:
relations = {}
concepts[sclass] = relations
 
if depth == 2:
if p in relations:
relations[p] += 1
else:
relations[p] = 1
continue
 
if p in relations:
objectconcepts = relations[p]
else:
objectconcepts = {}
relations[p] = objectconcepts
if oclass in objectconcepts:
objectconcepts[oclass] += 1
else:
objectconcepts[oclass] = 1
for c in sorted(concepts):
if depth == 1:
#print(c, concepts[c], sep="\t")
output.append("%s\t%s" % (c, concepts[c]))
continue
#print(c)
output.append(c)
for r in sorted(concepts[c]):
if depth == 2:
#print(" %s\t%s" % (r, concepts[c][r]))
output.append(" %s\t%s" % (r, concepts[c][r]))
continue
#print(" ", r)
output.append(" " + r)
for oc in sorted(concepts[c][r]):
#print(" %s\t%s" % (oc, concepts[c][r][oc]))
output.append(" %s\t%s" % (oc, concepts[c][r][oc]))
 
return output
```
 
%% Cell type:markdown id: tags:
 
## **4.1) Initialisation utilisation**
 
%% Cell type:code id: tags:
 
``` python
c1 = [x.split('\t') for x in amrdoc.relations_between_concepts([amr_mapaie], depth=1)]
c2 = [x.split('\t') for x in amrdoc.relations_between_concepts([amr_mapaie], depth=2)]
 
# Concepts présents dans les AMR de mapaie
concepts = set(x[0] for x in c1)
# Type de relation présents dans les AMR de mapaie
relations = set(x[0] for x in c2) - concepts
```
 
%% Cell type:markdown id: tags:
 
Il faut chercher dans cette liste ceux qui se rapporte à **fairness** pour pourvoir effectuer les analyses à faire.
 
- Une première méthode simple est de regarder cette liste `concepts` dans la lettre 'f' :
>'face-01', 'facet', 'facilitate-01', 'facility', 'fact', 'factor', 'factor-01', 'fail-01', 'fair-01', 'fairness', 'fairwash-01', 'fall-01', 'fall-04', 'fallacy', 'familiarize-01', 'fatality', 'feasibility', 'feature', 'feature-01', 'federate-01', 'feed-01', 'feed-02', 'feedback', 'feel-01', 'few', 'fidelity', 'field', 'fight-01', 'figure', 'fill-01', 'fill-in-05', 'find-01', 'find-02', 'fine-04', 'fire-02', 'firm', 'fit-01', 'fit-03', 'fit-06', 'fix-03', 'flaw-01', 'flexibility', 'flow-01', 'focus-01', 'follow-01', 'follow-02', 'follow-04', 'follow-through-07', 'foresee-01', 'foreword', 'forgive-01', 'form', 'form-01', 'formalize-01', 'formula', 'formulate-01', 'foster-01', 'found-01', 'foundation', 'frame', 'frame-06', 'framework', 'free-04', 'frequent-02', 'friendly-01', 'from', 'fulfill-01', 'full-09', 'fun-01', 'function', 'function-01', 'functional-03', 'fund', 'fund-01', 'furnish-01', 'fuse-01', 'future'
- **'fair-01', 'fairness', 'fairwash-01'** pourrait nous interresser.
- *À noter que 'fairness' n'existe pas dans les concepts de probBank*
 
- Une deuxième méthode serait pour chaque phrase qui ne contient pas les concepts AMR 'fair-01', 'fairness', regarder manuellement comment le mot fairness a été transcrit.
 
 
Ensuite, on pourrait se renseigner au sens des mots choisis dans les fichiers XML de probBank [lien](https://github.com/propbank/propbank-frames/tree/main/frames) (ou sur l'application metamorphosed).
 
%% Cell type:code id: tags:
 
``` python
stat_concept = dict.fromkeys(sorted(concepts), 0)
for x in c1:
stat_concept[x[0]] = int(x[1])
 
stat_relation = dict.fromkeys(sorted(relations), 0)
stat_concept_relation = dict.fromkeys(sorted(concepts), {})
tmp_concept = list(stat_concept_relation.keys())[0]
for x in c2:
if len(x) == 1 and x[0] in concepts: # C'est un concept
tmp_concept = x[0]
stat_concept_relation[tmp_concept] = dict.fromkeys(sorted(relations), 0)
continue
 
if len(x) > 1: # C'est une relation associé au concept précédant
stat_relation[x[0]] += int(x[1])
stat_concept_relation[tmp_concept][x[0]] = int(x[1])
 
 
# stat_concept : contient les stats d'utilisation des concepts
# stat_relation : contient les stats d'utilisation du type de relation
# stat_concept_relation : contient les stats d'utilisation des type de relation par concept
```
 
%% Cell type:code id: tags:
 
``` python
tmp = dict(sorted(stat_concept.items(), key=lambda item: item[1], reverse=True))
pprint({k: tmp[k] for i, k in enumerate(tmp) if i < 20}, sort_dicts=False)
 
# tmp = dict(sorted(stat_relation.items(), key=lambda item: item[1], reverse=True))
# pprint({k: tmp[k] for i, k in enumerate(tmp) if i < 20}, sort_dicts=False)
```
 
%% Output
 
{'and': 5658,
'name': 2995,
'multi-sentence': 1020,
'or': 572,
'possible-01': 569,
'publication-91': 395,
'person': 379,
'publication': 362,
'intelligent-01': 354,
'use-01': 354,
'have-degree-91': 334,
'mean-01': 305,
'date-entity': 300,
'principle': 278,
'recommend-01': 257,
'fair-01': 256,
'develop-02': 249,
'system': 246,
'cause-01': 234,
'ensure-01': 233}
 
%% Cell type:code id: tags:
 
``` python
# Première initialisation des concepts AMR liés à FAIRNESS :
list_concept_tosee = ['fair-01', 'fairness', 'fairwash-01']
 
# Filtre pour l'affichage
list_relation_tosee = set([y for x in list_concept_tosee for y in stat_concept_relation[x] if stat_concept_relation[x][y] != 0])
# tmp = {x: {y.strip(): stat_concept_relation[x][y] for y in list_relation_tosee} for x in list_concept_tosee}
# print(tabulate(tmp.values(), showindex=list_concept_tosee, headers='keys', tablefmt='pipe'))
 
tmpbis = {y.strip(): {x: stat_concept_relation[x][y] for x in list_concept_tosee} for y in list_relation_tosee}
print(tabulate(tmpbis.values(), showindex=list_relation_tosee, headers='keys', tablefmt='pipe'))
```
 
%% Output
 
| | fair-01 | fairness | fairwash-01 |
|:-------------|----------:|-----------:|--------------:|
| :mod | 13 | 105 | 0 |
| :polarity | 58 | 42 | 0 |
| :topic | 0 | 10 | 0 |
| :li | 0 | 2 | 0 |
| :ARG0 | 5 | 0 | 1 |
| :ARG1 | 156 | 0 | 1 |
| :degree | 1 | 0 | 0 |
| :source | 0 | 1 | 0 |
| :prep-on | 0 | 1 | 0 |
| :beneficiary | 0 | 2 | 0 |
| :domain | 1 | 5 | 0 |
| :ARG3 | 1 | 1 | 0 |
| :quant | 0 | 1 | 0 |
| :manner | 5 | 6 | 1 |
| :location | 3 | 5 | 0 |
| :poss | 0 | 15 | 0 |
| :ARG2 | 6 | 0 | 0 |
| :ARG4 | 1 | 0 | 0 |
| :prep-in | 0 | 9 | 0 |
| :example | 0 | 1 | 0 |
| :condition | 6 | 0 | 0 |
| :time | 0 | 1 | 0 |
 
%% Cell type:markdown id: tags:
 
## **4.2) Analyse *Fearness* à partir AMR**
 
%% Cell type:markdown id: tags:
 
Nous nous interressons au voisinage de l'utilisation du mot fairness dans le graph AMR :
 
<pre style='font=font-family:Courier New, Courier, monospace;'>
=====
= P =
=====
/ \
V_tag / \ F_tag
/ \
===== =====
= V = = F =
===== =====
|
| E_tag
|
-------
| E |
| ... |
-------
</pre>
**Explications :**
- F : Le noeud où le concept de *fairness* apparait
- P : le concept parent
- V : le concept voisin, lié à *fairness* par le parent
- E : les concepts enfants
- x_tag : les tags AMR associés
 
#### Recherche à faire :
<font color="red">Faire les statistiques puis analyser avec les précédents constats de notre analyse PosTag :
- P( P )
- P( F_tag )
- P( V )
- P( V \ P)
- P( V_tag, F_tag )
- P( E_tag )
- P( {E}=∅ ) : Fairness n'a pas d'enfant
- P( rang(E)=1 ) : Fairness n'a qu'un enfant
- P( rang(E)>1 ) : Fairness à plusieurs enfants
 
</font>
 
%% Cell type:code id: tags:
 
``` python
# TEST TO SAVE IMAGE des graph AMR (pour les profs) :
 
# dataformat = 'png'
# self.aps = {} # parsed and possibly modified PENMAN AMRs
# # initial version of Penman graph
# for sentnum, cursentence in enumerate(self.amrdoc.sentences, start=1):
# if sentnum % 10 == 0:
# print("%d initialized" % sentnum, end="\r")
# ap = amreditor.AMRProcessor()
# self.aps[sentnum] = ap
# ap.lastpm = cursentence.amr
# ap.comments = cursentence.comments
 
# dataformat = 'png'
# for ix, x in enumerate(self.aps, 1):
# ap = self.aps[x]
# if not ap.isparsed:
# ap.readpenman(ap.lastpm)
# pm, svg, svg_canon = ap.show(format=dataformat)
# if svg:
# print("%d.%s" % (ix, dataformat), svg)
 
# # show()
# try:
# pm = penman.encode(penman.Graph(self.triples, top=self.top))
# self.readpenman(pm)
# self.lastsvg = self.dot(highlightinstances, highlightrelations, format=dataformat)
# self.lastsvg_canonised = self.dot(highlightinstances, highlightrelations, format=dataformat, inverse_of=True)
# self.isDisconnected = False
# except penman.exceptions.LayoutError:
# print("not yet correct")
# print(self.triples)
 
```
 
%% Cell type:markdown id: tags:
 
### 4.2.0) Exemple d'utilisation de la syntaxe penman AMR
 
%% Cell type:code id: tags:
 
``` python
sentnum = 1
cursentence = amr_mapaie.sentences[0]
# for sentnum, cursentence in enumerate(amr_mapaie.sentences, start=1):
# pass
 
# Initialisation du parsing :
ap = amreditor.AMRProcessor()
ap.lastpm = cursentence.amr
ap.comments = cursentence.comments
if not ap.isparsed:
ap.readpenman(ap.lastpm)
 
# Utilisation : 1- liste des concepts
ap.vars
```
 
%% Output
 
{'p': 'possible-01',
'f': 'facilitate-01',
'o': 'or',
'r': 'regulate-01',
'e': 'exist-01',
'r2': 'regulate-01',
'n': 'new-01',
'o2': 'or',
'a': 'accountable-02',
'a2': 'algorithm',
'f2': 'fair-01',
'a3': 'amr-unknown',
'f3': 'first-of-all'}
 
%% Cell type:code id: tags:
 
``` python
# Utilisation : 2- arbre AMR entier sous une liste de triplet
ap.triples
 
# 1- Vérifier values ap.vars == fairness et récupérer la clé (id)
# 2- Récupérer triplet F_tag (ap.triples[2]==id) (id_P, type_F_tag, id)
# 3- Sortir le parent P (ap.vars[id_P] => concept)
# 4- Sortir triplet V_tag (ap.triples[0]==id_P and ap.triples[1]!=':instance') (id_p, type_V_tag,id_V)
# 5- Sortir le voisin V (ap.vars[id_V] => concept)
# enfants_F = [x for x in ap.triples if x[0]==id and x[2]!=fearness]
# ids_E=[x[2] for x in enfants_F]
# 6- Nombre branche fairness : len(enfants_F)
# 7- concept enfant : [ap.vars[x] for x in ids_E]
# 8- Nb petit-enfant : len(ap.triples if x[0]==ids_E and != ap.vars[ids_E]|concept)
```
 
%% Output
 
[('p', ':instance', 'possible-01'),
('p', ':ARG1', 'f'),
('p', ':mod', 'f3'),
('f', ':instance', 'facilitate-01'),
('f', ':ARG0', 'o'),
('f', ':ARG1', 'o2'),
('f', ':manner', 'a3'),
('o', ':instance', 'or'),
('o', ':op1', 'r'),
('o', ':op2', 'r2'),
('r', ':instance', 'regulate-01'),
('r', ':ARG1-of', 'e'),
('e', ':instance', 'exist-01'),
('r2', ':instance', 'regulate-01'),
('r2', ':ARG1-of', 'n'),
('n', ':instance', 'new-01'),
('o2', ':instance', 'or'),
('o2', ':op1', 'a'),
('o2', ':op2', 'f2'),
('a', ':instance', 'accountable-02'),
('a', ':mod', 'a2'),
('a2', ':instance', 'algorithm'),
('f2', ':instance', 'fair-01'),
('a3', ':instance', 'amr-unknown'),
('f3', ':instance', 'first-of-all')]
 
%% Cell type:markdown id: tags:
 
### 4.2.1) Fonctions permettant d'extraire le voisinage
 
%% Cell type:code id: tags:
 
``` python
# Fonctions récupèrant le parent
def get_parent_infos(targets, amr_sentence):
"""Recherche les parents d'un concept (noeud AMR) pour une phrase
 
:param list[str] targets: liste de concept à rechercher
:param amrdoc.AMRsentence amr_sentence: phrase à analyser
:return results, racines:
results[concept_target] = [parent_id, parent_type, relation, amr_sentence]
racines: list = list des phrases dont le concept et le sommet de l'arbre
"""
# Initialisation de l'AMRProcessor
ap = amreditor.AMRProcessor()
ap.lastpm = amr_sentence.amr
ap.comments = amr_sentence.comments
if not ap.isparsed:
ap.readpenman(ap.lastpm)
 
results = {}
racines = []
for target in targets:
target_vars = ap.getvars(target)
if target_vars:
infos = []
for target_var in target_vars: # Parcourir toutes les occurrences du mot
has_parent = False
for triple in ap.triples:
if triple[2] == target_var:
parent_var = triple[0]
relation = triple[1]
parent_type = ap.vars[parent_var]
infos.append((parent_var, parent_type,
relation, amr_sentence))
has_parent = True
 
if not has_parent:
infos.append(("NA", "NA", "NA", amr_sentence))
racines.append((amr_sentence, amr_sentence))
 
results[target] = infos
 
return results, racines
 
 
def get_all_parents(targetlist, amr_sentences):
"""Recherche les parents d'un concept (noeud AMR) dans tout le corpus
 
:param list[str] targetlist: liste de concept à rechercher
:param list[amrdoc.AMRsentence] amr_sentences: list des phrase du corpus
:return results, racines:
results[concept_target] = [parent_id, parent_type, relation, amr_sentence]
racines: list[list] = list des phrases dont le concept et le sommet de l'arbre
"""
results = {}
racines = []
for i, sentence in enumerate(amr_sentences):
results[i], racine = get_parent_infos(targetlist, sentence)
if racine:
racines.append(racine)
 
return results, racines
 
 
# Fonctions récupèrant les enfants
def get_node_children(node_id, amr_sentence, list_concept_tosee):
# Initialisation de l'AMRProcessor
ap = amreditor.AMRProcessor()
ap.lastpm = amr_sentence.amr
ap.comments = amr_sentence.comments
if not ap.isparsed:
ap.readpenman(ap.lastpm)
 
children = [] # Liste des enfants avec leurs liens
 
# Parcourir les triples pour trouver les enfants du noeud donné
for triple in ap.triples:
if triple[0] == node_id: # Si le noeud est le sujet
child_id = triple[2] # Identifiant de l'enfant
relation = triple[1] # Relation entre le noeud et l'enfant
# Type de l'enfant (s'il existe)
child_type = ap.vars.get(child_id, "NA")
if child_type in list_concept_tosee:
continue
children.append((child_id, child_type, relation,
amr_sentence.comments[0]))
 
return children
 
 
def get_all_node_children(parents, list_concept_tosee):
childrens = []
for index, list_parents in parents.items():
for word_fair, list_parents in list_parents.items():
for parent in list_parents:
children = get_node_children(
parent[0], parent[3], list_concept_tosee)
childrens.append(children)
 
return childrens
```
 
%% Cell type:markdown id: tags:
 
### 4.2.2) Recherche des parents AMR ( **P** )
 
%% Cell type:code id: tags:
 
``` python
list_concept_tosee = ['fair-01', 'fairness', 'fairwash-01']
parents, racines = get_all_parents(list_concept_tosee, amr_mapaie.sentences)
 
# comptage des parents
count_words_fair = {}
for fair in list_concept_tosee:
count_words_fair[fair] = 0
 
count_parents_type = {}
count_parents_link = {}
for index, list_parents in parents.items():
for word_fair, list_parents in list_parents.items():
for parent in list_parents:
count_words_fair[word_fair] += 1
if parent[1] in count_parents_type:
count_parents_type[parent[1]] += 1
else:
count_parents_type[parent[1]] = 1
if parent[2] in count_parents_link:
count_parents_link[parent[2]] += 1
else:
count_parents_link[parent[2]] = 1
```
 
%% Cell type:markdown id: tags:
 
#### 4.2.2.1) Analyse des noeuds parents AMR
 
%% Cell type:markdown id: tags:
 
Maintenant, nous pouvons effecter une représentation en nuage de mot de parent du concept fair* :
 
%% Cell type:code id: tags:
 
``` python
print("type de parent :")
top_10 = sorted(count_parents_type.items(),
key=lambda x: x[1], reverse=True)[:10]
top_10 = sorted(count_parents_type.items(), key=lambda x: x[1], reverse=True)[:10]
 
# Afficher le Top 10
for key, value in top_10:
print(f"{key}: {value}")
 
# nuage de mots
# Créer le nuage de mots
wordcloud = WordCloud(
width=800,
height=400,
background_color="white",
colormap="viridis"
).generate_from_frequencies(count_parents_type)
 
# Afficher le nuage de mots
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off") # Supprime les axes
plt.show()
```
 
%% Output
 
type de parent :
and: 476
define-01: 57
principle: 51
or: 44
ensure-01: 32
multi-sentence: 28
realize-01: 24
assess-01: 16
criteria: 15
concept: 14
 
 
%% Cell type:markdown id: tags:
 
**Analyses :**
- Plus d'un tiers des parents sont une jonction de 2 concepts.
- L'analyse AMR confirme notre analyse précédente avec les postags
- Fairness est donc souvent associé à un autre concept.
 
%% Cell type:markdown id: tags:
 
#### 4.2.2.2) Analyse du cas où il lui-même parent
 
%% Cell type:markdown id: tags:
 
Il est maintenant interessant d'étudier les phrases dont le concept fair* est racine de l'arbre AMR
 
%% Cell type:code id: tags:
 
``` python
for sentence in racines:
print(sentence[0][0].comments[0] + " : " + sentence[0][0].text)
```
 
%% Output
 
File 89 : Fairness.
File 157 : Fairness through awareness.
File 157 : Counterfactual fairness.
File 157 : https://doi.org/10.1007/s12599 -017-0487 -z Outcome fairness
File 157 : Path -specific counterfactual fairness.
File 157 : Fairness through awareness.
File 157 : Counterfactual fairness.
File 157 : Fairness beyond disparate treatment & disparate impact: Learning classification without disparate mistreatment.
File 157 : Fairness in decision -making the causal explanation formula.
File 18 : Fairness.
File 18 : Fairness.
File 78 : 'Fairness through awareness. '
File 128 : They fairwash a model by taking a closed-box model and produce an ensemble of interpretable models that approximate the original model but are much fairer, which then hide the unfairness of the original model.
 
%% Cell type:markdown id: tags:
 
**Analyse :**
 
- Seules 13 occurences en tant que racine de l'arbre AMR
- Concerne majoritairement des titres ou des occurences seules
- Donc aucune signification sématique pour nous
 
%% Cell type:markdown id: tags:
 
#### 4.2.2.3) Analyse particulière pour *fearwash*
 
%% Cell type:markdown id: tags:
 
**Focus sur le concept *fairwash* :**
 
Ce concept n'existe pas dans PropBank et a donc été inventé par le NN. Cependant, le réseau de neurones a considéré ce concept particulier et donc de distance dimensionnelle plus éloignée que les concepts de fair/fairness. D'où, l'intérêt pour nous d'effectuer une analyse plus poussée sur ce résultat de la sortie du NN.
 
%% Cell type:code id: tags:
 
``` python
# Total des occurrences
total = sum(count_parents_type.values())
 
# Proportion de "and"
proportion_and = count_parents_type['and'] / \
total if 'and' in count_parents_type else 0
 
# Affichage
print(f"Proportion de 'and': {proportion_and:.2%}")
```
 
%% Output
 
Proportion de 'and': 36.25%
 
%% Cell type:markdown id: tags:
 
### 4.2.3) Analyse des liens parents AMR ( **F_tag** )
 
%% Cell type:code id: tags:
 
``` python
print("lien avec le parent :")
top_10_2 = sorted(count_parents_link.items(),
key=lambda x: x[1], reverse=True)[:10]
top_10_2 = sorted(count_parents_link.items(), key=lambda x: x[1], reverse=True)[:10]
 
# Afficher le Top 10
for key, value in top_10_2:
print(f"{key}: {value}")
```
 
%% Output
 
lien avec le parent :
:ARG1: 407
:op1: 263
:op2: 175
:topic: 113
:op3: 61
:mod: 55
:ARG2: 49
:ARG1-of: 40
:ARG0: 35
:op4: 23
 
%% Cell type:code id: tags:
 
``` python
# Total des occurrences
total = sum(count_parents_link.values())
 
# Proportion de "ARG1"
proportion_ARG1 = count_parents_link[":ARG1"] / \
total if ":ARG1" in count_parents_link else 0
# Proportion de ":opX"
proportion_opX = (count_parents_link[":op1"] + count_parents_link[":op2"] + count_parents_link[":op3"]) / \
total if ":op1" in count_parents_link or ":op2" in count_parents_link or ":op3" in count_parents_link else 0
 
print(f"Proportion de ':ARG1': {proportion_ARG1:.2%}")
print(f"Proportion de ':opX': {proportion_opX:.2%}")
```
 
%% Output
 
Proportion de ':ARG1': 31.00%
Proportion de ':opX': 38.00%
 
%% Cell type:markdown id: tags:
 
**Analyses :**
- Le lien avec le parent peut aussi porter du sens.
- opx sont en grande majorité liés à un jonction (and) ou un dijonction (or)
- ARG1 est autant présent que les liens précedement. Il représente que "fair" est l'objet affecté par le parent.
 
Lorsque l'on recherchera les voisins AMR, il faudrait donc effectuer une apparté vis-à-vis de ce lien.
 
%% Cell type:markdown id: tags:
 
### 4.2.4) Recherche des voisins AMR ( **V** )
 
%% Cell type:markdown id: tags:
 
#### 4.2.4.1) Analyse générale des voisins AMR
 
%% Cell type:markdown id: tags:
 
Ainsi, nous pouvons aller rechercher les concepts associés :
 
%% Cell type:code id: tags:
 
``` python
neighbors = get_all_node_children(results, list_concept_tosee)
# dans neighbors[2]:
# [('and', 'NA', ':instance', 'File 150'), => parent
# ('t', 'transparency', ':op1', 'File 150')] => enfant
# exemple, dans le fichier 150 le mot fairness est joint avec transparency
# Cherchons toutes ces jonctions
neighbor_concepts = []
for neighbor in neighbors:
if neighbor:
parent = neighbor[0] # Le premier élément est le parent
children = neighbor[1:] # Les éléments suivants sont les enfants
if parent[0] == "and":
for child in children:
neighbor_concepts.append(child[1])
 
# Compter les occurrences
word_counts = Counter(neighbor_concepts)
pprint(word_counts)
```
 
%% Output
 
Counter({'transparency': 131,
'accountable-02': 111,
'safe-01': 50,
'explain-01': 37,
'privacy': 36,
'and': 35,
'justice': 30,
'discriminate-02': 29,
'bias-01': 26,
'security': 26,
'possible-01': 21,
'discriminate-01': 18,
'govern-01': 17,
'include-01': 17,
'right-05': 17,
'value': 15,
'publication': 15,
'private-02': 14,
'equal-01': 14,
'ethics': 14,
'respect-01': 13,
'accurate': 13,
'accuracy': 13,
'learn-01': 12,
'protect-01': 11,
'prevent-01': 11,
'impact-01': 11,
'robustness': 11,
'law': 10,
'limit-01': 10,
'diversity': 9,
'NA': 8,
'deserve-01': 7,
'sustain-01': 7,
'et-cetera': 7,
'assess-01': 7,
'interpret-01': 7,
'name': 6,
'dignity': 6,
'minimize-01': 6,
'rely-01': 6,
'effective-04': 6,
'lawfulness': 6,
'system': 5,
'equitable': 5,
'control-01': 5,
'free-04': 5,
'autonomy': 5,
'thing': 5,
'responsible-02': 5,
'deliver-01': 5,
'algorithm': 4,
'future': 4,
'intelligibility': 4,
'equity': 4,
'democracy': 4,
'humanity': 4,
'solidarity': 4,
'person': 4,
'oversee-01': 4,
'confidentiality': 4,
'recommend-01': 4,
'base-02': 4,
'transparent': 4,
'predict-01': 4,
'due-process': 3,
'agency': 3,
'capable-01': 3,
'integrity': 3,
'lawful': 3,
'principle': 3,
'infer-01': 3,
'interact-01': 3,
'design-01': 3,
'mitigate-01': 3,
'just-02': 3,
'permit-01': 3,
'slash': 3,
'attend-02': 3,
'vigilant-01': 3,
'organization': 3,
'mean-01': 3,
'consequence-03': 3,
'redress-01': 3,
'reliability': 3,
'important-01': 2,
'collaborate-01': 2,
'intelligent-01': 2,
'well-09': 2,
'audit-01': 2,
'fidelity': 2,
'trust-01': 2,
'entitlement': 2,
'equalize-01': 2,
'authority': 2,
'maleficiary': 2,
'inclusiveness': 2,
'absent-01': 2,
'number': 2,
'define-01': 2,
'privilege-01': 2,
'access-01': 2,
'lack-01': 2,
'pipeline': 2,
'quality': 2,
'implement-01': 2,
'dimension': 2,
'abstract-02': 2,
'harm-01': 2,
'rule-03': 2,
'metric': 2,
'contest-02': 2,
'suitable-04': 2,
'perform-02': 2,
'domain': 2,
'liable-01': 2,
'preserve-01': 2,
'plurality': 2,
'cooperate-01': 2,
'risk-01': 2,
'corporation': 2,
'productive-03': 1,
'truthfulness': 1,
'injure-01': 1,
'value-01': 1,
'clarity': 1,
'certainty': 1,
'reciprocity': 1,
'have-degree-91': 1,
'impartiality': 1,
'need-01': 1,
'clear-06': 1,
'shar-e': 1,
'enforce-01': 1,
'transpar': 1,
'openness': 1,
'share-01': 1,
'oversight-02': 1,
'organize-01': 1,
'rob-01': 1,
'responsible-03': 1,
'knowledge': 1,
'pluralism': 1,
'work-01': 1,
'ability': 1,
'subject': 1,
'situa-tional': 1,
'opportunity': 1,
'rency': 1,
'distribution-range-91': 1,
'devote-01': 1,
'term': 1,
'find-01': 1,
'misrepresent-01': 1,
'available-02': 1,
'maximum': 1,
'explainabi': 1,
'honesty': 1,
'consistent-02': 1,
'transpare-ncy': 1,
'timely': 1,
'classify-01': 1,
'cite-01': 1,
'precision': 1,
'substitute-01': 1,
'age-01': 1,
'score-on-scale-91': 1,
'obligate-01': 1,
'vulnerable-01': 1,
'summarize-01': 1,
'have-li-91': 1,
'ice': 1,
'amr-unknown': 1,
'responsible-01': 1,
'justifiability': 1,
'project': 1,
'you': 1,
'reasonableness': 1,
'understand-01': 1,
'formulate-01': 1,
'randomness': 1,
'make-01': 1,
'emotion': 1,
'respond-01': 1,
'efficient-01': 1,
'found-01': 1,
'explicate-01': 1,
'comply-01': 1,
'exemplify-01': 1,
'affect-01': 1,
'factuality': 1,
'anthropomorphize-01': 1,
'zugutekommen': 1,
'calibrate-01': 1,
'decide-01': 1,
'fire-02': 1,
'use-01': 1,
'do-02': 1,
'describe-01': 1,
'surveil-01': 1,
'intelligible': 1,
'align-01': 1,
'page': 1,
'likelihood': 1,
'significant-02': 1,
'data': 1,
'society': 1,
'identify-01': 1,
'inclusive': 1,
'foster-01': 1,
'other': 1,
'artificial': 1,
'section': 1,
'cybersecurity': 1,
'malice': 1,
'ensure-01': 1,
'prosper-01': 1,
'economy': 1,
'information': 1,
'matter': 1,
'transgender': 1,
'accountability': 1,
'social-03': 1,
'benefit-01': 1,
'practice-01': 1,
'increase-01': 1,
'consent-01': 1,
'instead-of-91': 1,
'empower-01': 1,
'engage-01': 1,
'reduce-01': 1,
'power': 1,
'analyze-01': 1,
'legal-02': 1,
'secure-02': 1})
 
%% Cell type:markdown id: tags:
 
**Analyses :**
 
Plus de la moitié des concepts associés portent sur la possibilité de comprendre :
- 'transparency': 131
- 'accountable-02': 111
- 'explain-01': 37
 
On peut en déduire que fairness est en effet un but mais qu'on ne peut y parvenir sans comprendre le fonctionnement (explicabilité).
 
%% Cell type:markdown id: tags:
 
#### 4.2.4.2) Analyse des voisins AMR important pour le lien ARG1
 
%% Cell type:markdown id: tags:
 
Si opx a pû être facilement ressortir lors de l'analyse du corpus via le POS tagging, nous allons étudier plus attentivement le lien ARG1.
 
Ce qui signifie que "fair" est l'objet affecté par le parent.
 
%% Cell type:code id: tags:
 
``` python
countwordsarg1 = dict()
for index, list_parents in parents.items():
for word_fair, list_parents in list_parents.items():
for parent in list_parents:
if parent[2] == ":ARG1":
if parent[1] in countwordsarg1:
countwordsarg1[parent[1]] += 1
else:
countwordsarg1[parent[1]] = 1
 
print("concept utilisé avec :ARG1 :")
top_10_arg1 = sorted(countwordsarg1.items(),
key=lambda x: x[1], reverse=True)[:10]
top_10_arg1 = sorted(countwordsarg1.items(), key=lambda x: x[1], reverse=True)[:10]
 
# Afficher le Top 10
for key, value in top_10_arg1:
print(f"{key}: {value}")
 
cleaned_countwordsarg1 = {}
for key, value in countwordsarg1.items():
# Utiliser une regex pour enlever `-01`, `-02`, etc.
base_key = re.sub(r"-\d+$", "", key)
cleaned_countwordsarg1[base_key] = cleaned_countwordsarg1.get(
base_key, 0) + value
 
# nuage de mots
wordcloud = WordCloud(
width=800,
height=400,
background_color="white",
colormap="viridis"
).generate_from_frequencies(cleaned_countwordsarg1)
 
# Afficher le nuage de mots
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off") # Supprime les axes
plt.show()
```
 
%% Output
 
concept utilisé avec :ARG1 :
define-01: 57
ensure-01: 31
realize-01: 23
assess-01: 16
source-02: 12
evaluate-01: 10
measure-01: 10
discuss-01: 8
consider-02: 8
achieve-01: 8
 
 
%% Cell type:markdown id: tags:
 
**Analyses :**
 
Des mots ressortent forcement ; notamment : "define", "realize", "ensure".
 
Une traduction possible par nous serait :
- "Définir l'équité" (ou "definition de l'équité" [trouver fair-01 et define-01])
- "garantir l'équité" (même remarque)
- etc.
 
......
File added
File added
File added
File added
File added
### INSTALLATION
#1- Graphviz
#** Installer Graphviz
#** Mettre Graphviz dans le PATH
PATH=C:\Logiciel\_prog\Graphviz\bin;%PATH%
#2- metamorphosed
#** Préparation dépôt GIT
git clone https://github.com/Orange-OpenSource/metamorphosed.git
virtualenv venv
.\venv\Scripts\activate
cd metamorphosed
python -m pip install --upgrade pip setuptools wheel
#** Installation prérequis
# python -m pip install -r requirements.txt
#Pb install de smatchcpp, installation manuelle :
python -m pip install pytest werkzeug Flask Flask-Cors graphviz Penman GitPython PyYAML requests rdflib oxrdflib
#** Installation module smatchpp
cd ..
git clone https://github.com/flipz357/smatchpp.git
cd smatchpp
# Edit setup .py
# =>long_description = (this_directory / "README.md").read_text(encoding='utf-8')
python setup.py install
#** Récupération AMR concept pour PropBank
cd propbank-frames\frames
curl https://raw.githubusercontent.com/propbank/propbank-frames/development/frames/AMR-UMR-91-rolesets.xml -o AMR-UMR-91-rolesets.xml
cd ../..
#** Installation metamorphosed
python metamorphosed\installJQ.py
#** Correction metamorphosed pour Windows :
python -m pip install pyreadline3
# Remplacer "import readline" dans les fichiers par :
# => amreditor.py
# => relations_constraints.py
from pyreadline3 import Readline
readline = Readline()
#** Sécurité :
# Remplacer '0.0.0.0' par '127.0.0.1' dans le fichier metamorphosed/__init__.py
### EXECUTION :
python metamorphosed_server.py --file amr-test.txt --pbframes propbank-frames/frames --readonly
# exemple :
metamorphosed_server.py --file amr-test.txt \
--pbframes propbank-frames/frames \
--reification reification-table.txt \
--relations amr-relation-list.txt \
--concepts amr-concept-list.txt \
--constraints constraints.yml
### TEST utilisation en local
import metamorphosed.amrdoc as amrdoc
filename = 'key_penmans.amr'
a = amrdoc.AMRdoc(filename)
a.getsentencelist()
a.sentences[0].amr
a.sentences[0].tsv()
=>penman.decode(self.amr)
>>> a.sentences[0].text
'First of all, how can existing regulations or new ones facilitate algorithmic accountability or fairness?'
>>> a.sentences[0].comments
['File 167']
>>> a.sentences[0].amr
amrdoc.stats([a], args.conceptlist)
amrdoc.relations_between_concepts([a], depth=1)
amrdoc.stats([a], ['fearness'])
####
armdoc.py
Remplacer ServerException par Exception
amrdoc.stats([a], ['fearness'])
# sentences: 1201
# relations: 55 mean: 431.07 median: 43
# concepts: 2289 mean: 12.26 median: 2
# verbs: 1228 mean: 10.40 median: 3
# others: 1061 mean: 14.42 median: 2
'face-01', 'facet', 'facilitate-01', 'facility', 'fact', 'factor', 'factor-01', 'fail-01', 'fair-01', 'fairness', 'fairwash-01', 'fall-01', 'fall-04', 'fallacy', 'familiarize-01', 'fatality', 'feasibility', 'feature', 'feature-01', 'federate-01', 'feed-01', 'feed-02', 'feedback', 'feel-01', 'few', 'fidelity', 'field', 'fight-01', 'figure', 'fill-01', 'fill-in-05', 'find-01', 'find-02', 'fine-04', 'fire-02', 'firm', 'fit-01', 'fit-03', 'fit-06', 'fix-03', 'flaw-01', 'flexibility', 'flow-01', 'focus-01', 'follow-01', 'follow-02', 'follow-04', 'follow-through-07', 'foresee-01', 'foreword', 'forgive-01', 'form', 'form-01', 'formalize-01', 'formula', 'formulate-01', 'foster-01', 'found-01', 'foundation', 'frame', 'frame-06', 'framework', 'free-04', 'frequent-02', 'friendly-01', 'from', 'fulfill-01', 'full-09', 'fun-01', 'function', 'function-01', 'functional-03', 'fund', 'fund-01', 'furnish-01', 'fuse-01', 'future',
c=amrdoc.relations_between_concepts([a])
d=[x.split('\t') for x in c]
print(tabulate([x.split('\t') for x in c], tablefmt='pipe'))
print(tabulate([x.split('\t') for x in amrdoc.relations_between_concepts([a], depth=2)], tablefmt='pipe'))
c1 = [x.split('\t') for x in amrdoc.relations_between_concepts([a], depth=1)]
concepts = set(x[0] for x in c1)
stat_concept = dict.fromkeys(sorted(concepts), 0)
for x in c1:
stat_concept[x[0]] = int(x[1])
c2=[x.split('\t') for x in amrdoc.relations_between_concepts([a], depth=2)]
relations = set(x[0] for x in c2) - concepts
stat_relation = dict.fromkeys(sorted(relations), 0)
stat_concept_relation = dict.fromkeys(sorted(concepts), {})
tmp_concept = list(stat_concept_relation.keys())[0]
for x in c2:
if len(x) == 1 and x[0] in concepts: # C'est un concept
tmp_concept = x[0]
stat_concept_relation[tmp_concept] = dict.fromkeys(sorted(relations), 0)
continue
if len(x) > 1: # C'est une relation associé au concept précédant
stat_relation[x[0]] += int(x[1])
stat_concept_relation[tmp_concept][x[0]] = int(x[1])
# print(tabulate(stat_concept_relation.values(), showindex=list(stat_concept_relation.keys()), headers='keys', tablefmt='pipe'))
list_concept_tosee = ['fair-01', 'fairness', 'fairwash-01']
list_relation_tosee = set([y for x in list_concept_tosee for y in stat_concept_relation[x] if stat_concept_relation[x][y] != 0])
filtre = dict.fromkeys(list_concept_tosee, {})
tmp = {x: {y.strip(): stat_concept_relation[x][y] for y in list_relation_tosee} for x in list_concept_tosee}
print(tabulate(tmp.values(), showindex=list_concept_tosee, headers='keys', tablefmt='pipe'))
print(tabulate([x.split('\t') for x in c], tablefmt='pipe'))
['fair-01']
[' :ARG0', '5']
[' :ARG1', '156']
[' :ARG2', '6']
[' :ARG3', '1']
[' :ARG4', '1']
[' :condition', '6']
[' :degree', '1']
[' :domain', '1']
[' :location', '3']
[' :manner', '5']
[' :mod', '13']
[' :polarity', '58']
['fairness']
[' :ARG3', '1']
[' :beneficiary', '2']
[' :domain', '5']
[' :example', '1']
[' :li', '2']
[' :location', '5']
[' :manner', '6']
[' :mod', '105']
[' :polarity', '42']
[' :poss', '15']
[' :prep-in', '9']
[' :prep-on', '1']
[' :quant', '1']
[' :source', '1']
[' :time', '1']
[' :topic', '10']
['fairwash-01']
[' :ARG0', '1']
[' :ARG1', '1']
[' :manner', '1']
PATH=C:\Logiciel\_prog\Graphviz\bin;%PATH%
cd Projet_NLP_AMR\AMR\
venv\Scripts\activate
import metamorphosed.propbank_frames as propbank_frames
import metamorphosed.amrdoc as amrdoc
v = propbank_frames.PropBankFrames('propbank-frames/frames')
filename = 'key_penmans.amr'
a = amrdoc.AMRdoc(filename)
l = a.validate([v])
# Ou avec la version corrigé sur le GIT mapaie :
l = a.validate_dict([v])
This diff is collapsed.
amrdoc.stats([a], True)
# sentences: 1201
# relations: 55 mean: 431.07 median: 43
# concepts: 2289 mean: 12.26 median: 2
# verbs: 1228 mean: 10.40 median: 3
# others: 1061 mean: 14.42 median: 2
\ No newline at end of file
or 231
algorithm 217
amr-unknown 91
first-of-all 2
organization 177
name 1164
and 2017
fairness 917
person 659
human 166
individual 76
section 38
multi-sentence 288
program 10
enterprise 2
country 56
mechanism 17
transparency 216
principle 207
common 17
ordinal-entity 27
way 29
many 31
gender 13
example 8
diverse 9
opportunity 18
demography 5
outcome 60
distinctive 1
very 8
we 107
everyone 2
thing 308
privacy 103
beyond 13
physician 1
professional 10
medicine 6
data 268
security 70
considerable 2
already 7
another 8
team 34
robot 7
paper 10
some 29
machine 96
insucient 2
also 86
context 60
accurate 51
always 4
benevolence 1
inherent 6
metric 18
other 77
strategy 12
task 9
ethics 141
artificial 385
corporation 5
large 10
state 18
current 18
initiative 7
method 20
district 2
system 306
partisanship 1
map 3
aspect 18
technical 68
evolution 1
multiple 16
space 5
this 185
adequate 6
framework 46
too 3
more 87
notion 16
algorithmic 12
big 15
due-process 4
time 8
role 9
it 43
tension 6
any 26
between 17
threshold 4
criteria 33
project 26
publication 325
part 18
table 9
subject 18
contingency 6
confidential 2
diversity 27
result 9
robust 9
solution 8
resilience 3
business 21
large-scale 3
yes 2
no 2
purpose 22
dataset 21
database 3
body 7
in-house 2
slash 24
origin 1
culture 13
et-cetera 27
model 64
process 2
research-institute 11
variable 14
government-organization 52
date-entity 204
tutorial 1
culinary 1
you 78
further 8
party 9
case 10
matrix 2
operation 1
final 4
random 4
accessibility 1
audience 1
all 46
from 3
outset 2
customer 1
law 119
baseline 1
core 5
set 32
perspective 19
interdisciplinary 9
science 8
computer 13
fundamental 14
director 1
expertise 6
concept 27
just 5
outside 5
field 9
society 88
value-interval 31
url-entity 71
such 19
information 39
certain 20
input 12
tool 40
they 40
behind 2
secrecy 2
in-turn 2
federal 11
consideration 1
application 23
tandem 1
so 8
justice 54
phase 9
scope 9
future 15
artificial-intelligence 8
intelligibility 5
mathematics 10
statistics 11
facility 2
community 23
continent 8
value 86
truthfulness 1
upfront 1
i 8
around 3
world 19
of-course 2
imperative 1
technology 53
place 7
industry 18
academia 10
technique 10
potential 44
systematic 5
underway 1
vital 2
conference 58
temporal-quantity 11
year 11
product 69
digital 9
broad 2
era 1
clarity 1
certainty 4
both 3
sector 27
especially 8
device 1
problem 23
contract 1
situation 14
symmetric 1
gap 3
market 5
public 22
prior 4
heuristics 1
reciprocity 1
equity 11
clause 1
duty 4
environment 17
great 12
constant 1
several 12
asymmetry 3
interest 3
guideline 13
over 2
well 4
to-date 1
here 5
extent 3
page 14
classic 1
term 9
often 20
most 33
sense 3
transparent 17
label 4
sensor 2
interface 2
implicit 2
social 14
indicator 1
identifier 1
level 33
robustness 30
minimum 3
member 21
she 4
company 80
condition 5
previous 7
history 5
group 72
mechanics 1
reason 6
architect 2
rule 6
parameter 6
area 20
journal 17
planet 8
democracy 14
entity 5
vertrauenswrdige 1
ethnic-group 5
zugute 1
male 4
Werte 1
verstndlich 1
stellen 1
verantwortlichen 1
trustworthy 11
objective 9
various 14
literature 7
much 9
instrumental 1
date-interval 4
event 9
virtual 2
immediate 3
philosophy 5
basic 8
dignity 18
inclusion 1
background 5
impartiality 1
agency 29
anxiety 1
full 11
particular 27
transgender 2
manual 3
theme 14
entitlement 3
transpar 7
document 10
percentage-entity 43
generosity 1
bene 2
autonomy 36
solidarity 8
keyword 1
humanity 4
shar-e 1
parity 6
generative 4
prominence 1
each 16
backgr 1
documentumen 1
top 2
equitable 11
documen 2
openness 1
cyber 1
race 4
sexuality 1
bo 1
fact 8
central 4
number 23
coefficient 2
fidelity 3
corpus 1
entire 5
knowledge 1
pluralism 2
globe 9
mass 1
emana 1
piece 2
next 4
chap 2
through 3
checklis 4
under 7
stand 1
among 1
alone 3
together 9
within 1
criterion 1
stage 12
dang 1
there 3
difficult 13
richness 1
word 1
string-entity 11
thr 1
article 11
enough 3
piano 1
affirmative-action 2
lot 1
resource 8
treatman 1
line 3
extreme 2
ability 1
deplo-ymen 1
explana- 1
transpar-ent 1
consen-t 1
situa-tional 1
across 15
platform 13
that 12
profile 3
political-party 4
minutia 1
only 7
overview 3
vel 1
code 7
again 12
norm 10
heading 1
severe 1
ecosystem 3
as-well 1
measur-e 1
drawback 1
truth-value 10
measur 1
one 3
authority 8
collective 4
emotion 3
religion 2
status 3
economy 14
ques 1
frame 2
today 2
gamut 1
storage 1
integrity 9
confidentiality 8
consensus 4
report 10
chapter 11
end 6
rigorous 1
in-place 4
force 1
vironmental 1
series 4
course 1
workshop 5
stake 14
civil 4
international 13
essential 5
power 5
circuit 2
committee 3
domain 12
lawful 8
rency 1
transpa 1
external 11
stewardship 1
theory 1
top-down 1
utilitarianism 1
contractarianism 1
Kantianism 1
unique 1
toolkit 10
index 12
sovereign 1
lifecycle 11
inadvertent 2
maleficiary 2
skill 3
whole 4
constraint 7
accuracy 24
module 1
inclusiveness 2
intrinsic 3
property 8
form 11
type 22
politics 10
compatible 7
ion 1
odology 1
meth 1
cost 6
deficiency 2
in-fact 4
absolute 1
less 5
past 4
flagship 1
variety 2
simultaneous 5
even 8
procedure 15
logic 2
additional 5
category 6
main 4
output 14
proper 8
sometimes 8
version 4
alternative 2
documentation 2
health 5
before 13
content 10
feature 15
rhetoric 1
al 1
rigor 3
precise 4
topic 8
comprehensive 2
trivial 1
usual 7
city 14
criminal 8
psychometrics 1
false 5
ultimate 4
matter 8
lesson 3
extra 5
nutshell 1
error 9
class 2
awareness 4
classifier 1
maximum 1
therefore 1
statistician 1
scientist 9
sociology 3
instrument 6
explainabi 1
honesty 1
left-handed 1
language 5
foreign 1
movie 1
few 5
numerous 4
methodology 4
institution 7
conceptual 3
complex 7
verifiable 1
after 4
colleague 2
recent 5
bias 8
subjective 2
transpare-ncy 1
timely 1
Proceedings 5
court 2
standard 27
disproportionate 1
idea 8
population 13
architecture 4
nuances 3
scale 4
speed 2
plain 2
success 2
weight 4
income 2
likelihood 3
rate 11
scenario 2
citizen 11
smartphone 2
e-commerce 2
media 2
detail 2
network 3
structure 7
every 9
throughout 5
element 14
emergency 2
pathway 4
art 6
insight 5
blatant 4
dynamic 6
function 4
loop 4
automatic 3
even-when 3
and_11 2
rapid 4
bill 2
positive 10
negative 2
third-party 2
software 8
prerequisite 2
secure 2
precision 2
wide 2
tier 1
horizontal 1
trail 1
medium 1
welfare 2
poor 1
onus 1
car 5
craft 2
air 2
barrier 7
adverse 5
ethicist 3
bureaucracy 2
artificial_instrument 4
aircraft 2
equipment 2
physical 3
complexity 9
evidence 4
fund 2
cybersecurity 3
intrusive 1
still 3
factor 2
original 4
above 8
at-least 5
lawfulness 6
finance 9
accountability 3
monetary 1
jurisdiction 1
domestic 1
work-of-art 1
ice 1
pipeline 6
causality 3
instance 3
book 3
analytics 1
messiness 1
systemic 2
reality 1
entry 1
outlier 1
format 1
discipline 1
university 12
boundary 3
treaty 3
intellectual 2
safeguard 4
design 1
quality 9
certificate 5
kite-mark 1
competitiveness 2
ever 2
woman 2
imbalance 1
champion 1
job 3
degree 4
more-than 2
state-of-the-art 2
service 9
intermediation 1
online 1
preliminary 2
first 2
reliability 8
trace 1
opaqueness 1
block 2
ground-up 1
means 10
goal 8
justifiability 1
reasonableness 2
juncture 1
plane 1
equivalent 1
initial 5
anyone 1
crucial 6
being 8
bullet 1
silver 1
strict 3
self 3
component 3
pattern 1
life 5
workflow 3
target 2
raw 1
due 1
proxy 3
forethought 1
below 3
feasibility 3
heavy 1
multidisciplinary 1
formal 7
list 2
base 1
agent 1
picture 1
statistic 1
proportion 2
odds 2
disadvantage 2
fraction 1
probability 2
counterfactual 6
circumstantial 1
out 1
disparate 10
thorough 2
association 2
source 6
rationale 4
confidence 2
path 3
end-to-end 7
peer 2
schematic 1
downstream 1
proactive 3
dimension 11
column 2
department 1
point 5
semantics 2
interval 1
location 3
criter 2
log 1
stakeholder 2
guide 5
protocol 2
randomness 1
formula 1
cloud 1
road 2
opaque 1
substantial 5
hand 1
mental 1
search-engine 1
faith 1
down 1
primary 5
he 1
indeed 1
shortcut 1
object 2
quite 1
respect 2
agenda 2
evident 1
moment 1
inscrutable 1
anything 1
last 1
criticism 1
commerce 3
vigi 1
lance 1
intelligible 3
oft 1
opacity 1
latter 1
provision 1
nation 9
lifestyle 1
generation 1
age 1
roundtable 1
school 3
man 2
arm 2
substantive 2
proportionality 2
careful 4
gui 1
cycle 2
ethnicity 2
quantitative 1
panacea 1
now 4
early 4
spectrum 1
tone 4
skin 7
doctor 3
feedback 1
mind 1
disease 1
region 3
text 2
image 2
artifact 1
card 3
factuality 1
trait 1
animate 1
adversarial 1
library 2
synthetic 3
top-of-mind 1
chain 1
zugutekommen 1
geschtzt 1
vertrauenswrdig 1
personality 1
unconscious 2
energy 1
technologist 1
independent 1
strand 1
impartial 1
subgroup 2
off 1
tradition 1
versus 6
truth 1
ground 1
ratio-of 2
paradigm 3
productio 2
prospective 1
figure 1
heart 4
right 1
optimal 1
priority 5
forward 4
vehicle 1
autonomous 1
lens 3
convenience 1
remote 1
proportional 1
site 2
ahead 1
day 4
weapon 1
box 5
discrepancy 1
study 3
angle 2
exact 1
almost 2
flexibility 1
someone 1
enormous 1
auxiliary 1
healthcare 6
overall 3
universal 3
statistical 3
qualitative 2
blackbox 1
theoretical-condition 1
sparsity 1
general-purpose 1
upstream 1
vibrant 1
face 2
benchmark 1
everyday 1
eraser 1
sledgehammer 1
pillar 2
ity12 1
radiologist 1
patient 17
note 3
circumstance 1
candidate 1
artificial-physical 1
crowd 1
and-or 3
propaganda 1
liberty 1
humankind 1
inclusive 3
volume 1
worldwide 1
differential 1
cryptography 1
computational 2
sophisticated 2
cross-disciplinary 2
intelligence 3
accident 3
foreword 1
subsequent 1
holistic 1
up-to 2
viewpoint 1
step 1
minority 4
marketplace 1
direction 1
so-called 2
bioethic 1
deep-learning 1
readmission 1
violence 1
situational 1
et-al 1
equal 1
scoping 1
checklist 1
economics 1
manner 1
favoritism 1
period 4
firm 4
oversight 1
malice 1
drone 1
factory 1
integral 1
center 2
talent 1
monetary-quantity 3
dollar 2
pound 1
edition 1
award 1
gas 1
greenhouse 1
net 1
by 4
capital 1
healthy 2
y 1
contentious 1
literacy 2
incident 2
haphazard 1
officer 1
chief 1
de-facto 1
custom 3
then 5
personnel 2
opera 1
ring 1
fruitful 1
adequacy 1
young 2
old 1
sand 1
disagr-eemen 1
stem 1
ethic 1
directive 2
questionnaire 1
principal 1
mark 1
joint 1
sandbox 1
at-scale 1
conti-nuous 1
sound 1
foundation 2
immense 2
collateral 3
upon 1
subsystem 1
demographics 1
intuitive 2
facet 1
controversy 4
contemporary 1
mutual 2
good 1
penalty 1
cookie 1
kind 1
since 1
definitive 1
gravity 1
recidivism 3
pact 1
im 1
tactic 1
subjec 1
once 1
ex-post- 1
bear 1
wide-scale 1
order 1
caveat 2
al-so 1
sole 1
amr-choice 1
ideal 1
domai 2
brief 1
secondary 1
genuine 1
yet 1
skewer 1
newspaper 1
fallacy 1
distributive 1
vol 1
magazine 1
adversary 1
no-longer 1
cluster 1
infrastructure 1
externality 2
border 2
plurality 2
research 1
fatality 1
traffic 1
artificial-physical-intelligence 1
charter 1
thereby 1
everybody 1
meaningful 1
nature 1
husband 2
ensemble 1
sex 1
color 1
genetics 2
membership 1
disability 1
unseemly 1
statute 1
ethical 1
unscrupulous 1
bus 1
penumbra 1
startup 1
spirit 1
entrepreneurial 1
fiduciary 1
quantity 1
massive 1
near 1
precedent 1
workforce 1
at-large 1
partnership 1
availability 1
sovereignty 1
summer 1
benefit 1
paragraph 1
anonymity 1
stock 2
website 1
sort 1
exhaustive 1
express 1
thoughtful 1
candid 1
margin 1
le 1
anyway 1
detective 1
attitude 1
technocratic 1
forefront 1
definite 1
at-all 1
primer 1
clinician 1
trust 1
financial 1
File added
:ARG1 8939
:ARG0 3511
:mod 3017
:manner 334
:name 1171
:polarity 547
:ARG2 2175
:li 292
:location 244
:domain 208
:ord 26
:value 163
:quant 229
:poss 262
:topic 443
:example 174
:degree 57
:time 399
:condition 59
:source 26
:purpose 267
:instrument 46
:ARG3 282
:ARG6 5
:ARG4 110
:consist 67
:medium 46
:year 198
:mode 20
:beneficiary 26
:prep-as 7
:ARG7 43
:month 55
:prep-under 5
:subevent 21
:path 3
:frequency 38
:unit 15
:prep-with 3
:concession 18
:part 54
:day 41
:prep-to 9
:prep-in 13
:duration 11
:destination 1
:direction 9
:prep-against 2
:polite 1
:ARG5 7
:extent 3
:prep-on 2
:accompanier 2
:ARG8 2
:season 1
File added
possible-01 452
facilitate-01 13
regulate-01 64
exist-01 26
new-01 28
accountable-02 186
fair-01 338
shed-light-10 2
enable-01 21
devise-01 2
develop-02 164
decide-01 152
automate-01 47
respect-01 52
right-05 95
discriminate-02 112
intend-01 22
cause-01 124
prohibit-01 3
describe-01 100
initiate-01 6
govern-01 88
increase-01 38
use-01 211
simple-02 6
glance-01 1
contrast-01 79
see-01 25
rise-01 6
equal-01 51
blind-02 1
recommend-01 179
conclude-01 6
need-01 75
include-01 110
discuss-01 44
mean-01 145
deserve-01 15
trust-01 20
gain-02 4
important-01 49
advantage-01 5
approach-02 46
center-01 19
experience-01 2
issue-02 71
critical-02 9
bias-01 162
private-02 25
sensitive-03 10
result-01 35
regard-01 7
productive-03 4
perceive-01 9
present-01 9
employ-01 8
give-01 9
manage-01 19
evidence-01 5
competent-01 5
justify-01 13
position-02 3
superior-01 1
counter-01 2
underline-01 1
author-01 7
bind-01 5
impact-01 65
draw-02 8
attend-02 13
object-01 1
trade-01 13
apply-02 84
explore-01 15
risk-01 77
employ-02 5
perform-02 36
involve-01 34
control-01 39
become-01 4
intelligent-01 351
wide-02 13
examine-01 8
determine-01 25
vote-01 1
challenge-01 36
question-01 30
affect-01 45
elect-01 2
draw-01 1
parallel-01 1
try-01 7
sample-01 3
partition-01 1
argue-01 3
address-02 36
focus-01 35
harmful-02 8
have-degree-91 108
narrow-02 2
capture-01 1
range-01 20
full-09 2
suit-01 4
amplify-01 3
same-01 22
consist-01 7
arbitrate-01 1
establish-01 34
limit-01 30
specify-01 5
explain-01 140
refer-03 3
case-04 29
depend-01 22
cite-01 111
consider-02 91
protect-01 66
specific-02 45
implement-01 48
personal-02 38
measure-01 26
prevent-01 45
model-01 15
rely-01 29
process-01 56
disclose-01 5
operate-01 48
deploy-01 42
include-91 67
have-purpose-91 13
require-01 81
embed-01 12
train-01 34
learn-01 95
public-02 28
charge-08 1
relate-01 51
lack-01 18
access-01 37
defend-01 6
white-03 1
contain-01 5
submit-01 2
assess-01 77
post-01 2
publication-91 120
exemplify-01 53
design-01 132
validate-01 9
relevant-01 37
minimize-01 22
introduce-02 14
test-01 38
work-01 43
identify-01 46
integrate-01 7
consider-01 10
build-01 22
policy-01 27
promote-02 42
clear-06 13
trust-02 10
consume-01 15
incorporate-01 3
make-01 44
ensure-01 124
utilize-01 4
base-02 74
account-01 11
curate-01 2
well-09 24
verify-01 9
extensive-03 3
alert-01 3
implicate-01 13
mitigate-01 22
call-03 8
state-01 10
support-01 38
conduct-01 6
research-01 67
bring-01 8
have-org-role-91 37
produce-01 18
realize-01 31
understand-01 63
know-01 12
incorporate-02 7
legal-02 25
obscure-01 1
claim-01 6
analyze-01 43
appropriate-02 34
audit-01 30
weigh-01 2
begin-01 10
evaluate-01 35
inform-01 10
develop-01 2
do-02 16
tight-05 3
oversee-01 14
follow-01 7
complain-01 4
report-01 16
desire-01 8
have-03 47
guide-01 20
broad-02 17
embrace-01 2
safe-01 101
improve-01 15
capable-01 26
collect-01 11
track-01 1
source-01 7
foster-01 4
discriminate-01 39
call-01 5
set-08 2
nurture-01 1
create-01 32
unify-01 4
put-01 5
follow-through-07 1
comply-01 33
injure-01 3
behave-01 13
reasonable-02 6
resemble-01 23
treat-01 21
found-01 8
solve-01 16
start-01 7
choose-01 25
arise-02 9
continue-01 19
detect-01 10
represent-01 15
document-01 10
originate-01 4
characteristic-02 7
promise-01 6
raise-01 9
effort-01 13
highlight-01 10
rate-entity-91 9
flow-01 8
credit-02 3
serve-01 20
regardless-91 6
mention-01 3
explicit-03 8
grapple-01 1
value-01 4
labor-01 2
aim-01 13
provide-01 59
share-01 20
hold-01 11
private-03 11
generate-01 4
link-01 6
sense-01 6
emerge-02 6
compete-01 13
agree-01 6
distribute-01 6
close-02 1
infer-01 10
fill-in-05 1
propose-01 27
transact-01 2
interest-01 16
inflate-01 1
believe-01 11
expect-01 12
over-03 2
act-02 22
dominate-01 1
relation-03 7
obligate-01 65
impose-01 4
worth-02 7
recall-02 1
conducive-01 1
reduce-01 17
enforce-01 23
fill-01 2
publish-01 11
differ-02 88
near-02 1
prioritize-01 11
practice-01 41
exhibit-01 1
high-02 23
organize-01 6
pertain-01 2
subsume-01 1
emphasize-01 6
process-02 41
refer-01 13
reproduce-01 5
interpret-01 19
assign-01 3
responsible-03 18
indicate-01 8
trade-off-02 19
review-01 35
label-01 3
broaden-01 1
typical-02 5
frame-06 2
go-02 1
classify-01 24
demand-01 4
carry-01 1
show-01 12
rate-01 2
satisfy-01 6
have-rel-role-91 8
investigate-01 6
find-01 23
contract-02 4
supply-01 2
fulfill-01 3
source-02 22
skew-01 1
observe-01 7
survive-01 1
change-01 10
reuse-01 1
benefit-01 28
rust-01 1
uphold-01 7
secure-02 13
say-01 12
kommen-00 1
wahren-00 1
voluntary-02 2
betrieb-00 1
set-out-06 5
appear-02 7
have-concession-91 20
guarantee-01 9
pursue-01 4
enhance-01 11
make-18 9
act-01 6
notable-04 4
intertwine-01 1
deep-02 5
allow-01 12
exercise-01 2
subject-02 5
ready-02 3
undergo-28 1
maximize-01 8
enjoy-01 1
sustain-01 18
prejudice-01 4
subject-01 8
key-02 32
pronounced-02 1
lead-03 17
confident-01 4
absent-01 7
remedy-01 8
effective-04 19
associate-01 11
low-04 8
mirror-01 1
add-02 10
code-01 5
indify-01 1
come-up-13 2
appear-01 4
responsible-02 27
free-04 15
spare-01 1
collaborate-01 7
extract-01 5
define-01 107
oversight-02 1
likely-01 6
predict-01 38
crime-02 1
output-00 1
correlate-01 3
good-02 36
wrong-02 3
go-08 3
proliferate-01 1
black-05 4
come-01 4
zoom-01 1
concepute-01 1
rob-01 1
right-06 2
help-01 34
avoid-01 15
engineer-01 6
be-temporally-at-91 5
sour-02 1
single-02 3
converge-01 2
seem-01 3
shape-01 4
concern-01 37
neglect-01 1
local-02 8
score-01 8
surveil-01 2
cycle-02 7
safeguard-01 9
available-02 12
threaten-01 8
enrich-01 1
social-03 6
aise-02 1
light-07 1
walk-01 1
stand-11 4
want-01 5
uncover-01 4
sear-01 1
fascinate-01 1
be-located-at-91 23
burgeon-01 1
paraphrase-01 1
seek-01 14
ensur-01 2
recognize-02 9
overcome-01 2
proceed-01 9
opine-01 8
envision-01 3
quote-01 5
complete-02 3
necessitate-01 4
drop-05 1
conceive-01 2
ask-02 1
instead-of-91 15
converse-01 1
hear-01 1
adjust-01 7
spur-01 1
dialogue-01 2
criticize-01 1
pry-02 1
open-04 18
talk-01 7
title-01 9
take-into-account-04 4
achieve-01 20
tackle-01 3
fuse-01 2
have-quant-91 8
reinforce-01 5
matter-01 2
inundate-01 1
struggle-02 1
bind-02 1
offer-01 10
prefer-01 2
come-12 3
view-02 5
suffice-01 13
look-01 8
good-04 4
inspire-01 1
harm-01 43
extend-01 4
falsify-01 1
resist-01 1
manipulate-02 3
intervene-01 10
receive-01 8
contextualize-00 1
treat-04 1
friendly-01 1
conflict-01 9
follow-02 2
fix-03 1
equalize-01 4
connect-01 3
influence-01 9
frequent-02 3
go-01 1
down-03 1
rank-01 3
appeal-02 1
better-01 1
assume-02 6
get-01 2
wledge-01 1
convey-01 1
club-01 1
under-03 1
penchan-00 1
responsible-01 8
balance-01 11
real-04 10
disparage-01 2
compare-01 5
notify-01 2
zing-01 1
leave-out-03 2
debilitate-01 1
game-01 1
rule-01 4
have-manner-91 6
highlight-02 1
belie-01 1
concern-02 13
work-09 4
regular-03 1
exploit-01 1
cover-01 11
import-01 1
interview-01 3
expert-01 19
contest-01 3
address-01 2
advise-01 4
gins-00 1
general-02 21
adhere-02 5
rule-03 5
adopt-01 14
meet-01 14
imply-01 6
just-02 6
put-03 8
measure-02 17
deliver-01 17
manufacture-01 3
store-01 6
enter-01 6
know-02 3
activity-06 8
underlie-01 3
attract-01 2
synthesize-01 2
close-01 4
encourage-01 13
invest-01 6
disseminate-01 2
check-01 9
major-02 5
compile-01 2
procure-01 3
list-01 3
break-01 1
innovate-01 26
complement-01 4
grow-01 9
make-02 12
quantify-01 6
regular-02 7
accord-02 2
empower-01 5
combat-01 5
maintain-01 8
step-01 7
deliberate-01 3
optimize-01 6
drive-02 8
constrain-01 3
express-01 8
equate-01 2
characterize-01 7
study-01 19
treat-03 4
oppose-01 5
reconcile-01 3
discover-01 6
take-01 8
distribution-range-91 2
colocate-01 1
launch-01 2
devote-01 4
breach-01 2
function-01 6
term-01 4
distinguish-01 4
misrepresent-01 3
functional-03 2
divert-01 2
subjective-03 4
stick-01 1
restrict-01 5
replace-01 7
educate-01 8
select-01 17
gentle-01 2
appreciate-02 3
point-01 2
read-01 3
survey-01 1
strong-02 8
accept-01 12
butt-in-01 1
pay-01 3
loan-01 3
useful-05 8
attempt-01 2
scheme-01 1
detail-01 8
move-01 6
map-01 9
disappear-01 2
attribute-01 5
distort-01 2
remove-01 3
regularize-01 2
satisfy-02 1
stake-01 12
target-01 12
like-01 1
clarify-10 4
stem-02 1
compatible-03 1
cost-01 15
in-process-02 1
hold-02 4
privilege-01 2
progress-01 3
supervise-01 1
acquire-01 3
practical-02 3
care-03 8
tense-03 1
consistent-02 4
have-li-91 5
classify-02 6
search-01 3
standard-02 12
follow-04 6
effect-03 1
core-02 5
profile-01 4
misclassified-02 1
misidentify-01 1
judge-01 9
negative-02 11
conceptualize-01 10
digest-01 2
efficient-01 9
answer-01 3
ill-01 2
look-02 4
profit-01 5
apply-01 7
repay-01 2
white-02 3
task-01 3
offend-03 7
err-01 9
suggest-01 12
bank-01 2
tax-01 2
speculate-01 2
moral-02 7
compute-01 2
architect-01 2
long-03 6
align-01 9
insight-05 2
counteract-01 2
outline-01 4
go-on-15 4
live-01 6
rigorous-00 2
release-01 8
escalate-01 2
correct-01 6
foresee-01 4
lead-02 11
afford-02 4
leverage-01 2
succeed-01 2
conform-01 6
abuse-01 3
translate-01 4
run-01 2
prove-01 7
log-01 4
articulate-01 4
compatible-00 2
fail-01 8
have-condition-91 7
advanced-02 2
version-01 2
accommodate-01 6
update-01 8
partake-01 4
arrive-01 4
movement-07 4
augment-01 3
mod-02 2
edit-01 2
calibrate-01 6
ask-01 4
weight-01 2
commit-01 5
seal-01 2
fit-03 1
criminal-03 2
communicate-01 2
encompass-01 2
presume-01 1
innocent-01 1
eliminate-01 6
substitute-01 1
age-01 2
score-on-scale-91 4
except-01 4
expose-01 3
redress-01 9
power-01 4
modernize-01 1
vulnerable-01 3
expand-01 3
blacklist-01 1
reverse-01 4
burden-01 2
place-01 3
legislate-01 10
respond-01 7
administer-01 4
slow-01 4
consequence-03 16
spread-03 2
consequential-01 14
voice-01 4
administrate-01 5
monitor-01 18
adapt-01 6
prepare-02 6
mar-02 2
separate-02 3
seize-01 2
preserve-01 9
grant-01 10
purchase-01 4
pose-02 12
fund-01 5
condition-01 3
brief-01 2
factor-01 3
have-mod-91 1
expine-01 1
consent-01 7
tell-01 1
in-line-04 3
legitimize-01 1
obtain-01 4
anonymousize-00 1
archive-01 1
retain-01 2
stress-01 4
case-03 4
feed-02 1
constitute-01 4
close-10 7
feed-01 2
summarize-01 6
disadvantage-01 1
debate-01 11
exclude-01 6
disempower-01 1
wave-04 1
deal-01 6
interact-01 8
market-01 1
insure-02 2
police-01 1
care-04 3
find-02 1
value-02 3
correct-02 4
deem-01 3
bad-07 1
direct-02 9
contend-01 1
miss-01 1
suffer-01 2
corrupt-01 1
subscribe-01 1
recognize-01 6
deep-03 1
entitle-02 1
set-up-03 7
stipulate-01 1
uniform-02 1
note-01 7
carry-out-03 4
stress-02 2
introduce-01 5
schedule-01 1
display-01 3
liable-01 7
incentivize-01 3
advertise-01 2
significant-02 12
price-01 2
unique-01 2
drift-01 2
approve-01 1
declare-02 1
issue-01 2
certify-01 7
mark-01 1
showcase-01 1
harbor-01 1
problematic-02 2
surround-01 3
come-about-06 1
accomplish-01 2
permit-01 6
compose-01 1
mean-02 2
smart-06 2
acquaint-01 1
cooperate-01 9
keep-in-mind-08 4
norm-02 3
enshrine-01 3
think-01 6
endanger-01 1
secure-01 2
direct-01 3
handle-01 2
form-01 10
generalize-01 2
objectionable-02 1
have-hand-in-17 2
construct-01 6
precaution-02 4
formulate-01 3
participate-01 13
structure-01 4
outsource-01 2
lurk-01 1
hide-01 2
ally-01 1
allocate-01 2
consult-01 4
orient-01 4
fall-04 1
true-01 2
qualify-02 2
give-14 5
mistreat-01 4
belong-01 3
mismanage-01 1
actual-02 6
prepare-01 2
concretize-01 1
assist-01 1
pinpoint-01 1
streamline-01 1
preempt-01 1
anticipate-01 2
furnish-01 1
demonstrate-01 5
precondition-01 1
confirm-01 3
disclaim-01 1
contribute-01 3
partner-01 2
retrieve-01 6
abstract-02 2
mine-01 1
program-01 2
collide-01 1
trouble-01 1
vigilant-01 6
keep-01 1
up-03 1
concrete-02 2
explicate-01 3
stand-out-06 1
bear-01 1
rethink-01 1
underpin-01 6
fun-01 1
have-to-do-with-04 1
alter-01 1
manipulate-01 2
lay-01 1
set-02 5
ignore-01 2
let-01 1
handy-02 1
amount-02 1
anthropomorphize-01 2
settle-02 2
quibble-01 1
aim-02 4
merit-01 2
stumble-01 1
lose-02 3
speak-01 3
remain-01 5
tie-in-02 1
demystify-01 1
bill-01 1
build-02 3
google-01 1
derive-01 4
reflect-01 7
fall-01 1
acknowledge-01 3
entail-01 5
dance-01 1
clump-01 1
natural-03 2
embody-01 2
supplement-01 1
sit-01 1
update-02 1
request-01 2
categorize-01 2
meaningful-05 4
feel-01 4
face-01 3
scale-01 1
diagnose-01 2
specialize-01 1
span-01 1
tend-02 1
valid-02 1
lead-01 1
prototype-01 1
probe-01 1
internal-02 10
representation-02 1
photograph-01 1
hyperlink-91 3
cease-01 1
plan-01 2
bedeutet-00 1
ergreif-00 1
erzustellen-00 1
illustrate-01 5
trace-02 1
opt-01 3
out-06 2
tamper-01 1
play-02 3
conduct-02 4
differentiate-01 1
vary-01 3
split-01 1
wrong-04 2
correlate-91 2
scrutinize-01 2
opposite-01 1
byline-91 1
reference-04 2
calculate-01 2
accelerate-01 3
copyright-01 2
come-04 2
compromise-02 2
transpire-01 1
decrease-01 1
creat-01 1
trigger-01 2
retrain-01 2
remit-01 1
layer-01 1
fire-02 2
teach-01 3
contest-02 2
sentence-01 3
parole-01 1
cut-01 2
right-02 1
dispute-01 3
codify-01 1
suitable-04 2
at-hand-14 2
flaw-01 2
recommen-01 1
license-01 1
point-04 1
tradeoff-01 2
destroy-01 1
black-04 3
come-down-23 1
miss-02 1
boost-01 1
replicate-01 1
separate-01 2
pin-down-02 1
come-up-11 1
put-02 1
contradict-01 2
impede-01 1
overreach-01 1
isolate-01 3
chain-01 1
desirable-02 1
shift-01 1
damage-01 1
impair-01 3
draft-01 4
deplo-00 1
minor-01 1
screen-01 1
open-02 1
misuse-01 1
forgive-01 1
emerge-01 2
harness-01 1
aggregate-01 1
federate-01 1
average-01 1
correspond-02 3
undermine-01 2
vet-01 2
welcome-01 2
remark-01 3
assert-02 6
print-01 1
exchange-01 1
tie-01 1
hit-01 1
chart-01 2
scope-01 2
ground-02 2
stark-02 1
formalize-01 1
group-01 3
violate-01 2
type-03 3
hit-02 1
query-01 1
sacrifice-01 1
die-01 1
contextualize-01 2
practical-03 1
mature-02 2
sponsor-01 1
strengthen-01 4
move-02 1
propound-01 1
overlap-01 1
complete-01 2
drive-01 1
artificial-03 2
synergize-01 1
prosper-01 2
binding-07 1
navigate-01 2
name-01 1
advance-01 3
intercede-01 1
dictate-01 1
tailor-01 1
host-01 2
preach-01 1
heighten-01 1
mission-01 1
dark-02 2
emit-01 1
decouple-01 1
root-02 1
eradicate-01 1
thin-03 1
thick-03 1
take-10 1
prospect-02 1
comprise-01 1
take-04 1
short-06 1
accompany-01 2
peculiar-01 1
feature-01 1
excerpt-01 1
smooth-04 1
familiarize-01 1
warn-01 3
powerful-02 1
transform-01 2
personalize-01 1
legitimate-02 2
write-01 1
benchmark-01 4
assemble-01 1
distract-01 1
fit-01 2
watch-01 1
invent-01 2
fine-04 1
mask-01 1
level-03 1
play-01 1
smigh-02 1
tip-05 1
trick-01 1
fight-01 1
operateize-01 1
present-02 1
trend-01 1
assure-01 3
coordinate-01 1
spend-01 1
pilot-01 1
standardize-01 1
comfort-01 2
compensate-01 1
tolerate-01 1
motivate-01 1
authorize-01 2
inspect-01 3
question-03 1
cohere-01 2
turn-out-11 1
estimate-01 1
rough-04 1
comment-01 2
return-01 1
entwine-01 1
perpetuate-01 1
discourse-01 1
open-05 1
nuance-01 1
reach-01 2
invoke-01 1
guard-01 1
engage-01 2
lie-07 2
resolve-01 2
multiply-01 1
fit-06 3
size-01 1
invite-01 1
disagree-01 1
reaffirm-01 1
escape-01 1
institutionalize-01 1
set-01 1
inquire-01 1
detach-01 1
comprehend-01 1
institutionalize-02 1
override-01 1
exclusive-02 1
regrieve-01 1
have-part-91 1
perfect-02 1
complicate-01 2
hard-02 1
impacute-01 1
suppose-01 1
fast-02 1
award-01 2
announce-01 2
pressure-01 1
mainstream-02 1
default-01 1
vend-01 2
artificial-physical-03 1
accolor-01 1
open-01 1
restat-01 1
Reinforce-01 1
thrive-01 1
cross-02 2
well-05 4
spread-02 1
transport-01 1
renew-01 1
queue-01 1
route-01 1
overrule-01 1
touch-on-04 1
open-08 1
go-06 1
fairwash-01 1
approximate-01 1
cover-up-04 1
conceal-01 1
bear-02 1
exhaust-01 1
outweigh-01 1
countervail-01 1
risky-02 1
interfere-01 1
offend-01 1
oppress-01 1
compete-02 1
reluctant-01 1
will-02 2
rapid-02 1
monopolize-01 1
hack-04 1
refine-01 1
rid-01 1
evolve-01 1
accumulate-01 1
bring-about-05 1
pseudonymize-00 1
sell-01 2
go-12 1
count-01 1
portray-01 1
diversify-01 2
compatible-01 1
easy-05 1
contravent-01 1
suspect-01 1
advocate-01 1
erode-01 1
special-02 1
neutral-02 1
premise-01 1
moderate-01 2
affiliate-01 1
endorse-01 1
underscore-01 1
mandate-01 1
File added