前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >测试圈相亲平台开发流程(21):匹配算法(下)

测试圈相亲平台开发流程(21):匹配算法(下)

作者头像
我去热饭
发布2022-05-20 10:00:07
4110
发布2022-05-20 10:00:07
举报
文章被收录于专栏:测试开发干货

上节课我们已经搞定了几乎所有架构上的事。只差俩个分值计算函数了。

但是经过我们仔细一想,赫然发现,俩个函数的算法应该是一模一样的。唯一的区别就是,进来的个人信息和择偶标准 是女方,还是男方而已,也就是对调一下而已。

所以我们这里简化为一个函数,但是传参颠倒的格式:

然后我们来实现这个函数,仍然以鸣人举例。

这里我们拿到的是鸣人的个人/择偶信息,还有异性的个人/择偶信息。

因为个人信息目前字段是高于择偶信息的。所以我们要以择偶信息来作为依据。

而多出来的个人信息字段,则作为额外加分项(以后实现,需要开发统一标准打分功能)。

函数如下:

分别要用五个want字段来计算分数。

然后把这五个字段分数 分别* 系数 加到一起。目前我并没有更改系数,这个系数要实际的效果来不断调整才行,所以我都默认0.2

研究具体分数计算之前,我们为了确保最后总分在100为满的基础上。所以必须严格控制所有分数的分段结果和精度。(只是大概结果在100以下,特别优秀的肯定是超过100分)

然后就是 要一个一个来研究吧:

第一个分数,身高height:

假如want = 170cm, info=175cm ,那么肯定加分的。如果info=168cm,那就要扣分的。

所以暂时写成:当然后续我会逐步优化算法。

然后是收入,同样的,我们按照年收入/元 来计算。每超出10000算10分

然后是age年龄,超出一岁扣20分,小一岁加20分。

然后是学历,这个差一级差50分吧。

但是难点在于,先要从信息中精确定位出来真实的。毕竟人输入的各有千秋,比如本科,本,大本 这些都是本科。

如上图,我先设置了学历递增列表,然后算出want和info的学历下标,再用下标差来计算最终得分。比如研究生下标是5,本科下标是4,那么得分就是

(5-4)*50 = 50分。如果完全没获取到,就算-100分

然后我们继续算地址匹配度。

这个我们可以直接使用第三方的字符串相似度库

这个库的得分都是0.几,最大是1 所以结果✖️100

好了。现在我们再次测试鸣人的匹配结果:

概率上来讲,纲手>雏田>小樱。

如果看己方角度得分,那么鸣人最心仪的是雏田,最不想匹配的是纲手奶奶。

如果从对方角度得分看,纲手是最心仪鸣人哦~ ,而小樱则是嫌弃到负数。

本系列开发过程暂时结束,后续就是优化了哈~

声明:文中的动漫角色均非实际角色,数据是随机填的,所以结果并不符合真实剧情,不惜勿喷哦~ 等作者之后给按照真实属性填入后就会看到...

然后顺便看看其他角色的匹配结果:

果然鸣雏还是概率最高哦~

小樱和鸣人概率也很高

纲手奶奶和谁概率都高,没办法,毕竟火影。

佐助的话,果然逃不掉和纲手奶奶...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档