gpt4 book ai didi

python - 算法过程缓慢

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:40 26 4
gpt4 key购买 nike

考虑一个平台,用户可以在其中选择他认为更重要的因素。例如标准的 5 个因素 A, B, C, D, E

然后每个产品评论都有一个权重 A1, B1, C1, D1, E1。所以,如果他更重视 A,那么权衡将考虑到这一点。结果是每个用户的每条评论都有不同的总体。

我的问题是关于它的算法。目前处理速度较慢。

对于每个类别摘要,我需要遍历该类别的所有公司,以及每个公司的所有评论。

#1 step
find companies of category X with more than 1 review published

companies_X = [1, 2, 3, 5, n]

#2 step 
iterate all companies, and all reviews of these companies

for company in companies:
for review in company:
#calculate the weighing of the review for the current user criteria
#give more importance to recent reviews

#3 step 
avg of all reviews for each company data

#4 step 
make the avg of all companies of this category to create a final score for the category x

这行得通,但我无法加载需要 30 秒的页面。

我正在考虑缓存此页面,但在那种情况下我需要在后台为所有用户处理此页面。绝对不是一个好的解决方案。

关于改进的任何想法?欢迎任何见解。

最佳答案

第一个选项:使用 numpy 和 pandas 可以提高您的速度,如果以巧妙的方式加以利用,那么尽可能避免循环。这可以通过使用 apply 方法来完成,同时处理 numpy。和 pandas ,以及一些条件或 lambda 函数。

for company in companies:
for review in company:

可以替换为 review_data["note"] = note_formula(review_data["number_reviews"])

编辑:这里的note_formula是一个返回评论权重的函数,如问题评论中所示:

  # calculate the weighing of the review for the current user criteria
# give more importance to recent reviews

您可以使用 groupby 执行第 4 步来自 pandas 的方法以及平均值的计算。

第二个选项:您的数据存储在哪里?如果他们在数据库中,提高性能的一个好的规则是:尽可能少地移动数据,所以直接在数据库中执行请求,我认为你所有的操作都可以用 SQL 编写,然后只重定向结果到 python 脚本。如果您的数据以其他方式存储,请考虑使用数据库引擎,SQLite例如,如果您不打算快速扩展,则在开始时。

关于python - 算法过程缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35456338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com