计算文本相似度并将文件写到文本文件

 

 工作中有一个小需求找相近的颜色,就用文本相似度做了,包是直接找的一个包,大概是交集/并集的计算形式,然后将计算结果写到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")

posted @ 2018-12-30 00:30  活不明白  阅读(22)  评论(0)    收藏  举报