工作中有一个小需求找相近的颜色,就用文本相似度做了,包是直接找的一个包,大概是交集/并集的计算形式,然后将计算结果写到txt文件中
import difflib
A = B = ['纯白',
'纯黑色',
'白红色Hi',
'棕色/白色Hi',
'白色/蓝色Hi',
'白色/棕色Hi',
'白色/蓝色',
'黑色\白底Hi',
'米黄色',
'黑色\白底',
'白色',
'深蓝色',
'大红',
'白色黑边',
'布面灰/草绿',
'深蓝低帮',
'胭脂红',
'灰金色',
'白色',
'黑武士']
res_list = []
for i, a in enumerate(A, 1):
#第二个参数表示下标开始的位置,取值为1即表示下标从1开始计算,默认从0开始
for b in B:
if a != b:
score = difflib.SequenceMatcher(a=a, b=b).quick_ratio()
# print(a, b, str(score))
res_list.append((a, b, str(score)))
if i % 10 == 0: # 每10行写入一次
print(i)
with open("res.txt", "a", encoding="utf-8") as f:
#a代表追加文件,会定位到打开文件的末尾
for atuple in res_list:
f.write("\t".join(atuple) + "\n")
res_list = [] # 重置
# 未满10行的最后写入
with open("res.txt", "a", encoding="utf-8") as f:
for atuple in res_list:
f.write("\t".join(atuple) + "\n")