Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Complete the current annotator dictionary creation workflow to add a new normalized dictionnary #1

Closed
jonquet opened this issue Nov 18, 2016 · 9 comments
Assignees

Comments

@jonquet
Copy link

jonquet commented Nov 18, 2016

This is a sub task of ontoportal-lirmm/ncbo_annotator#4

This consist of modifying the process to generate the mgrep dictionary file in order to generate another file that would be normalized using TreeTager.

Assign to @vemonet and @amineabdaoui

@amineabdaoui
Copy link

amineabdaoui commented Feb 1, 2017

The attached zip file contains a jar that allows to generate a new lemmatized dictionary.
It replaces each concept by a its lemmatized form and keeps the same key.
"-3404364283777539712 MELANOMES" -> "-3404364283777539712 MELANOME"

The jar takes two parameters: the first is the original dictionary file path and the second is the lemmatized dictionnary path.
java -jar LemmatizerDic.jar dictionary.txt dictionary-lem.txt

The jar calls TreeTagger which must be present on the same folder.

We should call this jar every time the original dictionary is changed.

@vemonet, i think we should call it inside the file "ncbo_ontology_annotate_generate_dictionary" ?
LemmatizerDic.zip

@vemonet
Copy link

vemonet commented Feb 3, 2017

C'est à ce niveau que les concepts d'une submission sont ajoutés à l'Annotator :
https://github.com/sifrproject/ncbo_cron/blob/master/lib/ncbo_cron/ontology_submission_parser.rb#L224

Donc je pense que le mieux c'est de le faire dans cette fonction :
https://github.com/sifrproject/ncbo_annotator/blob/master/lib/ncbo_annotator.rb#L109

@jonquet
Copy link
Author

jonquet commented Feb 3, 2017

@vemonet Pourrez tu nous indiquer aussi ou se trouve les elements pour demarrer le serveur MGREP aussi ? (car il va falloir qu'on genere un 2 eme dico et qu'on demarre un 2eme MGREP avec ce dicco.

@amineabdaoui
Copy link

amineabdaoui commented Feb 6, 2017

J'ai modifié la fonction generate_dictionary_file pour générer un deuxième dictionnaire lemmatisé.
J'ai crée une branche dans le projet ncbo_annotator que j'appelle developAmine car je n'ai pas encore tout testé.

Je donne en PJ pour exemple une partie du dictionnaire original et le dictionnaire lemmatisé résultant.

dictionary-lem.txt
dictionary.txt

Il faut mentionner que TreeTagger élimine les chiffres et quelque caractères spéciaux.

@amineabdaoui
Copy link

I tested the lemmatized dictionary generation on my local bioportal installation and it worked correctly. For that, I used the script "ncbo_ontology_annotate_generate_dictionary" in the ncbo_cron/bin folder.
I created a branch in the ncbo_annotator project called "developAmine", and a second one in the ncbo_cron project with the same name.

@jonquet jonquet changed the title Complete the current annotator dictionary creation workflow to add a new normalize dictionnary Complete the current annotator dictionary creation workflow to add a new normalized dictionnary Feb 7, 2017
@jonquet
Copy link
Author

jonquet commented Feb 7, 2017

Merci des exemples.
COEUR-POUMONS et transformé en CŒUR POUMON, j'en déduis que le Œ n'est pas un caractère spécial pour Treetager.

Pour les CUI qui disparaissent du dico, ok. C'est pas grave. De toute façon a terme on est censé ne plus en avoir si les ontologies sont propres... cf entre autre
sifrproject/sifr_project_java_ontology_processing#3
A y etre, on pourrait carrément enlever les lignes du dico e.g.
5594337818904035973 C

Pour une ligne comme celle-la:
5083756382759859076 ÉVéNEMENTS EMBOLIQUES ET THROMBOTIQUES (SMQ)
L'idéal, pour vraiment augmenter le recall de l'Annotator serait d'avoir comme résultats:
5083756382759859076 ÉVÉNEMENT EMBOLIQUE ET THROMBOTIQUE SMQ
5083756382759859076 ÉVÉNEMENT EMBOLIQUE
5083756382759859076 ÉVÉNEMENT THROMBOTIQUE
5083756382759859076 SMQ
Qu'en pensez vous ?
(j'ai oublié si MGREP accepte plusieurs entrée avec le même termid d'ailleurs ?)

INCISION ET DRAINAGE D'HéMATOME DU BASSIN
=>
INCISION ET DRAINAGE D HÉMATOME DU BASSIN
INCISION D HÉMATOME DU BASSIN
DRAINAGE D HÉMATOME DU BASSIN

Je sais que cela va plus loin que la lemmatisation la, mais est ce que a envoyer ca a un outil comme TreeTager, on pourrait pas essayer de faire ca aussi.

@amineabdaoui
Copy link

Je suis d'accord pour les lignes contenant seulement "C", je vais les enlever.

Pour les entrées multiples avec le meme termid, Mgrep semble les gérer sans problèmes.
J'ai rajouté manuellement plusieurs lignes avec le meme termid, il arrive toujours à retrouver le meme concept avec les différentes variantes.

Par contre, je pense que pour les gérer on devra utiliser des heuristiques (par exemple: après un ET, considérer une suite de caractères avec au moins trois consonnes comme une abréviation...)

@amineabdaoui
Copy link

Le dictionnaire lemmatisé ne contient plus de lignes avec un concept qui a un seul caractère (le cas des CUI).
Avec Andon, on a pu démarrer un deuxième Mgrep avec le dictionnaire lemmatisé sur le port 55556.

@jonquet
Copy link
Author

jonquet commented Feb 8, 2017

Well, on dirait que cette première étape est terminée alors ;) Bravo.
Je propose de garder la discussions sur les heuristiques pour ajouter des termes pour un autre moment. J'ai fait un autre issue pour ca:
ontoportal-lirmm/ncbo_annotator#9

syphax-bouazzouni added a commit that referenced this issue Oct 26, 2024
Ontoportal align: Ecoportal ontoportal reset
syphax-bouazzouni added a commit that referenced this issue Nov 6, 2024
Feature: Align to AgroPortal 2.9.1 release
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants