odul39
-
21 févr. 2015 à 18:27
cgandco
Messages postés219Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention22 juin 2017
-
24 févr. 2015 à 16:11
Bonjour,
Je suis débutant en programmation, après plusieurs recherche je trouve comment comparer deux chaines de plusieurs manières mais aucunes ne me convient.
Ce que je souhaite faire :
je reçoit un tableau de string contenant des désignations de produit, que je souhaite comparer au contenu d'un autre tableau de string pour identifier la référence d'article s'en rapprochant le plus.
Par exemple je reçoit "Etui pour IPhone 4S cuir noir avec rabat"
Je souhaite que parmi mon autre tableau :
qui contient par exemple :
"Etui IPhone 5"
"Etui IPhone 4S noir"
"Etui 4S cuir noir"
"Etui pour IPhone 6 cuir beige avec rabat"
ressorte le troisième "Etui 4S cuir noir"
Que dois je utiliser pour comparer des phrases et savoir celles qui s'en rapproche le plus?
Oui mais laquelle?
Je ne vois pas trop comment procéder, j'ai penser à utiliser String.Split et après String.Compare mais je suis pas sûr que ce soit le plus approprié.
Whismeril
Messages postés19028Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention24 avril 2024656 22 févr. 2015 à 06:00
Bonjour,
Ce que je ferais comme ça:
-1 je splite la phrase de recherche avec l'espace comme séparateur de façon à avoir un tableau avec chaque mot.
-2 pour chaque mot clé, je vérifie s'il est dans une des descriptions, avec string.Contains ou une Regex (si tu veux t'afranchir de la casse).
-3 enfin je retourne la description qui a le plus d'occurences.
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 22 févr. 2015 à 18:41
Bonsoir
Pas aussi simple que ça ton problème, le comptage d'occurrence ne suffira pas, car dans l'exemple que tu donnes c'est "Etui pour IPhone 6 cuir beige avec rabat" qui sera choisi car elle comporte 6 mots de la phrase du référence, alors que "Etui 4S cuir noir" n'en compte que 4, comme "Etui IPhone 4S noir" d'ailleurs.
Il faudrait ajouter une notion de pondération aux mots.
Vous n’avez pas trouvé la réponse que vous recherchez ?
odul39
Messages postés1Date d'inscriptiondimanche 22 février 2015StatutMembreDernière intervention22 février 2015 22 févr. 2015 à 19:01
Effectivement je pense qu'il faut pouvoir donner de l'importance a certain mot clé.
Si j'effectue une liste et que je compare à cette liste mes mots après le Split, je pourrais par exemple compter pour deux occurrences les mots clés trouvés.
Quand pensez vous?
Je trouve tout cela quand même assez lourd.
Whismeril
Messages postés19028Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention24 avril 2024656 22 févr. 2015 à 19:10
Non tu fais un dictionnaire avec le mot et son poids, pour chaque phrase tu fais une liste des couples trouvés et à la fin tu additionnes les poids.
cgandco
Messages postés219Date d'inscriptionmercredi 26 octobre 2011StatutMembreDernière intervention22 juin 20179
>
Whismeril
Messages postés19028Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention24 avril 2024 24 févr. 2015 à 16:11
Bonjour,
pour avoir un peu plus facile, pourquoi ne pas retirer les mots qui n'ont pas d'importance de ta liste de comparaison et laisser les autres avec un poids égal pour tous ?