# 完成输入字符串与 chat_list中的每一个进行比较,并且返回,相似度最大值索引
def get_chat_str_index(str1, chat_list):
# rate_list = [] # 这个保存比较的结果
# for item in chat_list:
# rate_list.append(str_cmp_base_cnt(str1,item)[0]) # 这儿只保留第一个值,相似度
rate_list = [str_cmp_base_cnt(str1,item)[0] for item in chat_list]
# 找这个相似度列表的最大值对应的索引
index_out = rate_list.index(max(rate_list))
# index_out = [str_cmp_base_cnt(str1,item)[0] for item in chat_list].index(max(rate_list))
return index_out,max(rate_list)
# 函数的基本格式
def str_cmp_base_cnt(str1, str2):
# 判断重复的字数 衡量 相似度
cnt_word = 0
for i in str1:
if i in str2:
cnt_word += 1
# 比较两个字符串的长度,看长度的相似度 - : 结果越靠近0, 越相近, / 越靠近1 越相近
cmp_rate = cnt_word * min(str1.__len__() / str2.__len__(), str2.__len__() / str1.__len__())
return cmp_rate,cnt_word
SDUWH2019-2020寒假python实训--my_chat_function
最新推荐文章于 2024-07-23 23:01:31 发布