Tôi đã phải vật lộn sáng nay với một vấn đề tại văn phòng.
Tôi cần tìm một cách để nhóm nhóm cùng nhau từ một danh sách. Thật khó để giải thích vì vậy đây là một ví dụ:
Giả sử tôi có một danh sách như sau:
['MONTREAL EDUCATION BOARD', 'Île de Montréal', 'Montréal',
'Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal',
'Toronto', 'Toronto city', 'Tornoto', 'What is this', 'Bananasplit',
'Banana', 'StLouis', 'St-Louis', 'Saint Louis']
Tôi cần tìm cách nhóm các giá trị này lại với nhau tùy thuộc vào sự giống nhau của chúng:
[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
Đó sẽ là trường hợp hoàn hảo. Rõ ràng nó có thể có lỗi [và ý chí]. Tôi cần phải làm điều này với khoảng 10 000 danh sách chứa từ 5 đến 15 000 chuỗi mỗi chuỗi. Tôi cần giảm thiểu lỗi và nhận được các nhóm tốt nhất tôi có thể.
Tôi đang sử dụng một phiên bản sửa đổi một chút của fuzzywuzzy
. Đầu tiên tôi tháo các điểm nhấn và tận dụng tất cả các chữ cái cho một khoảng cách Levenshtein chính xác hơn.
Những gì tôi đã thử là đặt một ngưỡng [giả sử 80], lặp lại trong danh sách, tạo ra một nhóm ra khỏi mỗi chuỗi và lấy ra các yếu tố nhân đôi. Rõ ràng đây không phải là kết quả tôi cần vì tôi cần mọi yếu tố chỉ xuất hiện trong một danh sách [và đó không phải là trường hợp vì A có thể được liên kết với B, B đến C nhưng không phải là A đến C].
groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
Tôi nghĩ rằng có thể có một cách để tìm cấu hình tối ưu nhất từ đầu ra của tôi:
[[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
Có thể tìm thấy tập hợp con tối ưu nhất của danh sách này trong đó mỗi phần tử chỉ xuất hiện trong một nhóm? [Vì vậy, với điểm số cao nhất?] Hãy xem xét rằng danh sách của tôi sẽ lớn hơn, vì vậy tôi không thể kiểm tra mọi cấu hình vì sẽ mất nhiều năm.
Khác, có một cách hiệu quả nào khác để làm những gì tôi đang cố gắng làm?
Cảm ơn bạn!
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Method #1 : Using lambda + itertools.groupby[] + split[]
The combination of above three functions help us achieve the task. The split method is key as it defines the separator by which grouping has to be performed. The groupby function does the grouping of elements.
Python3
Bàn luận
Đôi khi chúng tôi có một ứng dụng trong đó chúng tôi yêu cầu nhóm các chuỗi tiền tố chung thành một ứng dụng để xử lý thêm có thể được thực hiện theo nhóm. Loại nhóm này rất hữu ích trong các trường hợp học máy và phát triển web. Hãy để thảo luận về một số cách nhất định trong đó điều này có thể được thực hiện. Phương pháp phân chia là khóa vì nó định nghĩa phân tách theo nhóm phải được thực hiện. Hàm Groupby thực hiện nhóm các yếu tố. & NBSP;
groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
2from
itertools
import
groupby
test_list
[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
0 [['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
1[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
2[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
3[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
4[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
3[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
6[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
3[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
8[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
3__ groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
3 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
4 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
5 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
6 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
7____28 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
9[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
0 [['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
1[[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
2[[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
3[[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
4
8[[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
9 [[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
fuzzywuzzy
0fuzzywuzzy
1fuzzywuzzy
2fuzzywuzzy
3fuzzywuzzy
4
groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
3 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
4fuzzywuzzy
7 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
6 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
7from
0The grouped list is : [[‘coder_2’, ‘coder_3’], [‘geek_1’, ‘geek_4’], [‘pro_3’]]
Đầu ra: & nbsp;
Method #2 : Using lambda + itertools.groupby[] + partition[]
The similar task can also be performed replacing the split function with the partition function. This is more efficient way to perform this task as it uses the iterators and hence internally quicker.
Python3
Bàn luận
Đôi khi chúng tôi có một ứng dụng trong đó chúng tôi yêu cầu nhóm các chuỗi tiền tố chung thành một ứng dụng để xử lý thêm có thể được thực hiện theo nhóm. Loại nhóm này rất hữu ích trong các trường hợp học máy và phát triển web. Hãy để thảo luận về một số cách nhất định trong đó điều này có thể được thực hiện. Phương pháp phân chia là khóa vì nó định nghĩa phân tách theo nhóm phải được thực hiện. Hàm Groupby thực hiện nhóm các yếu tố. & NBSP;
groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
2from
itertools
import
groupby
test_list
[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
0 [['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
1[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
2[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
3[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
4[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
3[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
6[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
3[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
8[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
3__ groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
3 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
4 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
5 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
6 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
7____28 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
9[['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
0 [['MONTREAL EDUCATION BOARD'],
['Île de Montréal', 'Montréal','Ville de Montréal', 'MONTREAL CITY', 'Monrtéal', 'Mont-réal'],
['Toronto', 'Toronto city', 'Tornoto'],
['anything'],
['Bananasplit', 'Banana'],
['StLouis', 'St-Louis', 'Saint Louis']
]
1[[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
2[[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
3[[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
4
8[[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
9 [[['MONTREAL EDUCATION BOARD', 100],
['Montréal', 100], # Will probably have to use ratio[] and not partial_ratio[] because
['Monrtéal', 88], # this can't happen, EDUCATION BOARD is NOT Montreal
['Mont-réal', 89]],
[['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 93],
['Monrtéal', 88],
['Mont-réal', 94]],
[['MONTREAL EDUCATION BOARD', 100],
['Île de Montréal', 100],
['Montréal', 100],
['Ville de Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 88]],
[['Île de Montréal', 93],
['Montréal', 100],
['Ville de Montréal', 100],
['Monrtéal', 88],
['Mont-réal', 94]],
[['Montréal', 100],
['MONTREAL CITY', 100],
['Monrtéal', 88],
['Mont-réal', 89]],
[['MONTREAL EDUCATION BOARD', 88],
['Île de Montréal', 88],
['Montréal', 88],
['Ville de Montréal', 88],
['MONTREAL CITY', 88],
['Monrtéal', 100]],
[['MONTREAL EDUCATION BOARD', 89],
['Île de Montréal', 94],
['Montréal', 88],
['Ville de Montréal', 94],
['MONTREAL CITY', 89],
['Mont-réal', 100]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 100], ['Toronto city', 100], ['Tornoto', 86]],
[['Toronto', 86], ['Toronto city', 86], ['Tornoto', 100]],
[['What is this', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['Bananasplit', 100], ['Banana', 100]],
[['StLouis', 100], ['St-Louis', 86], ['Saint Louis', 86]],
[['StLouis', 86], ['St-Louis', 100]],
[['StLouis', 86], ['Saint Louis', 100]]]
fuzzywuzzy
0fuzzywuzzy
1fuzzywuzzy
2fuzzywuzzy
3fuzzywuzzy
4
groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
3 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
4fuzzywuzzy
7 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
6 groups = []
for curr in lst:
curr_grp = []
for item in lst:
ratio = normalized.partial_ratio[curr, item]
if ratio > SET_THRESHOLD:
curr_grp.append[[item, ratio]]
groups.append[curr_grp]
7from
0The grouped list is : [[‘coder_2’, ‘coder_3’], [‘geek_1’, ‘geek_4’], [‘pro_3’]]