{"library":"jellyfish","title":"jellyfish - Approximate and Phonetic String Matching","description":"Jellyfish is a Python library for approximate and phonetic matching of strings. It offers a comprehensive collection of algorithms including Levenshtein, Damerau-Levenshtein, Jaro, and Jaro-Winkler distances for string comparison, alongside phonetic encodings such as American Soundex, Metaphone, NYSIIS, and Match Rating Codex. This makes it an essential tool for tasks like data cleaning, typo correction, and record linkage. The library is actively maintained, with the current version being 1.2.1, and releases typically focus on bug fixes and performance improvements.","status":"active","version":"1.2.1","language":"en","source_language":"en","source_url":"https://github.com/jamesturk/jellyfish","tags":["string matching","fuzzy matching","phonetic matching","levenshtein","jaro-winkler","soundex","metaphone"],"install":[{"cmd":"pip install jellyfish","lang":"bash","label":"Install stable version"}],"dependencies":[],"imports":[{"symbol":"jellyfish","correct":"import jellyfish"},{"symbol":"levenshtein_distance","correct":"jellyfish.levenshtein_distance(s1, s2)"},{"note":"The `jaro_distance` function was deprecated in 0.8.x and fully removed in 1.0.1. Use `jaro_similarity` instead.","wrong":"jellyfish.jaro_distance(s1, s2)","symbol":"jaro_similarity","correct":"jellyfish.jaro_similarity(s1, s2)"},{"note":"The `jaro_winkler` function was deprecated in 0.8.x and fully removed in 1.0.1. Use `jaro_winkler_similarity` instead.","wrong":"jellyfish.jaro_winkler(s1, s2)","symbol":"jaro_winkler_similarity","correct":"jellyfish.jaro_winkler_similarity(s1, s2)"}],"quickstart":{"code":"import jellyfish\n\n# String comparison\ns1 = \"jellyfish\"\ns2 = \"smellyfish\"\n\nlev_dist = jellyfish.levenshtein_distance(s1, s2)\njaro_sim = jellyfish.jaro_similarity(s1, s2)\ndam_lev_dist = jellyfish.damerau_levenshtein_distance(\"jellyfihs\", \"jellyfish\")\n\nprint(f\"Levenshtein Distance: {lev_dist}\")\nprint(f\"Jaro Similarity: {jaro_sim}\")\nprint(f\"Damerau-Levenshtein Distance: {dam_lev_dist}\")\n\n# Phonetic encoding\nmetaphone_code = jellyfish.metaphone(\"Jellyfish\")\nsoundex_code = jellyfish.soundex(\"Jellyfish\")\nnysiis_code = jellyfish.nysiis(\"Jellyfish\")\n\nprint(f\"Metaphone: {metaphone_code}\")\nprint(f\"Soundex: {soundex_code}\")\nprint(f\"NYSIIS: {nysiis_code}\")","lang":"python","description":"This quickstart demonstrates common string comparison algorithms and phonetic encoding functions available in the `jellyfish` library."},"warnings":[{"fix":"Migrate to `jellyfish.jaro_similarity` and `jellyfish.jaro_winkler_similarity` respectively.","message":"The functions `jellyfish.jaro_distance` and `jellyfish.jaro_winkler` were deprecated in versions 0.8.x and completely removed in version 1.0.1.","severity":"breaking","affected_versions":">=1.0.1"},{"fix":"Use alternative stemming libraries (e.g., NLTK) as `porter_stem` was removed due to better implementations existing elsewhere.","message":"The `jellyfish.porter_stem` function was removed in version 0.10.0 (March 2023).","severity":"breaking","affected_versions":">=0.10.0"},{"fix":"Ensure input strings to `match_rating_codex` contain only alphabetic characters, or handle the `ValueError` appropriately.","message":"Since version 1.0.3, the `jellyfish.match_rating_codex` function now raises a `ValueError` if passed non-alphabetic characters.","severity":"breaking","affected_versions":">=1.0.3"},{"fix":"For Python 2 compatibility, use `jellyfish` version 0.6.x. For modern usage, ensure your environment runs Python 3.9 or higher.","message":"Versions of `jellyfish` prior to 0.7 supported Python 2.x. All versions from 0.7 onwards (including current 1.2.1) require Python 3. The library explicitly requires Python >=3.9.","severity":"gotcha","affected_versions":"<0.7 (for Python 2.x support)"}],"env_vars":null,"last_verified":"2026-04-05T00:00:00.000Z","next_check":"2026-07-04T00:00:00.000Z"}