以下是一个示例代码,演示如何根据搜索关键词出现的最多次数对搜索结果进行排序:
def sort_search_results(search_results):
# 统计关键词出现次数的字典
keyword_counts = {}
# 遍历搜索结果
for result in search_results:
# 获取关键词列表
keywords = result['keywords']
# 统计关键词出现次数
for keyword in keywords:
if keyword in keyword_counts:
keyword_counts[keyword] += 1
else:
keyword_counts[keyword] = 1
# 根据关键词出现次数排序搜索结果
sorted_results = sorted(search_results, key=lambda x: max(keyword_counts.get(keyword, 0) for keyword in x['keywords']), reverse=True)
return sorted_results
# 示例搜索结果数据
search_results = [
{'title': '结果1', 'keywords': ['关键词1', '关键词2', '关键词3']},
{'title': '结果2', 'keywords': ['关键词1', '关键词2']},
{'title': '结果3', 'keywords': ['关键词1']},
{'title': '结果4', 'keywords': ['关键词2', '关键词3']},
{'title': '结果5', 'keywords': ['关键词3']},
]
# 按照关键词出现次数排序搜索结果
sorted_results = sort_search_results(search_results)
# 输出排序后的搜索结果
for result in sorted_results:
print(result['title'], result['keywords'])
在这个示例代码中,sort_search_results
函数接受一个搜索结果列表作为输入。它首先创建一个字典keyword_counts
来统计每个关键词出现的次数。然后,使用sorted
函数对搜索结果进行排序,通过key
参数指定排序的依据。在这里,我们使用了一个lambda函数来计算每个搜索结果中关键词出现次数的最大值。最后,使用reverse=True
参数来使搜索结果按照关键词出现次数的降序排序。