Skip to content
Snippets Groups Projects
Commit b97f5cc4 authored by Mathieu Loiseau's avatar Mathieu Loiseau
Browse files

merge sense bases

TODO:
- [ ] review label compute time
- [ ]  load from file
- [ ]  Entry.merge_senses(ids1, ids2)
parent 5a8c32f5
No related branches found
No related tags found
No related merge requests found
...@@ -209,12 +209,12 @@ class Sense(SubInfo): ...@@ -209,12 +209,12 @@ class Sense(SubInfo):
#On réinitialise les identifiants des sous-éléments #On réinitialise les identifiants des sous-éléments
if not isinstance(self, SubSense): if not isinstance(self, SubSense):
Sense.reset_sub_counters() Sense.reset_sub_counters()
self.merged = False
self.definitions = [] #liste des définitions (elles auront une langue et un texte) self.definitions = [] #liste des définitions (elles auront une langue et un texte)
self.subsenses = [] #liste des sous-définitions (récursif…) self.subsenses = [] #liste des sous-définitions (récursif…)
self.examples = [] #liste des exemples (un texte obligatoire, source et url sont optionnels) self.examples = [] #liste des exemples (un texte obligatoire, source et url sont optionnels)
self.translations = [] #liste des traductions dans d'autres langues self.translations = [] #liste des traductions dans d'autres langues
self.domain = None #domaine d'usage du mot dans ce sens self.domain = None #domaine d'usage du mot dans ce sens (à supprimer, cf. metadata ?)
self.metadata = {} self.metadata = {}
self.regions = set() self.regions = set()
if definition != None: if definition != None:
...@@ -314,9 +314,27 @@ class Sense(SubInfo): ...@@ -314,9 +314,27 @@ class Sense(SubInfo):
i+=1 i+=1
return res return res
def merge(self, other):
if self != other:
self.label += other.label
for d in other.definitions:
self.add_def(d)
for s in other.subsenses:
self.add_subsense(s)
for e in other.examples:
self.add_example(e)
for t in other.translations:
self.add_translation(t)
if self.domain == None and other.domain != None:
self.set_domain(other.domain) ##Pas clair, à virer (cf. metadata ?)
for k,v in other.metadata:
self.add_to_metadata(k,v)
for r in other.regions:
self.add_region(r)
def serializable(self, id = True): def serializable(self, id = True):
res = {} res = {}
if id: if id and not self.merged:
prefix = self.get_id() prefix = self.get_id()
Sense.reset_sub_counters() Sense.reset_sub_counters()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment