Skip to content

Could partial_ratio support Levenshtein.normalized_similarity? #401

@rocke2020

Description

@rocke2020

rapidfuzz 3.9.6 and python 3.10.
I have carefully read the rapidfuzz docs and made tests. I find: partial_ratio use Indel.normalized_similarity.
Could partial_ratio also support Levenshtein.normalized_similarity? Maybe default to use Indel.normalized_similarity, but we can choose to use Levenshtein.normalized_similarity.
In my use case, I indeed need partial_ratio to use Levenshtein.normalized_similarity.
thanks!!

from icecream import ic
from rapidfuzz import fuzz
from rapidfuzz.distance import Levenshtein, Indel

a = '34cdef16z'
c = '09cdef78'
ic(fuzz.partial_ratio(a, c))
ic(fuzz.partial_ratio_alignment(a, c))
ic(fuzz.ratio(a[0:6], c))
ic(Indel.normalized_similarity(a[0:6], c) * 100)
ic(Levenshtein.normalized_similarity(a[0:6], c) * 100)

ic| test.py:25 in <module>- fuzz.partial_ratio(a, c): 57.14285714285714
ic| test.py:26 in <module>- fuzz.partial_ratio_alignment(a, c): ScoreAlignment(score=57.14285714285714, src_start=0, src_end=6, dest_start=0, dest_end=8)
ic| test.py:27 in <module>- fuzz.ratio(a[0:6], c): 57.14285714285714
ic| test.py:28 in <module>- Indel.normalized_similarity(a[0:6], c) * 100: 57.14285714285714
ic| test.py:29 in <module>- Levenshtein.normalized_similarity(a[0:6], c) * 100: 50.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions