本周我们首先增加了页面的控制逻辑,实现了前端根据情绪进行评分的算法以及后台的推荐系统,此外也在大数据集上进行了模型训练。
增加前端页面控制逻辑
主要完成了光标位置的确定、利用光标来对页面进行滚动、以及光标滚动到一定程度加载更多的文章列表,具体内容请参考团队博客:@zekdot
情绪评分系统实现
根据用户的七个情绪的百分比,通过一定的算法来得到一个0~10之间的数字作为评分传递给后台,这里利用python实现,接下来还需要利用js来改写这段python代码,具体实现参考团队成员博客:@米老鼠与刘老根
import numpy as np
#标准情绪向量
st_emotion={'国际':[14.67, 0.163, 0.163, 1.936, 68.429, 14.67, 11.633],
'军事':[68.429, 1.936, 11.633, 14.67, 0.163, 14.67, 0.163],
'国内':[14.67, 0.163, 11.633, 1.936, 0.163, 68.429, 14.67],
'台湾':[11.633, 1.936, 14.67, 14.67, 68.429, 0.163, 0.163],
'社评':[1.936, 11.633, 0.163, 68.429, 14.67, 14.67, 0.163],
'社会':[0.163, 14.67, 68.429, 1.936, 14.67, 11.633, 0.163],
'海外看中国':[14.67, 68.429, 0.163, 1.936, 11.633, 14.67, 0.163]}
def rate(_type,emotion):#计算评分
emotion=np.array(emotion)
types=_type.split('&')#获取所有类型标签
standard=0
for t in types:
standard+=np.array(st_emotion[t])#相加得新的标准情绪向量
cos=np.dot(standard,emotion)/(np.linalg.norm(standard)*np.linalg.norm(emotion))#计算余弦相似度
rate=5*(cos+1)#映射到-10
return rate
#print(rate('军事&社会',[1,1,1,1,1,1,1]))
基于情绪分析推荐WEB整合与应用
这里数据库中存储的利用情绪计算出的分数来进行推荐,使用协同过滤的推荐算法来进行实现,目前只完成了算法的部分,还需要完成数据的提取工作,具体实现参考团队成员博客:Jemary_
大训练集上的模型训练
在经过之前几次模型的尝试后,我们最终选用了如下的模型结构作为我们最终的选择方案,之前的训练过程我们都是在小规模300个训练数据上进行的尝试,这一次在该模型上我们使用自制的规模稍大的数据集(四个人6000个训练数据)进行了模型的训练。
具体实现参考团队成员博客:@AFXBR