Skip to content

Instantly share code, notes, and snippets.

@hdary85
Last active December 6, 2023 08:12
Show Gist options
  • Select an option

  • Save hdary85/333b7585227b8c78e3f6ee81274072cc to your computer and use it in GitHub Desktop.

Select an option

Save hdary85/333b7585227b8c78e3f6ee81274072cc to your computer and use it in GitHub Desktop.
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