Hướng dẫn python jellyfish vs fuzzywuzzy - sứa trăn đấu với Fuzzywuzzy

So sánh sự phổ biến và hoạt động của sứa và fuzzywuzzy


sứa fuzzywuzzy
Kho
1,742 Sao 8,772
43 Người theo dõi 271
148 Phuộc 888
- Chu kỳ phát hành 87 ngày
- Chu kỳ phát hành 87 ngày
Phiên bản mới nhất Gần 3 năm trước 15 ngày trước
Cam kết cuối cùng
- Chu kỳ phát hành L4
87 ngày Phiên bản mới nhất 87 ngày
Phiên bản mới nhất Gần 3 năm trước 15 ngày trước
Cam kết cuối cùng Khoảng 1 năm trước Hơn

Chất lượng mã and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.

Hướng dẫn python jellyfish vs fuzzywuzzy - sứa trăn đấu với Fuzzywuzzy

Python


Ngôn ngữjellyfish and fuzzywuzzy

Giấy phép BSD 2 mệnh đề "đơn giản hóa"

Giấy phép
If you don't see the graphs
either there isn't enough search volume
or you need to refresh the page

Chỉ có giấy phép công cộng GNU V2.0 chỉ

  • fuzzywuzzy

    Xử lý văn bản, phân tích dữ liệu, ngôn ngữ, khác biệt

    Tags

  • fuzzywuzzy

    Xử lý văn bản, phân tích dữ liệu, ngôn ngữ, khác biệt

    Tags

  • fuzzywuzzy

    Xử lý văn bản, phân tích dữ liệu, ngôn ngữ, khác biệt

    Tags

  • fuzzywuzzy

    Xử lý văn bản, phân tích dữ liệu, ngôn ngữ, khác biệt

    Tags

  • sứa

    Xử lý văn bản, phân tích dữ liệu, ngôn ngữ, khác biệt

    Tags

  • sứa

    Xử lý văn bản, phân tích dữ liệu, ngôn ngữ, khác biệt

    Tags

Xử lý văn bản, chung
» Subscribe to our newsletter «

Tôi đang cố gắng tạo ra một từ điển nào đó để nối thêm kết quả của mình và có được kết quả phù hợp nhất bằng cách sử dụng hàm khoảng cách Jaro.

Đây là một phần trong nỗ lực của tôi để phù hợp với danh sách 2 và có được tên phù hợp nhất trong cả hai.

Example:

import jellyfish
jellyfish.jaro_distance(u'jellyfish', u'sellyfish')

output: 
0.9259259259259259

Những gì tôi đang cố gắng làm là:

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0

Trong trường hợp này, tôi muốn nó trả lại 2 với số điểm cao nhất:

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0

Đối với người dùng FuzzyWuzzy, tôi đang cố gắng mô phỏng chức năng

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

similar("Apple","Mango") #would have a lower prob.
6 nơi bạn có thể chuyển danh sách vào
similar("Apple","Appel") #would have a high prob.

similar("Apple","Mango") #would have a lower prob.
7 và bạn sẽ có được trận đấu tốt nhất.

Lý do tại sao tôi không sử dụng FuzzyWuzzy chỉ là việc xử lý quá chậm và tôi không chắc chắn những gì đang xảy ra phía sau, một trận đấu cho 5000 chuỗi so với danh sách 5000 chuỗi khác mất tới 40 phút.

Làm thế nào để tôi có được xác suất của một chuỗi tương tự như một chuỗi khác trong Python?

Nội phân Chính showShow

  • Giải pháp số 1: Python tích hợp
  • Giải pháp #2: Thư viện sứa
  • Python3.6+=
  • Không nhập khẩu LIBUME
  • Hoạt động tốt trong hầu hết các kịch bản
  • Giải trình
  • Bạn có thể sử dụng == để so sánh các chuỗi trong Python không?
  • Làm thế nào để bạn xác định xem hai chuỗi có giống nhau không?
  • Bạn có thể sử dụng == để so sánh hai chuỗi không?

Bạn không nên sử dụng == (toán tử bình đẳng) để so sánh các chuỗi này vì chúng so sánh tham chiếu của chuỗi, tức là chúng có cùng một đối tượng hay không. Mặt khác, phương thức bằng () so sánh liệu giá trị của các chuỗi có bằng nhau hay không là chính đối tượng.

e.g.

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

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

Làm thế nào để tôi có được xác suất của một chuỗi tương tự như một chuỗi khác trong Python?

Nội phân Chính show18 gold badges110 silver badges145 bronze badges

Giải pháp số 1: Python tích hợpJun 30, 2013 at 7:35

5

