2016-02-13 1 views

Répondre

3

En regardant le source code, c'est affaire sensible. Vous pouvez déboguer ce que fait le module (au moins l'implémentation de perl) en définissant $Text::Fuzzy::verbose = 1 au début.

+0

Merci, mais je me demande si vous pouvez m'aider. J'ai aussi regardé le code source mais je n'ai pas pu le suivre. Le code Perl est ici: http://cpansearch.perl.org/src/BKB/Text-Fuzzy-0.24/lib/Text/Fuzzy.pm. Comment le code C est-il appelé? Je ne suis pas assez comment ce module fonctionne. – StevieD

+2

Le code C est compilé de la manière Perl, en utilisant [XS] (http://perldoc.perl.org/perlxs.html). Vous pouvez voir la liaison [ici] (https://github.com/benkasminbullock/Text-Fuzzy/blob/master/Fuzzy.xs), le processus de construction réel est un peu impliqué, mais la fonctionnalité C de base est [ici] (https://github.com/benkasminbullock/Text-Fuzzy/blob/master/edit-distance.c.tmpl). La chose importante est: La distance du texte est calculée sur la distance d'édition des caractères, sans regarder la sémantique de ces caractères, c'est-à-dire que la distance entre 'a' et' b' est la même qu'entre 'a' et' A' est la même entre 'a' et' ä'. – kba