Je souhaite trouver des informations dans une colonne en fonction de l'autre colonne. J'ai donc quelques mots dans une colonne et des phrases complètes dans une autre. Je voudrais savoir s'il trouve les mots dans ces phrases. Mais parfois, les mots ne sont pas les mêmes, donc je ne peux pas utiliser la fonction SQL like
. Ainsi, je pense que la correspondance floue + une sorte de « comme » la fonction serait utile que les données ressemble à ceci:Ligne de correspondance floue dans une colonne avec la même ligne dans la colonne suivante
Names Sentences
Airplanes Sarl Airplanes-Sàrl is part of Airplanes-Group Sarl.
Kidco Ltd. 100% ownership of Kidco.Ltd. is the mother company.
Popsi Co. Cola Inc. is 50% share of PopsiCo which is part of LaLo.
Les données a environ 2000 lignes qui ont besoin d'une logique pour savoir si Airplanes Sarl est en effet dans la phrase ou non, et cela vaut également pour Kidco Ltd., qui est dans la phrase «Kidco.Ltd». Pour simplifier, je n'ai pas besoin de chercher toutes les phrases dans la colonne, il suffit de chercher le mot Kidco Ltd. et de le chercher dans la même ligne de la base de données.
je l'ai déjà essayé en Python avec: df.apply (Lambda: fuzz.ratio (s [ 'Noms'], [s 'Phrases']), axe = 1)
Mais je eu beaucoup d'erreurs unicode/ascii donc j'ai abandonné et je voudrais essayer dans R. Des suggestions sur la façon de faire à ce sujet dans R? J'ai vu des réponses sur Stackoverflow qui correspondraient à toutes les phrases de la colonne, ce qui est différent de ce que je veux. Aucune suggestion?
pouvez-vous nous lier à la réponse ce flou correspondait à tout? –
comme votre table est petite, vous pouvez essayer des distances levenshtein. disons d est la distance, n1 le nombre de caractères dans col1 et n2 le nombre de caractères dans col2. si le nom n'est pas du tout dans la phrase, la distance devrait être plus proche de n2, si elle est exactement là, la distance devrait être n2-n1. Ensuite, vous définissez un seuil, je pense que cela peut bien fonctionner. –