Giải pháp #2: Thư viện sứa

from difflib import SequenceMatcher

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

Tôi muốn nhận được một giá trị thập phân như 0,9 (có nghĩa là 90%), v.v. tốt nhất là với Python và thư viện tiêu chuẩn.

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

SMCIJun 30, 2013 at 8:18

30.5K18 Huy hiệu vàng110 Huy hiệu bạc145 Huy hiệu đồngInbar Rose

Đã hỏi ngày 30 tháng 6 năm 2013 lúc 7:3524 gold badges82 silver badges128 bronze badges

5

Giải pháp số 1: Python tích hợp

Giải pháp #2: Thư viện sứa

Tôi muốn nhận được một giá trị thập phân như 0,9 (có nghĩa là 90%), v.v. tốt nhất là với Python và thư viện tiêu chuẩn.: native python library, no need extra package.
cons: too limited, there are so many other good algorithms for string similarity out there.

SMCI

>>> from difflib import SequenceMatcher
>>> s = SequenceMatcher(None, "abcd", "bcde")
>>> s.ratio()
0.75

Giải pháp #2: Thư viện sứa

Tôi muốn nhận được một giá trị thập phân như 0,9 (có nghĩa là 90%), v.v. tốt nhất là với Python và thư viện tiêu chuẩn.
- Levenshtein Distance
- Damerau-Levenshtein Distance
- Jaro Distance
- Jaro-Winkler Distance
- Match Rating Approach Comparison
- Hamming Distance

SMCI: easy to use, gamut of supported algorithms, tested.
cons: not native library.

30.5K18 Huy hiệu vàng110 Huy hiệu bạc145 Huy hiệu đồng

>>> import jellyfish
>>> jellyfish.levenshtein_distance(u'jellyfish', u'smellyfish')
2
>>> jellyfish.jaro_distance(u'jellyfish', u'smellyfish')
0.89629629629629637
>>> jellyfish.damerau_levenshtein_distance(u'jellyfish', u'jellyfihs')
1

Đã hỏi ngày 30 tháng 6 năm 2013 lúc 7:35Sep 8, 2017 at 22:49

Có một tích hợp.Iman Mirzadeh

Sử dụng nó:1 gold badge39 silver badges44 bronze badges

1

Đã trả lời ngày 30 tháng 6 năm 2013 lúc 8:18

>>> fuzz.ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
    91
>>> fuzz.token_sort_ratio("fuzzy wuzzy was a bear", "wuzzy fuzzy was a bear")
    100

Inbar Roseinbar RoseJan 18, 2017 at 22:26

39,8K24 Huy hiệu vàng82 Huy hiệu bạc128 Huy hiệu đồngBLT

Sử dụng trình tự từ Difflib1 gold badge24 silver badges33 bronze badges

3

Ưu điểm: Thư viện Python bản địa, không cần thêm gói.Cons: Quá hạn chế, có rất nhiều thuật toán tốt khác cho sự tương tự chuỗi ngoài kia.

thí dụ :

Đó là một thư viện rất tốt với phạm vi bảo hiểm tốt và một vài vấn đề. Nó hỗ trợ: - Khoảng cách Levenshtein - Damerau -Levenshtein Khoảng cách - Khoảng cách Jaro - Khoảng cách Jaro -Winkler - Phương pháp đánh giá đối sánh - Khoảng cách HammingJun 30, 2013 at 7:41

3

Ưu điểm: Dễ sử dụng, gam của các thuật toán được hỗ trợ, được kiểm tra.cons: không phải thư viện gốc.

thí dụ:

Đã trả lời ngày 8 tháng 9 năm 2017 lúc 22:49Apr 10, 2017 at 22:02

Iman Mirzadehiman Mirzadeh

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
1

Huy hiệu vàng 11,9K1

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
2

Sử dụng Biopython hoặc một gói tin sinh học khác linh hoạt hơn bất kỳ phần nào của Thư viện tiêu chuẩn Python vì nhiều sơ đồ và thuật toán tính điểm khác nhau có sẵn. Ngoài ra, bạn thực sự có thể có được các chuỗi phù hợp để trực quan hóa những gì đang xảy ra:

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
3

Đã trả lời ngày 4 tháng 12 năm 2019 lúc 9:36Dec 4, 2019 at 9:36

Chris_RandsChris_RandsChris_Rands

36.4K12 Huy hiệu vàng79 Huy hiệu bạc110 Huy hiệu đồng12 gold badges79 silver badges110 bronze badges

from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
0 tích hợp rất chậm trên đầu vào lớn, đây là cách nó có thể được thực hiện với khác nhau-phù hợp-patch:

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
4

