Prediction ia
Fermé
Jeremyprog
-
18 janv. 2022 à 16:22
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 19 janv. 2022 à 09:17
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 19 janv. 2022 à 09:17
A voir également:
- Prediction ia
- Prediction 2025 - Guide
- Comment utiliser l'ia - Accueil - Guide Intelligence artificielle
- Ia whatsapp - Accueil - Messagerie instantanée
- L'IA arrive dans WhatsApp - voici tout ce que vous allez pouvoir faire avec cette intelligence artificielle - Guide
- Ia qui déshabille - Accueil - Réseaux sociaux
1 réponse
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
Modifié le 19 janv. 2022 à 09:21
Modifié le 19 janv. 2022 à 09:21
Bonjour,
Ce que tu cherches correspond à mon avis à une distance d'édition. Dans l'idée, une distance d'édition compare deux chaînes de caractères (disons x et y) et regarde le nombre d'opération d'éditions nécessaire pour transformer x en y. Le jeu d'opération de coût minimal définit la distance entre x et y.
Il existe plein de distances d'éditions, chacune étant définie par le jeu d'opération d'éditions qu'elles supportent. En particulier la distance de Levenshtein considère les ajouts, insertions, et remplacement de caractères. Une telle distance est généralement calculée par programmation dynamique. Dans le cas de la distance de Levenshtein, on utilise par exemple l'algorithme de Hunt–Szymanski. C'est cet algorithme qui est au cœur de la commande
Cela signifie que si tu veux comparer deux chaînes de caractères, une stratégie consiste à les écrire, à raison d'un caractère par ligne, puis utiliser
Ici
La commande
Signification :
Un outil comme
Donc ensuite, en fonction de ce que tu veux faire, tu peux avec
(attention à bien utiliser à passer dans cut le caractère tabulation). Tu peux aussi utiliser
Exemple :
Mais bon, à un moment, le shell a ses limites, donc si tu as besoin d'aller plus loin, il faut commencer à envisager des langages plus pratique (par exemple le python).
Bonne chance
Ce que tu cherches correspond à mon avis à une distance d'édition. Dans l'idée, une distance d'édition compare deux chaînes de caractères (disons x et y) et regarde le nombre d'opération d'éditions nécessaire pour transformer x en y. Le jeu d'opération de coût minimal définit la distance entre x et y.
Il existe plein de distances d'éditions, chacune étant définie par le jeu d'opération d'éditions qu'elles supportent. En particulier la distance de Levenshtein considère les ajouts, insertions, et remplacement de caractères. Une telle distance est généralement calculée par programmation dynamique. Dans le cas de la distance de Levenshtein, on utilise par exemple l'algorithme de Hunt–Szymanski. C'est cet algorithme qui est au cœur de la commande
diffutilisée pour comparer deux fichiers à l'échelle de la ligne.
Cela signifie que si tu veux comparer deux chaînes de caractères, une stratégie consiste à les écrire, à raison d'un caractère par ligne, puis utiliser
diffte permet de retrouver leurs points communs et/ou leurs différences.
echo 183638je7 > fichier1 echo gz83j4f58 > fichier2 sed 's/./\0\n/g' -i fichier1 sed 's/./\0\n/g' -i fichier2 diff --side-by-side fichier1 fichier2
Ici
echoet
sedsont utilisés pour créer deux fichiers contenant les deux chaînes à comparer à raison d'un caractère par ligne.
-
fichier1
1 8 3 6 3 8 j e 7
-
fichier2
g z 8 3 j 4 f 5 8
La commande
diffretourne la comparaison entre
fichier1et
fichier2:
(mando@aldur) (~) $ diff --side-by-side fichier1 fichier2
1 | g
> z
8 8
3 3
6 <
3 <
8 <
j j
e | 4
7 | f
> 5
> 8
Signification :
- Chaque ligne contenant un < correspond à une suppression ;
- Chaque ligne contenant un > correspond à un ajout ;
- Chaque ligne contenant un | correspond à un remplacement ;
Un outil comme
kompare, basé sur
diff, permet de mieux comprendre :
Donc ensuite, en fonction de ce que tu veux faire, tu peux avec
grepignorer les lignes qui contiennent <, > ou | et garder la première colonne de caractère avec
cut:
diff --side-by-side fichier1 fichier2 | egrep -v "\||<|>" | cut -d" " -f1
(attention à bien utiliser à passer dans cut le caractère tabulation). Tu peux aussi utiliser
awk:
diff --side-by-side fichier1 fichier2 | awk '! /\||<|>/ {print $1}'
Exemple :
(mando@aldur) (~) $ diff --side-by-side fichier1 fichier2 | awk '! /\||<|>/ {print $1}'
8
3
j
Mais bon, à un moment, le shell a ses limites, donc si tu as besoin d'aller plus loin, il faut commencer à envisager des langages plus pratique (par exemple le python).
Bonne chance