上节课我们已经搞定了几乎所有架构上的事。只差俩个分值计算函数了。
但是经过我们仔细一想,赫然发现,俩个函数的算法应该是一模一样的。唯一的区别就是,进来的个人信息和择偶标准 是女方,还是男方而已,也就是对调一下而已。
所以我们这里简化为一个函数,但是传参颠倒的格式:
然后我们来实现这个函数,仍然以鸣人举例。
这里我们拿到的是鸣人的个人/择偶信息,还有异性的个人/择偶信息。
因为个人信息目前字段是高于择偶信息的。所以我们要以择偶信息来作为依据。
而多出来的个人信息字段,则作为额外加分项(以后实现,需要开发统一标准打分功能)。
函数如下:
分别要用五个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
好了。现在我们再次测试鸣人的匹配结果:
概率上来讲,纲手>雏田>小樱。
如果看己方角度得分,那么鸣人最心仪的是雏田,最不想匹配的是纲手奶奶。
如果从对方角度得分看,纲手是最心仪鸣人哦~ ,而小樱则是嫌弃到负数。
本系列开发过程暂时结束,后续就是优化了哈~
声明:文中的动漫角色均非实际角色,数据是随机填的,所以结果并不符合真实剧情,不惜勿喷哦~ 等作者之后给按照真实属性填入后就会看到...
然后顺便看看其他角色的匹配结果:
果然鸣雏还是概率最高哦~
小樱和鸣人概率也很高
纲手奶奶和谁概率都高,没办法,毕竟火影。
佐助的话,果然逃不掉和纲手奶奶...