Đã trả lời ngày 30 tháng 4 năm 2018 lúc 14:24Apr 30, 2018 at 14:24

Damiodamiodamio

5,8513 huy hiệu vàng35 huy hiệu bạc55 huy hiệu đồng3 gold badges35 silver badges55 bronze badges

Bạn có thể tìm thấy hầu hết các phương thức tương tự văn bản và cách chúng được tính theo liên kết này: https://github.com/luozhouyang/python-string-similarity#python-string-similarity ở đây một số ví dụ;

  • Chuẩn hóa, số liệu, sự tương đồng và khoảng cách

  • (Bình thường hóa) sự tương đồng và khoảng cách

  • Khoảng cách số liệu

  • Bệnh zona (N-gram) Dựa trên sự tương đồng và khoảng cách
  • Levenshtein
  • Levenshtein bình thường hóa
  • Levenshtein trọng số
  • Damerau-Levenshtein
  • Căn chỉnh chuỗi tối ưu
  • Jaro-Winkler
  • Hậu quả chung dài nhất
  • Số liệu dài nhất theo số liệu
  • N-gram
  • Thuật toán dựa trên shingle (N-gram)
  • Q-Gram
  • Sự tương đồng cosine
  • Chỉ số Jaccard
  • Hệ số sorensen-Dice
  • Hệ số chồng chéo (tức là, Szymkiewicz-Simpson)

Đã trả lời ngày 9 tháng 4 năm 2020 lúc 14:38Apr 9, 2020 at 14:38

MikemikeMike

1551 Huy hiệu bạc8 Huy hiệu đồng1 silver badge8 bronze badges

Bleuscore

Bleu, hoặc đánh giá song ngữ, là một điểm số để so sánh bản dịch ứng cử viên của văn bản với một hoặc nhiều bản dịch tham khảo.

Một trận đấu hoàn hảo dẫn đến điểm 1,0, trong khi đó, sự không phù hợp hoàn hảo dẫn đến điểm 0,0.

Mặc dù được phát triển để dịch, nó có thể được sử dụng để đánh giá văn bản được tạo ra cho một bộ các nhiệm vụ xử lý ngôn ngữ tự nhiên.

Code:

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
5

Ví dụ: Bằng cách cập nhật C1 và C2.

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
6

Bạn cũng có thể so sánh sự tương tự câu:

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
7

Đã trả lời ngày 15 tháng 2 năm 2021 lúc 11:53Feb 15, 2021 at 11:53

Reema Q Khanreema Q KhanReema Q Khan

8281 Huy hiệu vàng7 Huy hiệu bạc18 Huy hiệu đồng1 gold badge7 silver badges18 bronze badges

Có nhiều số liệu để xác định sự tương đồng và khoảng cách giữa các chuỗi như đã đề cập ở trên. Tôi sẽ cho 5 xu của mình bằng cách hiển thị một ví dụ về

from difflib import SequenceMatcher

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

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
2 và một ví dụ với
from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
3.

Các thư viện

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
8

Sự tương đồng của Jaccard

listA = ['grellofish','mellofush','jellyfihs','sellyfish','salmonfish']
listB = ['jellyfish','salmonfish']

#convert to unicode
listA = [unicode(i) for i in listA]
listB = [unicode(i) for i in listB]

for nickB in listB:
    for nickA in listA:
        results = jellyfish.jaro_distance(nickA, nickB)
        print nickB,nickA,results

output:
jellyfish grellofish 0.825925925926
jellyfish mellofush 0.777777777778
jellyfish jellyfihs 0.962962962963
jellyfish sellyfish 0.925925925926
jellyfish salmonfish 0.685185185185
salmonfish grellofish 0.733333333333
salmonfish mellofush 0.7
salmonfish jellyfihs 0.618518518519
salmonfish sellyfish 0.755555555556
salmonfish salmonfish 1.0
9

Và chúng tôi nhận được:

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
0

Và cho

from difflib import SequenceMatcher

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

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
5

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
1

Và chúng tôi nhận được:

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
2

Và cho

from difflib import SequenceMatcher

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

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
5

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
3

Và chúng tôi nhận được:

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
4

Và cho

from difflib import SequenceMatcher

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

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
5

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
5

Và chúng tôi nhận được:

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
6

Và cho

from difflib import SequenceMatcher

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

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
5

Chỉnh sửa khoảng cách

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
7

Và chúng tôi nhận được:

Và cho
from difflib import SequenceMatcher

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

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
5

Chỉnh sửa khoảng cáchSep 10, 2020 at 22:48

Và cuối cùng,George Pipis

Sự tương đồng về cosine trên q-gram (q = 2)14 silver badges7 bronze badges

