Last active
December 6, 2023 08:12
-
-
Save hdary85/333b7585227b8c78e3f6ee81274072cc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import pandas as pd | |
| from difflib import SequenceMatcher | |
| import csv | |
| import re | |
| # Charger le fichier CSV dans un dataframe | |
| df = pd.read_csv('votre_fichier.csv') | |
| # Charger le fichier texte | |
| with open('votre_fichier.txt', 'r', encoding='utf-8') as file: | |
| texte = file.read() | |
| # Diviser le texte en mots | |
| mots_texte = re.findall(r'\b\w+\b', texte.lower()) | |
| # Créer une liste pour stocker les correspondances trouvées avec nom, prénom, similarité et le mot dans le texte | |
| correspondances_trouvees = [] | |
| # Parcourir chaque ligne du dataframe | |
| for index, row in df.iterrows(): | |
| nom = row['Nom'].lower() | |
| prenom = row['Prénom'].lower() | |
| # Vous pouvez ajuster le seuil de similarité en fonction de vos besoins | |
| similarity_threshold = 0.7 | |
| # Parcourir chaque mot du texte | |
| for mot_texte in mots_texte: | |
| # Calculer la similarité entre les noms/prénoms et le mot du texte | |
| nom_similarity = SequenceMatcher(None, nom, mot_texte).ratio() | |
| prenom_similarity = SequenceMatcher(None, prenom, mot_texte).ratio() | |
| # Vérifier si la correspondance atteint le seuil de similarité | |
| if nom_similarity > similarity_threshold and prenom_similarity > similarity_threshold: | |
| correspondances_trouvees.append({ | |
| 'Nom': row['Nom'], | |
| 'Prénom': row['Prénom'], | |
| 'Similarité_Nom': nom_similarity, | |
| 'Similarité_Prénom': prenom_similarity, | |
| 'Mot_Texte': mot_texte | |
| }) | |
| # Imprimer la correspondance trouvée | |
| print(f'{row["Nom"]} {row["Prénom"]} trouvé dans le texte avec une similarité de {nom_similarity:.2%} pour le nom et {prenom_similarity:.2%} pour le prénom.') | |
| # Exporter les correspondances trouvées dans un fichier CSV | |
| csv_filename = 'correspondances_trouvees.csv' | |
| with open(csv_filename, 'w', newline='', encoding='utf-8') as csv_file: | |
| fieldnames = ['Nom', 'Prénom', 'Similarité_Nom', 'Similarité_Prénom', 'Mot_Texte'] | |
| writer = csv.DictWriter(csv_file, fieldnames=fieldnames) | |
| # Écrire l'en-tête du CSV | |
| writer.writeheader() | |
| # Écrire les correspondances trouvées dans le fichier CSV | |
| writer.writerows(correspondances_trouvees) | |
| print(f'Correspondances trouvées exportées dans {csv_filename}.') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment