Avoir les mots d'un language :
@language=('include','include.backup','include.nas.backup','exclude','exclude.fs',....);
Je cherche à corriger automatiquement un fichier de configuration
utilisateur.
J'ai construit deux haschages:
%language, %soundex ou chaque clé contient, exemple:
$language{'include'}=soundex('include');
et
$soundex{soundex('include')}='include';
Avec un test du type
unless (exists $language{$keyword}) {
my $correct=$soundex{$keyword};
if ($correct) {
# Corrigé !!
} else {
#KO
}
}
Je teste la valeur dans le fichier de conf et j'aurais voulu corriger
automatiquement des erreurs du type 'iclude' ou 'icnlude' bref des
erreurs mineures.
Mais ma tactique ne marche pas.
Une autre idée ou je me sers mal de Text::Soundex.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Scetbon Cyril
Laurent Bendavid wrote:
Je cherche à faire ceci:
Avoir les mots d'un language : @language=('include','include.backup','include.nas.backup','exclude','exclude.fs',....);
Je cherche à corriger automatiquement un fichier de configuration utilisateur.
J'ai construit deux haschages:
%language, %soundex ou chaque clé contient, exemple:
$language{'include'}=soundex('include');
et
$soundex{soundex('include')}='include';
Avec un test du type unless (exists $language{$keyword}) { my $correct=$soundex{$keyword}; Je ne comprends pas trop ton test.
Si j'ai bien compris, $soundex est un hash ayant pour clés les soundex (ex:I254) et pour valeur les chaînes connues (ex:include). si t'essaies d'utiliser comme clé la chaine ça risque pas de fonctionner. De plus, si elle n'existe pas dans $language elle risque pas d'exister dans $soundex
if ($correct) { # Corrigé !! } else { #KO } } Je teste la valeur dans le fichier de conf et j'aurais voulu corriger automatiquement des erreurs du type 'iclude' ou 'icnlude' bref des erreurs mineures. ce qu'il faudrait c'est écrire une sorte de quotation des différences et
en fonction de cela en déduire une chaine.
ex:
include -> I524 iclude -> I243 icnlude -> I254
mais bon ça a l'air un peu compliqué :-(
Une autre limite est celle énoncée dans le man:
As it is mapping a large space (arbitrary length strings) onto a small space (single letter plus 3 digits) -->> no inference can be made about the similarity of two strings which end up with the same soundex code.<<-- For example, both "Hilbert" and "Heilbronn" end up with a soundex code of "H416".
A méditer.
Mais ma tactique ne marche pas.
Une autre idée ou je me sers mal de Text::Soundex.
Merci d'avance.
Laurent Bendavid wrote:
Je cherche à faire ceci:
Avoir les mots d'un language :
@language=('include','include.backup','include.nas.backup','exclude','exclude.fs',....);
Je cherche à corriger automatiquement un fichier de configuration
utilisateur.
J'ai construit deux haschages:
%language, %soundex ou chaque clé contient, exemple:
$language{'include'}=soundex('include');
et
$soundex{soundex('include')}='include';
Avec un test du type
unless (exists $language{$keyword}) {
my $correct=$soundex{$keyword};
Je ne comprends pas trop ton test.
Si j'ai bien compris, $soundex est un hash ayant pour clés les soundex
(ex:I254) et pour valeur les chaînes connues (ex:include).
si t'essaies d'utiliser comme clé la chaine ça risque pas de
fonctionner. De plus, si elle n'existe pas dans $language elle risque
pas d'exister dans $soundex
if ($correct) {
# Corrigé !!
} else {
#KO
}
}
Je teste la valeur dans le fichier de conf et j'aurais voulu corriger
automatiquement des erreurs du type 'iclude' ou 'icnlude' bref des
erreurs mineures.
ce qu'il faudrait c'est écrire une sorte de quotation des différences et
en fonction de cela en déduire une chaine.
ex:
include -> I524
iclude -> I243
icnlude -> I254
mais bon ça a l'air un peu compliqué :-(
Une autre limite est celle énoncée dans le man:
As it is mapping a large space (arbitrary length strings) onto a small
space (single letter plus 3 digits) -->> no inference can be made
about the similarity of two strings which end up with the same soundex
code.<<-- For example, both "Hilbert" and "Heilbronn" end up with a
soundex code of "H416".
A méditer.
Mais ma tactique ne marche pas.
Une autre idée ou je me sers mal de Text::Soundex.
Avoir les mots d'un language : @language=('include','include.backup','include.nas.backup','exclude','exclude.fs',....);
Je cherche à corriger automatiquement un fichier de configuration utilisateur.
J'ai construit deux haschages:
%language, %soundex ou chaque clé contient, exemple:
$language{'include'}=soundex('include');
et
$soundex{soundex('include')}='include';
Avec un test du type unless (exists $language{$keyword}) { my $correct=$soundex{$keyword}; Je ne comprends pas trop ton test.
Si j'ai bien compris, $soundex est un hash ayant pour clés les soundex (ex:I254) et pour valeur les chaînes connues (ex:include). si t'essaies d'utiliser comme clé la chaine ça risque pas de fonctionner. De plus, si elle n'existe pas dans $language elle risque pas d'exister dans $soundex
if ($correct) { # Corrigé !! } else { #KO } } Je teste la valeur dans le fichier de conf et j'aurais voulu corriger automatiquement des erreurs du type 'iclude' ou 'icnlude' bref des erreurs mineures. ce qu'il faudrait c'est écrire une sorte de quotation des différences et
en fonction de cela en déduire une chaine.
ex:
include -> I524 iclude -> I243 icnlude -> I254
mais bon ça a l'air un peu compliqué :-(
Une autre limite est celle énoncée dans le man:
As it is mapping a large space (arbitrary length strings) onto a small space (single letter plus 3 digits) -->> no inference can be made about the similarity of two strings which end up with the same soundex code.<<-- For example, both "Hilbert" and "Heilbronn" end up with a soundex code of "H416".
A méditer.
Mais ma tactique ne marche pas.
Une autre idée ou je me sers mal de Text::Soundex.
Merci d'avance.
Laurent Bendavid
J'ai trouvé mieux le module String::Approx avec la fonction 'amatch' qui répond à mon problème.
Scetbon Cyril wrote:
Laurent Bendavid wrote:
Je cherche à faire ceci:
Avoir les mots d'un language : @language=('include','include.backup','include.nas.backup','exclude','exclude.fs',....);
Je cherche à corriger automatiquement un fichier de configuration utilisateur.
J'ai construit deux haschages:
%language, %soundex ou chaque clé contient, exemple:
$language{'include'}=soundex('include');
et
$soundex{soundex('include')}='include';
Avec un test du type unless (exists $language{$keyword}) { my $correct=$soundex{$keyword};
Je ne comprends pas trop ton test. Si j'ai bien compris, $soundex est un hash ayant pour clés les soundex (ex:I254) et pour valeur les chaînes connues (ex:include). si t'essaies d'utiliser comme clé la chaine ça risque pas de fonctionner. De plus, si elle n'existe pas dans $language elle risque pas d'exister dans $soundex
if ($correct) { # Corrigé !! } else { #KO } } Je teste la valeur dans le fichier de conf et j'aurais voulu corriger automatiquement des erreurs du type 'iclude' ou 'icnlude' bref des erreurs mineures.
ce qu'il faudrait c'est écrire une sorte de quotation des différences et en fonction de cela en déduire une chaine.
ex:
include -> I524 iclude -> I243 icnlude -> I254
mais bon ça a l'air un peu compliqué :-(
Une autre limite est celle énoncée dans le man:
As it is mapping a large space (arbitrary length strings) onto a small space (single letter plus 3 digits) -->> no inference can be made about the similarity of two strings which end up with the same soundex code.<<-- For example, both "Hilbert" and "Heilbronn" end up with a soundex code of "H416".
A méditer.
Mais ma tactique ne marche pas.
Une autre idée ou je me sers mal de Text::Soundex.
Merci d'avance.
J'ai trouvé mieux le module String::Approx avec la fonction 'amatch' qui
répond à mon problème.
Scetbon Cyril wrote:
Laurent Bendavid wrote:
Je cherche à faire ceci:
Avoir les mots d'un language :
@language=('include','include.backup','include.nas.backup','exclude','exclude.fs',....);
Je cherche à corriger automatiquement un fichier de configuration
utilisateur.
J'ai construit deux haschages:
%language, %soundex ou chaque clé contient, exemple:
$language{'include'}=soundex('include');
et
$soundex{soundex('include')}='include';
Avec un test du type
unless (exists $language{$keyword}) {
my $correct=$soundex{$keyword};
Je ne comprends pas trop ton test.
Si j'ai bien compris, $soundex est un hash ayant pour clés les soundex
(ex:I254) et pour valeur les chaînes connues (ex:include).
si t'essaies d'utiliser comme clé la chaine ça risque pas de
fonctionner. De plus, si elle n'existe pas dans $language elle risque
pas d'exister dans $soundex
if ($correct) {
# Corrigé !!
} else {
#KO
}
}
Je teste la valeur dans le fichier de conf et j'aurais voulu corriger
automatiquement des erreurs du type 'iclude' ou 'icnlude' bref des
erreurs mineures.
ce qu'il faudrait c'est écrire une sorte de quotation des différences et
en fonction de cela en déduire une chaine.
ex:
include -> I524
iclude -> I243
icnlude -> I254
mais bon ça a l'air un peu compliqué :-(
Une autre limite est celle énoncée dans le man:
As it is mapping a large space (arbitrary length strings) onto a small
space (single letter plus 3 digits) -->> no inference can be made
about the similarity of two strings which end up with the same soundex
code.<<-- For example, both "Hilbert" and "Heilbronn" end up with a
soundex code of "H416".
A méditer.
Mais ma tactique ne marche pas.
Une autre idée ou je me sers mal de Text::Soundex.
J'ai trouvé mieux le module String::Approx avec la fonction 'amatch' qui répond à mon problème.
Scetbon Cyril wrote:
Laurent Bendavid wrote:
Je cherche à faire ceci:
Avoir les mots d'un language : @language=('include','include.backup','include.nas.backup','exclude','exclude.fs',....);
Je cherche à corriger automatiquement un fichier de configuration utilisateur.
J'ai construit deux haschages:
%language, %soundex ou chaque clé contient, exemple:
$language{'include'}=soundex('include');
et
$soundex{soundex('include')}='include';
Avec un test du type unless (exists $language{$keyword}) { my $correct=$soundex{$keyword};
Je ne comprends pas trop ton test. Si j'ai bien compris, $soundex est un hash ayant pour clés les soundex (ex:I254) et pour valeur les chaînes connues (ex:include). si t'essaies d'utiliser comme clé la chaine ça risque pas de fonctionner. De plus, si elle n'existe pas dans $language elle risque pas d'exister dans $soundex
if ($correct) { # Corrigé !! } else { #KO } } Je teste la valeur dans le fichier de conf et j'aurais voulu corriger automatiquement des erreurs du type 'iclude' ou 'icnlude' bref des erreurs mineures.
ce qu'il faudrait c'est écrire une sorte de quotation des différences et en fonction de cela en déduire une chaine.
ex:
include -> I524 iclude -> I243 icnlude -> I254
mais bon ça a l'air un peu compliqué :-(
Une autre limite est celle énoncée dans le man:
As it is mapping a large space (arbitrary length strings) onto a small space (single letter plus 3 digits) -->> no inference can be made about the similarity of two strings which end up with the same soundex code.<<-- For example, both "Hilbert" and "Heilbronn" end up with a soundex code of "H416".
A méditer.
Mais ma tactique ne marche pas.
Une autre idée ou je me sers mal de Text::Soundex.