2011-02-26 3 views
0

Je cherche un algorithme intelligent en PHP (par rapport à une fonction PHP habituelle intégrée) pour comparer les 2 cordes .. prendre les exemples suivants:PHP comparer les algorithmes de chaîne

macrobiotique - New York (doit être égal) Whole Foods Market Café de Tully - San Franscisco (devrait égaler) Café de Tully

Bien sûr, toutes les chaînes de sources ne seront pas aussi faciles que de retirer le nom du lieu. Est-ce que n'importe quel algo intéressant est là pour quelque chose comme ci-dessus? Merci.

+0

Est-ce que "Whole Foods - New York" devrait aussi être "Whole Goods - New York"? En d'autres termes, quand est-ce que vous (en tant qu'humain) les considère comme égaux et quand non? – bluesmoon

+0

@bluesmoon: Je crois qu'il veut simplement les comparer et voir s'ils sont dans le même magasin, quel que soit le lieu/la ville. –

+0

Copie possible de [Algorithmes pour les similarités de chaînes (meilleur que Levenshtein, et similaire \ _text)? Php, Js] (http://stackoverflow.com/questions/5351659/algorithms-for-string-similarities-better-than-levenshtein-and-similar-text) – joshweir

Répondre

2

Si vous voulez comparer la similarité de deux chaînes, utilisez quelque chose comme Levenshtein Distance. (Parfois utilisé en combinaison avec l'algorithme Soundex.)

Cependant, vous allez devoir modifier à quel point les deux chaînes sont similaires pour être considérées comme égales. Et le résultat est peu susceptible d'être considéré comme correct pour chaque cas.