Textdistance:

Một giải pháp khác là làm việc với thư viện

from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
6. Tôi sẽ cung cấp một ví dụ về
from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
7

  • jellyfish jellyfihs 0.962962962963
    salmonfish salmonfish 1.0
    
    8
  • Đã trả lời ngày 10 tháng 9 năm 2020 lúc 22:48
  • George Pipisgeorge Pipis
  • 1.16414 Huy hiệu bạc7 Huy hiệu đồng
  • TextDistance - Thư viện Python để so sánh khoảng cách giữa hai hoặc nhiều chuỗi bằng nhiều thuật toán. Nó có văn bản
  • Hơn 30 thuật toán

Example1:

jellyfish jellyfihs 0.962962962963
salmonfish salmonfish 1.0
9

Output:

1

Example2:

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

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

Output:

0.75

Thực hiện Python thuần túy

Sử dụng đơn giảnOct 19, 2020 at 19:38

Nhiều hơn hai chuỗi so sánhDRV

Một số thuật toán có nhiều hơn một triển khai trong một lớp.1 gold badge6 silver badges18 bronze badges

Sử dụng không có tùy chọn cho tốc độ tối đa.

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

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

Cảm ơn và chúc mừng !!!

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

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

Đã trả lời ngày 19 tháng 10 năm 2020 lúc 19:38

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

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

DrvdrvApr 21 at 8:05

5261 Huy hiệu vàng6 Huy hiệu bạc18 Huy hiệu đồngAlex Punnen

Thêm thư viện Spacy NLP cũng vào hỗn hợp;2 gold badges52 silver badges64 bronze badges

Chạy với Robert Kern's Line_Profiler

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

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

Tuy nhiên thời gian đang tiết lộDec 1, 2020 at 21:22

  • Python3.6+=

  • Đã trả lời ngày 21 tháng 4 lúc 8:05

  • Alex Punnenalex Punnen

4.4382 Huy hiệu vàng52 Huy hiệu bạc64 Huy hiệu Đồng

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

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

Đây là những gì tôi nghĩ đến:

  • Đã trả lời ngày 1 tháng 12 năm 2020 lúc 21:22
  • Không nhập khẩu LIBUME
  • Hoạt động tốt trong hầu hết các kịch bản

Trong Stack Overflow, khi bạn cố gắng thêm một thẻ hoặc đăng một câu hỏi, nó đưa ra tất cả các công cụ có liên quan. Điều này rất thuận tiện và chính xác là thuật toán mà tôi đang tìm kiếm. Do đó, tôi đã mã hóa một bộ lọc tương tự bộ truy vấn.Oct 29, 2021 at 14:06

Giải trìnhWeilory

from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()
8 mất hai chuỗi và trả về một số nguyên dương.11 silver badges26 bronze badges

Bạn có thể chỉnh sửa biến cho phép from difflib import SequenceMatcher def similar(a, b): return SequenceMatcher(None, a, b).ratio() 9 trong from difflib import SequenceMatcher def similar(a, b): return SequenceMatcher(None, a, b).ratio() 8, nó cho biết phạm vi chúng ta cần tìm kiếm lớn đến mức nào. Nó hoạt động như thế này: hai chuỗi được lặp lại, nếu cùng một ký tự được tìm thấy ở cùng một chỉ số, thì bộ tích lũy sẽ được thêm vào một giá trị lớn nhất. Sau đó, chúng tôi tìm kiếm trong phạm vi chỉ mục của >>> similar("Apple","Appel") 0.8 >>> similar("Apple","Mango") 0.0 1, nếu được khớp, thêm vào bộ tích lũy dựa trên cách viết thư. (Càng, càng nhỏ)

>>> similar("Apple","Appel")
0.8
>>> similar("Apple","Mango")
0.0
2 cho biết kết quả bạn muốn có bao nhiêu mục, tương tự như chuỗi đầu vào. and comparison (<, >, !=

Đã trả lời ngày 29 tháng 10 năm 2021 lúc 14:06

Weiloryweiloryusing the equals() method. This method compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.

Bạn có thể sử dụng == để so sánh hai chuỗi không?

Bạn không nên sử dụng == (toán tử bình đẳng) để so sánh các chuỗi này vì chúng so sánh tham chiếu của chuỗi, tức là chúng có cùng một đối tượng hay không.Mặt khác, phương thức bằng () so sánh liệu giá trị của các chuỗi có bằng nhau hay không là chính đối tượng. because they compare the reference of the string, i.e. whether they are the same object or not. On the other hand, equals() method compares whether the value of the strings is equal, and not the object itself.