bonjours, es qu'il as une méthode pour transformer les mots pluriels d'une phrase en singulier en java.
bonjours, es qu'il as une méthode pour transformer les mots pluriels d'une phrase en singulier en java.
non. Ca va être à toi de programmer ça![]()
Le problème c'est que je ne vois pas comment faire, je ne peut pas utiliser un dictionnaire vu que je ne connais pas les mots que je doit mettre en singulier.
Pour être plus précis je travail sur une indexation conceptuelle et c'est a l'utilisateur de choisir le texte ou le document qu'il souhaite indexer depuis son ordinateur, ensuite cette étape est pour mieux retrouver les concept dans une ontologie.
Par exemple dans mon ontologie j'ai le mot : muscle
Et dans mon texte j'ai : muscles
le programme doit être capable de reconnaître que c'est le même mot (concept).
soit tu passe par un dictionnaire, soit tu accepte les erreurs en faisant un truc générique.
Tu tolère un certain nombre de différence pour la 2ème moitié du mot.
A cela tu peux considérer les règles des pluriels: par exemple: un canal des canaux, (si le mot saisi, se termine par aux et si il existe dans le dico un mot comme canaux sauf que si on on enlève le aux et on met al, on a un mot valide alors on procède au remplacement)
Ainsi de suite avec les règles comme un bijou des bijoux...
je pense que tu vas devoir causer avec un pro du français concernant toutes les règles du pluriel..
Il n'y a pas temps de forme pluriel que ça à lister.
tu as donc besoin de coder un mécanisme d'identification de tes formes pluriels (regex par exemple ou un simple String.endsWith).
Si tu matches un pattern pluriel, tu génères, la forme singulière et tu la soumets en doublon de ton terme à ton indexer.
En plus de ça, plutôt que d'utiliser un système d'égalité de terme, tu devrais utiliser un système de pondération avec décomposition de tes mots sous forme de radicale et de suffixe.
Ce système te permettrait de prendre en plus en compte un partie de la conjugaison des verbes.
Tu peux aussi regarder les différentes stratégies dans les indexers comme lucene et elasticsearch pour te faire une idée de + et de - chaque solution
Salut,
allez soyons fous, tu peux regarder de la racinisation des mots :
https://fr.wikipedia.org/wiki/Racinisation
La racine d’un mot correspond à la partie du mot restante une fois que l’on a supprimé son (ses) préfixe(s) et suffixe(s), à savoir son radical.
Ainsi, si tu as les mots caresses et caresse et caressons, si je supprime leurs radicaux, j'obtiens caress.
Et tu peux aussi te concentrer sur la lemmatisation des mots :
https://fr.wikipedia.org/wiki/Lemmatisation
La lemmatisation regroupe les différentes formes que peut revêtir un mot, soit : le nom, le pluriel, le verbe à l'infinitif, etc.
Ton objectif final étant de réduire un mot à partir d'un dictionnaire de mots à sa racine ou à son lemme pour ensuite identifier la version plurielle ou singulière de ce mot.
Sinon, pour une réponse simple, tu créer un fichier qui mappe les pluriels => les singuliers pour un bon nombre de mots, et tu parcours ce fichier pour récupérer le mot que tu souhaites transformer du pluriel au singulier.
Partager