pythonprobabilitysimilaritymetric

Find the similarity metric between two strings


How do I get the probability of a string being similar to another string in Python?

I want to get a decimal value like 0.9 (meaning 90%) etc. Preferably with standard Python and library.

e.g.

similar("Apple","Appel") #would have a high prob.

similar("Apple","Mango") #would have a lower prob.

Solution

  • There is a built in.

    from difflib import SequenceMatcher
    
    def similar(a, b):
        return SequenceMatcher(None, a, b).ratio()
    

    Using it:

    >>> similar("Apple","Appel")
    0.8
    >>> similar("Apple","Mango")
    0.0