一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于用户习惯的小说推荐方法及系统与流程

2022-07-23 12:31:16 来源:中国专利 TAG:


1.本发明涉及数据推送技术领域,具体涉及一种基于用户习惯的小说推荐方法及系统。


背景技术:

2.不同用户在不同时段阅读的小说风格、类型通常并不相同,比如男生倾向于在夜晚时段阅读悬疑类或者恐怖类的小说,而女生在夜晚时段更倾向于阅读言情类或文学类的小说。同个读者在一天内的不同时段阅读的小说类型通常也不一致,比如在上午时段可能更倾向于阅读悬疑类或推理类的小说,而在午休时段更倾向于阅读科幻类的小说,下午时段更倾向于阅读武侠类、武打类的小说,而夜晚时段则更倾向于阅读言情类或历史类的小说。因此在推荐小说时,首先要解决的是如何满足不同用户在不同时段对于不同风格、类型的小说的阅读需求。
3.第二,用户的小说阅读习惯并非是固定不变的,比如,有些用户习惯在周末甚至周末的某个固定时段阅读悬疑类或推理类小说,而在周一到周五则倾向于阅读非悬疑或非推理类的小说,或者更为细致地,上周的周一到周三阅读悬疑类小说,周四、周五阅读科幻类小说,周六、周日阅读文学类小说,而这周的周一到周三阅读科幻类小说,周四、周五阅读文学类小说,周六、周阅读悬疑类小说,甚至更为细致的,在周一到周五的每一日的a阅读时段阅读悬疑类小说,在b阅读时段阅读科幻类小说,在c阅读时段阅读武侠类小说,在d阅读时段阅读言情类小说等等。针对同个用户的阅读习惯非固定不变这种情况时,该如何有针对性的在不同的阅读时段为不同的用户推荐小说?
4.第三,网络上可推荐的小说数量非常庞大,如何从数量庞大的可推荐小说库中快速且较为精准的匹配出符合不同用户在不同星期不同时段的阅读兴趣的小说推荐给对应的用户成为小说推荐亟待解决的第三个技术问题。


技术实现要素:

5.本发明以提高小说推荐针对性和及时性,满足不同用户在不同星期不同时段的小说推荐需求为目的,提供了一种基于用户习惯的小说推荐方法及系统。
6.为达此目的,本发明采用以下技术方案:
7.提供一种基于用户习惯的小说推荐方法,包括步骤:
8.s1,获取关联每个用户的小说推荐过滤词库,以及获取每个所述用户在每个历史阅读时段阅读的小说标题库、小说文本库,并获取可推荐的小说库中的每篇小说的类型、作者姓名、作者国籍、小说标题以及小说摘要,以及获取待进行小说推荐的时间点所属的阅读时段;
9.s2,在关联所述用户的所述小说推荐过滤词库中进一步获取关联待进行小说推荐的所述阅读时段的小说类型、作者姓名、作者国籍分别对应的第一过滤词集、第二过滤词集和第三过滤词集;
10.s3,将可推荐的所述小说库中的每篇小说的类型对应的类型词与关联所述用户的所述第一过滤词集中存储的类型词进行词匹配,
11.若匹配成功,则将所述小说库中的对应小说过滤掉,然后转入步骤s4;
12.若匹配失败,则转入步骤s4;
13.s4,将经步骤s3过滤剩余的所述小说库中的每篇小说的作者姓名对应的类型词与关联所述用户的所述第二过滤词集中存储的类型词进行词匹配,
14.若匹配成功,则将所述小说库中的对应小说过滤掉,然后转入步骤s5;
15.若匹配失败,则转入步骤s5;
16.s5,将经步骤s4过滤剩余的所述小说库中的每篇小说的作者国籍对应的类型词与关联所述用户的所述第三过滤词集中存储的类型词进行词匹配,
17.若匹配成功,则将所述小说库中的对应小说过滤掉,然后转入步骤s6;
18.若否,则转入步骤s6;
19.s6,对步骤s1获取的所述用户在历史的所述阅读时段阅读的所述小说标题库中存储的每个小说标题进行分词,得到每个小说标题对应的第一分词结果,并将经步骤s5过滤剩余的所述小说库中的每篇小说的小说标题进行分词,得到过滤剩余的所述小说库中的每篇小说的小说标题对应的第二分词结果;
20.s7,计算每个所述第一分词结果以及每个所述第二分词结果中的每个拆得的词对应的加权哈希值;
21.s8,对归属于所述第一分词结果以及归属于所述第二分词结果的每个拆得的词所对应的所述加权哈希值进行拼接后,得到每个所述第一分词结果分别对应的第一拼接结果以及每个所述第二分词结果分别对应的第二拼接结果;
22.s9,对每个所述第一拼接结果以及每个所述第二拼接结果中大于“0”的数值置“1”,小于“0”的数值置“0”,得到每个所述第一拼接结果分别对应的第一编码结果以及每个所述第二拼接结果分别对应的第二编码结果;
23.s10,计算所述第一编码结果与每个所述第二编码结果中的差异元素数量n
de
,然后通过以下公式(1)计算所述第一编码结果与每个所述第二编码结果的相似度f
rs

[0024][0025]
公式(1)中,lr表示所述第一编码结果或所述第二编码结果中的元素数量;
[0026]
s11,判断f
rs
是否大于预设的相似度阈值,
[0027]
若是,则将参与相似度f
rs
计算的所述第二编码结果对应的可推荐小说加入到在待进行小说推荐的所述时间点待推荐给所述用户的第一小说集中;
[0028]
若否,则不将参与相似度f
rs
计算的所述第二编码结果对应的可推荐小说加入到所述第一小说集中;
[0029]
s12,判断所述第一小说集中的数据是否为空,
[0030]
若是,则将步骤s5过滤剩余的所述小说库中的小说加入到第二小说集中,然后转入步骤s13;
[0031]
若否,则过滤掉未加入到所述第一小说集中的所述小说库中的小说,然后转入步骤s13;
[0032]
s13,对步骤s1获取的所述小说文本库中存储的所述用户在历史的所述阅读时段内阅读的每篇小说的文本内容进行分词,得到每篇文本内容分别对应的第三分词结果,并对所述第一小说集中或所述第二小说集中存储的每篇可推荐小说的小说摘要进行分词,得到每篇小说摘要对应的第四分词结果;
[0033]
s14,对每个所述第三分词结果和每个所述第四分词结果中拆得的每个词转换为对应的词向量,并使用skip-gram模型预测每个拆得的词对应的上下文;
[0034]
s15,将归属于所述第三分词结果的所有词向量与每个词向量对应的上下文进行拼接得到每个所述第三分词结果对应的第三句向量,并将归属于所述第四分词结果的所有词向量与每个词向量对应的上下文进行拼接得到每个所述第四分词结果对应的第四句向量;
[0035]
s16,通过以下公式(2)计算所述第三句向量与所述第四句向量中的每个词向量之间的相关性per
ab

[0036][0037]
公式(2)中,表示所述第四句向量中的第b个词向量的转置;
[0038]
va表示第三句向量中的第a个词向量;
[0039]
s17,通过以下公式(3)计算所述第三句向量与所述第四句向量之间的相关性per

ab

[0040][0041]
公式(3)中,la、lb分别表示所述第三句向量和所述第四句向量中的词向量的数量;
[0042]
s18,判断per

ab
是否大于预设的相关性阈值,
[0043]
若是,则将所述第四句向量对应的小说作为待推荐小说加入到第三小说集中;
[0044]
若否,则不将所述第四句向量对应的小说作为待推荐小说;
[0045]
s19,判断所述第三小说集中的数据是否为空,
[0046]
若是,则在所述第一小说集或所述第二小说集中随机选择任意一篇或多篇小说作为待推荐小说并在待进行小说推荐的所述时间点推送给所述用户;
[0047]
若否,则在所述第三小说集中随机选择任意一篇或多篇小说作为待推荐小说并在待进行小说推荐的所述时间点推送给所述用户。
[0048]
作为优选,步骤s1中,构建并动态更新关联每个所述用户的所述小说推荐过滤词库的方法步骤包括:
[0049]
s11,获取连续历史星期的每个历史星期wk中的每一天d
l
中的每个阅读时段qm内用户i的屏蔽小说数据集si,si中的每条屏蔽小说数据s
x
包括所屏蔽的小说标题、文本内容、小说类型、作者姓名、作者国籍以及加入屏蔽的时间,s
x
的数据构成通过如下表达式(4)表达:
[0050][0051]
表达式(4)中,分别表示si中的第x条数据s
x
中的小说标题、文本内容、小说类型、作者姓名、作者国籍以及加入屏蔽的时间;
[0052]
wk表示第k个历史星期;
[0053]dl
表示某个历史星期中的星期l;
[0054]
qm表示某个历史星期l中的第m个阅读时段;
[0055]
表示所记录的用户i在第k个历史星期wk中的星期l中的第m个阅读时段qm内屏蔽的第x条小说数据s
x

[0056]
l=1,2,3,4,5,6,7;
[0057]
s12,判断s
x
中的数据元素ej对应的数据在历史每个星期的同个星期l的同个阅读时段qm内被屏蔽数量的总数sum是否大于预设的第一数量阈值n
v1

[0058]
若是,则通过以下公式(5)计算加入屏蔽的数据元素ej对应的类型为y的数据所对应的类型词作为在当前星期l的同个阅读时段qm进行小说推荐时的过滤词的概率,然后跳转到步骤s15:
[0059][0060]
公式(5)中,表示ej对应的类型为y的数据在历史星期wk中的星期l的阅读时段qm内被屏蔽的数量;
[0061]
u表示数据的第u个参数,n表示数据的参数u的数量;
[0062]
p表示连续历史星期wk的数量;
[0063]
若否,则转入步骤s13;
[0064]
s13,判断sum是否大于预设的第二数量阈值n
v2
且小于等于所述第一数量阈值n
v1

[0065]
若是,则通过以下公式(6)计算加入屏蔽的数据元素ej对应的类型为y的数据所对应的类型词作为在当前星期l的同个时段qm进行小说推荐时的过滤词的概率,然后跳转到步骤s15:
[0066][0067]
若否,则转入步骤s14;
[0068]
s14,判断sum是否小于等于预设的所述第二数量阈值n
v2

[0069]
若是,则通过以下公式(7)计算加入屏蔽的数据元素ej对应的类型为y的数据所对应的类型词作为在当前星期l的同个时段qm进行小说推荐时的过滤词的概率,然后跳转到步骤s15:
[0070][0071]
公式(7)中,q表示划定的一天时间内的阅读时段的数量;
[0072]cl
表示历史星期wk中的星期l在计算概率时所占的权重;
[0073]ck
表示历史星期wk在计算概率时所占的权重;
[0074][0075][0076]
步骤s15,判断所计算的概率是否大于为类型为y的数据所预设的概率阈值p
vy

[0077]
若是,则将类型为y的数据所对应的类型词作为待加入的过滤词;
[0078]
若否,则不将类型为y的数据所对应的类型词作为待加入的过滤词;
[0079]
s16,轮询判断在当前时间将待加入的过滤词加入到所述小说推荐过滤词库内的关联对应阅读时段的过滤词集中后,所述过滤词集中的数据量是否大于对应设置的数据量阈值,
[0080]
若是,则按照记录的过滤词加入时间的先后顺序将历史最先加入到对应的所述过滤词集中的第一过滤词删除后,将待加入的第二过滤词加入到关联所述阅读时段且对应类型为y的数据的所述过滤词集中并记录加入时间;
[0081]
若否,则直接将待加入的所述第二过滤词加入到关联对应阅读时段的所述过滤词集中并记录加入时间。
[0082]
作为优选,p=4。
[0083]
作为优选,q=4,q=1时表示阅读时段05:00-10:00;q=2时表示阅读时段处于10:00-14:00;q=3时表示阅读时段处于14:00-18:00;q=4时表示阅读时段处于18:00-22:00。
[0084]
作为优选,j=1,2,3,j=1时,数据元素e1表示即表示用户i在第k个历史星期wk中的星期l中的第m个阅读时段qm内屏蔽的第x条小说数据s
x
中记录的小说类型;
[0085]
j=2时,数据元素e2表示即表示用户i在第k个历史星期wk中的星期l中的第m个阅读时段qm内屏蔽的第x条小说数据s
x
中记录的作者姓名;
[0086]
j=3时,数据元素e3表示即表示用户i在第k个历史星期wk中的星期l中的第m个阅读时段qm内屏蔽的第x条小说数据s
x
中记录的作者国籍;
[0087]
数据包括所屏蔽的小说类型、作者姓名、作者国籍中的任意一种或多种,当表示小说类型时,y=1,2,3,4,5,6,7,8,分别表示所屏蔽的小说类型为武打小说、武侠小说、推理小说、悬疑小说、历史小说、军事小说、言情小说和科幻小说中的任意一种;
[0088]
当表示小说作者的姓名时,y=9;当表示小说作者的国籍时,y=10。
[0089]
作为优选,步骤s7中,计算拆得的每个词对应的所述加权哈希值的方法步骤包括:
[0090]
s71,计算拆得的每个词对应的哈希值;
[0091]
s72,计算从所述第一分词结果中拆得的每个词在所有所述第一分词结果中出现的次数,并计算从所述第二分词结果中拆得的每个词在所有所述第二分词结果中出现的次数;
[0092]
s73,计算拆得的每个词对应的哈希值与对应的出现次数的乘积作为该词对应的加权哈希值,计算方法为:
[0093]
对每个词对应的哈希值中的元素“1”乘对应出现次数的正值,对元素“0”乘对应出现次数的负值,所得序列作为该词对应的所述加权哈希值。
[0094]
作为优选,步骤s8中,对所述第一分词结果或所述第二分词结果中的每个拆得的词分别对应的所述加权哈希值进行拼接的方法为:
[0095]
对所述第一分词结果或所述第二分词结果中的每个拆得的词对应的所述加权哈希值中处于相同位置的元素值进行累加得到对应的所述第一拼接结果或所述第二拼接结果。
[0096]
本发明还提供了一种基于用户习惯的小说推荐系统,可实现所述的小说推荐方法,所述小说推荐系统包括:
[0097]
数据获取模块,用户获取关联每个用户的小说推荐过滤词库,以及获取每个所述用户历史阅读的小说标题库、小说文本库,并获取可推荐的小说库中的每篇小说的类型、作者姓名、作者国籍、小说标题以及小说摘要,以及获取当前星期l的当前小说推荐时间点所属的阅读时段;
[0098]
词集获取模块,连接所述数据获取模块,用于在关联所述用户的所述小说推荐过滤词库中进一步获取关联所述阅读时段的小说类型、作者姓名、作者国籍分别对应的第一过滤词集、第二过滤词集和第三过滤词集;
[0099]
第一匹配模块,连接所述数据获取模块和所述词集获取模块,用于将可推荐的所述小说库中的每篇小说的类型对应的类型词语关联所述用户的所述第一过滤词集中存储的类型词进行词匹配,
[0100]
若匹配成功,则将所述小说库中的对应小说过滤掉;
[0101]
若匹配失败,则不对所述小说库进行小说过滤;
[0102]
第二匹配模块,连接所述第一匹配模块、所述数据获取模块和所述词集获取模块,用于在所述第一匹配模块完成匹配后,进一步将经所述第一匹配模块过滤剩余的所述小说库中的每篇小说的作者姓名对应的类型词语关联所述用户的所述第二过滤词集中存储的
类型词进行词匹配,
[0103]
若匹配成功,则将所述小说库中的对应小说过滤掉;
[0104]
若匹配失败,则不对所述小说库进行小说过滤;
[0105]
第三匹配模块,连接所述第二匹配模块、所述数据获取模块和所述词集获取模块,用于在所述第二匹配模块完成匹配后,进一步将经所述第二匹配模块过滤剩余的所述小说库中的每篇小说的作者国籍对应的类型词语关联所述用户的所述第三过滤词集中存储的类型词进行词匹配,
[0106]
若匹配成功,则将所述小说库中的对应小说过滤掉;
[0107]
若匹配失败,则不对所述小说库进行小说过滤;
[0108]
小说标题分词模块,连接所述第三匹配模块、所述数据获取模块,用于以所述第三匹配模块完成匹配为指令,对获取的所述用户在历史的所述阅读时段阅读的所述小说标题库中存储的每个小说标题进行分词,得到每个小说标题对应的第一分词结果,并对过滤剩余的所述小说库中的每篇小说的小说标题进行分词,得到过滤剩余的所述小说库中的每篇小说的小说标题对应的第二分词结果;
[0109]
加权哈希值计算模块,连接所述小说标题分词模块,用于计算每个所述第一分词结果以及每个所述第二分词结果中的每个拆得的词对应的加权哈希值;
[0110]
加权哈希值拼接模块,连接所述加权哈希值计算模块,用于对归属于所述第一分词结果以及归属于所述第二分词结果的每个拆得的词所对应的所述加权哈希值进行拼接,得到每个所述第一分词结果分别对应的第一拼接结果以及每个所述第二分词结果分别对应的第二拼接结果;
[0111]
编码模块,连接所述加权哈希值拼接模块,用于对每个所述第一拼接结果以及每个所述第二拼接结果中大于“0”的数值置“1”,小于“0”的数值置“0”,得到每个所述第一拼接结果分别对应的第一编码结果以及每个第二拼接结果分别对应的第二编码结果;
[0112]
相似度计算模块,连接所述编码模块,用于计算所述第一编码结果与每个所述第二编码结果中的差异元素数量n
de
,然后通过以下公式(8)计算所述第一编码结果与每个所述第二编码结果的相似度f
rs

[0113][0114]
公式(8)中,lr表示所述第一编码结果或所述第二编码结果中的元素数量;
[0115]
第一判断模块,连接所述相似度计算模块,用于判断f
rs
是否大于预设的相似度阈值,
[0116]
若是,则将参与相似度f
rs
计算的所述第二编码结果对应的可推荐小说加入到在所述阅读时段内待推荐给所述用户的第一小说集中;
[0117]
若否,则不将参与相似度f
rs
计算的所述第二编码结果对应的可推荐小说加入到所述第一小说集中;
[0118]
第二判断模块,连接所述第一判断模块和所述第三匹配模块,用于判断所述第一小说集中的数据是否为空,
[0119]
若是,则将所述第三匹配模块完成匹配后过滤剩余的所述小说库中的小说加入到第二小说集中;
[0120]
若否,则过滤掉未加入到所述第一小说集中的所述小说库中的小说;
[0121]
文本内容分词模块,连接所述第二判断模块和所述数据获取模块,用于以所述第二判断模块完成判断为指令,对获取的所述小说文本库中存储的所述用户在历史的所述阅读时段内阅读的每篇小说的文本内容进行分词,得到每篇文本内容对应的第三分词结果,并对所述第一小说集或所述第二小说集中存储的每篇可推荐小说的小说摘要进行分词,得到每篇小说摘要对应的第四分词结果;
[0122]
词向量转换及上下文预测模块,连接所述文本内容分词模块,用于对每个所述第三分词结果和每个所述第四分词结果中拆得的每个词转换为对应的词向量,并使用skip-gram模型预测每个拆得的词对应的上下文;
[0123]
句向量形成模块,连接所述词向量转换及上下文预测模块,用于将归属于所述第三分词结果的所有词向量与每个词向量对应的上下文进行拼接得到每个所述第三分词结果对应的第三句向量,并将归属于所述第四分词结果的所有词向量与每个词向量对应的上下文进行拼接得到每个所述第四分词结果对应的第四句向量;
[0124]
词向量相关性计算模块,连接所述句向量形成模块,用于计算所述第三句向量与所述第四句向量中的每个词向量之间的相关性per
ab

[0125]
句向量相关性计算模块,连接所述词向量相关性计算模块,用于根据per
ab
计算所述第三句向量与所述第四句向量之间的相关性per

ab

[0126]
第三判断模块,连接所述句向量相关性计算模块,用于判断per

ab
是否大于预设的相关性阈值,
[0127]
若是,则将所述第四句向量对应的小数作为待推荐小说加入到第三小说集中;
[0128]
若否,则不将所述第四句向量对应的小说作为待推荐小说;
[0129]
第四判断模块,用于判断所述第三小说集中的数据是否为空,
[0130]
若是,则在所述第一小说集或所述第二小说集中随机选择任意一篇或多篇小说作为待推荐小说并在所述当前小说推荐时间点推送给所述用户;
[0131]
若否,则在所述第三小说集中随机选择任意一篇或多篇小说作为待推荐小说并在所述当前小说推荐时间点推送给所述用户。
[0132]
本发明具有以下有益效果:
[0133]
1、根据用户在历史星期的每个星期的每个时段的小说阅读屏蔽记录,事先构建并动态更新小说推荐过滤词库,在为该用户推荐小说时,将小说库中的每篇小说的类型、作者姓名、作者国籍按先后顺序与对应的第一过滤词集、第二过滤词集、第三过滤词集进行词匹配,以大幅减小小说库的规模,使得经过滤剩余的小说库中的小说与该用户的阅读兴趣更有契合点。且以小说类型、作者姓名、作者国籍为小说过滤条件,由于小说类型、作者姓名、作者国籍的词匹配长度很小,前期的第一过滤、第二过滤、第三过滤的速度很快,有利于提升整体的小说推荐速度。
[0134]
2、通过对经前期3道过滤后小说库中的剩余的小说的标题进行编码计算,以及对该用户在历史每个阅读时段所阅读的每个小说标题进行编码计算,并通过计算两个编码结果的相似度f
rs
,并以f
rs
为小说过滤条件对经前期3道过滤后小说库中剩余的小说作进一步的过滤、筛选,能够在此阶段筛选出具有高匹配度的容易满足该用户在对应的阅读时段的阅读兴趣的待推荐小说,而且,此阶段由于仅对长度有限的小说标题进行相似度匹配,筛选
速度很快。
[0135]
3、经过前期的3道过滤和一次基于标题的可推荐小说筛选,小说库中适于在该阅读时段推荐给该用户的小说数量大幅下降,确保了第三阶段的小说文本匹配的速度。在小说文本匹配阶段,只需要将用户在历史指定时段阅读的小说的文本内容与经前期过滤、筛选加入到第一小说集或加入到第二小说集中的可推荐小说的小说摘要进行相关性匹配,由于历史指定阅读时段的阅读的小说文本内容有限,且加入到第一小说集或第二小说集的可推荐小说的数量由于经前期3道过滤和一次基于标题的可推荐小说的筛选后大幅降低,因此在此阶段的历史文本内容与小说摘要的相关性匹配的速度同样很快,且通过skip-gram模型预测从历史阅读的小说文本内容以及小说摘要中拆得的每个词对应的上下文,并形成历史文本内容对应的第一句向量,形成小说摘要对应的第二句向量,通过分析第一句向量与第二句向量中的每个词的相关性,以及分析第一句向量与第二句向量间的相关性,提升了此阶段的历史文本内容与小说摘要的相关性分析的准确度,有利于进一步从第一小说集或第二小说集中筛选出适合在该阅读时段推荐给该用户的第三小说集。
[0136]
综上,本发明通过层层过滤、筛选,环环相扣,将数量庞大的小说库规模缩小为适宜在不同星期的不同阅读时段推荐给不同用户的第三小说集或第一小说集或第二小说集,且以小说类型、作者姓名、作者国籍、小说标题、历史阅读的小说文本内容、小说库中的小说摘要为过滤、筛选条件,筛选过程简单、计算复杂度低,同时确保了小说推荐的速度和推荐准确度。
附图说明
[0137]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0138]
图1是本发明一实施例提供的基于用户习惯的小说推荐方法的实现步骤图;
[0139]
图2是本发明一实施例提供的基于用户习惯的小说推荐系统的结构示意图。
具体实施方式
[0140]
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
[0141]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0142]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0143]
在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0144]
本发明一实施例提供的基于用户习惯的小说推荐方法,如图1所示,包括:
[0145]
步骤s1,获取关联每个用户的小说推荐过滤词库,以及获取每个用户在每个历史阅读时段(本技术中,将一天中的阅读时段分为4个,05:00-10:00、10:00-14:00、14:00-18:00、18:00-22:00分别为一个阅读时段)阅读的小说标题库、小说文本库,并获取可推荐的小说库中的每篇小说的类型、作者姓名、作者国籍、小说标题以及小说摘要,以及获取待进行小说推荐的时间点所述的阅读时段;
[0146]
本技术中,关联每个用户的小说推荐过滤词库是动态更新而并非固定不变的,这样做的目的是迎合每个用户在不同时期的阅读习惯变化,以提高小说推荐的有效性和准确度。本技术构建并动态更新关联每个用户的小说推荐过滤词库的方法包括:
[0147]
步骤s11,获取连续历史星期的每个历史星期wk中的每一天d
l
中的每个阅读时段qm内用户i的屏蔽小说数据集si,si中的每条屏蔽小说数据s
x
包括所屏蔽的小说标题、文本内容、小说类型、作者姓名、作者国籍以及加入屏蔽的时间,s
x
的数据构成通过如下表达式(1)表达:
[0148][0149]
表达式(1)中,分别表示si中的第x条数据s
x
中的小说标题、文本内容、小说类型(武打小说、武侠小说、推理小说、悬疑小说、历史小说、军事小说、言情小说和科幻小说等中的任意一种)、作者姓名、作者国籍以及加入屏蔽的时间;
[0150]
wk表示第k个历史星期;
[0151]dl
表示某个历史星期中的星期l;
[0152]
qm表示某个历史星期l中的第m个阅读时段;
[0153]
表示所记录的用户i在第k个历史星期wk中的星期l中的第m个阅读时段qm内屏蔽的第x条小说数据s
x

[0154]
l=1,2,3,4,5,6,7;
[0155]
s12,判断s
x
中的数据元素ej(j=1,2,3,j=1时,数据元素e1表示即表示用户i在第k个历史星期wk中的星期l中的第m个阅读时段qm内屏蔽的第x条小说数据s
x
中记录的小说类型;j=2时,数据元素e2表示即表示用户i在第k个历史星期wk中的星期l中的第m个阅读时段qm内屏蔽的第x条小说数据s
x
中记录的作者姓名;j=3时,数据元素e3表示即表示用户i在第k个历史星期wk中的星期l中的第m个阅读时段qm内屏蔽的第x条小说数据s
x
中记录的作者国籍)对应的数据在历史每个星期的同个星期l的同个阅读时段qm内被屏蔽数量的总数sum是否大于预设的第一数
量阈值n
v1

[0156]
若是,则通过以下公式(2)计算加入屏蔽的数据元素ej对应的类型为y的数据所对应的类型词作为在当前星期l的同个时段qm进行小说推荐时的过滤词的概率,然后跳转到步骤s15:
[0157][0158]
公式(2)中,表示ej对应的类型为y的数据的同一参数在历史星期wk中的星期l的阅读时段qm内被屏蔽的数量;
[0159]
u表示数据的第u个参数,n表示数据的参数u的数量;p表示连续历史星期wk的数量;
[0160]
若否,则转入步骤s13;
[0161]
此处举例而言,假设ej=e2,则步骤s2中作为判断对象的数据为小说的作者姓名,此时类型y=小说作者姓名,假设历史星期w
k-3
、w
k-2
、w
k-1
、wk中的同个星期l(比如星期三)的上午05:00-10;00该用户的屏蔽的作者姓名分别为小丁、小李;小王、小李、小丁;小夏、小沈、小阮、小何;小丁,那么sum=2 3 4 1=10,如果设置的第一数量阈值n
v1
为3,则符合的计算条件,然后以小丁、小李、小王、小夏、小沈、小阮、小何分别为参数u,计算每个参数u(类型词)作为在当前星期l的同个时段qm进行小说推荐时的过滤词的概率比如对于小丁,根据公式(2),比如对于小丁,根据公式(2),而对于小李,若针对小说作者姓名设置的第一数量阈值n
v1
为30%,则小丁被列为过滤词加入到关联被屏蔽的作者姓名的第一过滤词集中。
[0162]
对于类型y=小说作者国籍或小说类型的数据计算相应的概率的方式与y=小说作者姓名的原理一致,因此在此不再赘述。
[0163]
以历史每个星期的同个星期l的同个阅读时段qm内的被屏蔽数据去判断是否作为在当前星期l的同个阅读时段qm进行小说推荐的过滤词虽然准确度很高,但数据量不一定足够,虽然可以通过设置历史星期wk中p的长度以获取更多的数据,但距离当前星期l的时间距离越远数据的价值越低,对于提升小说推荐的准确度不利,因此为了解决这个问题,当sum小于等于第一数量阈值n
v1
,构建小说推荐过滤词库的过程转入:
[0164]
步骤s13,判断sum是否大于预设的第二数量阈值n
v2
且小于等于第一数量阈值n
v1

[0165]
若是,则通过以下公式(3)计算加入屏蔽的数据元素ej对应的类型为y的数据所对应的类型词作为在当前星期l的同个时段qm进行小说推荐时的过滤词的概率,然后跳转到步骤s15:
[0166][0167]
若否,则转入步骤s14;
[0168]
公式(3)与公式(2)的区别是,公式(3)中加入概率计算的数据不再局限于同个星期l的同个阅读时段,而是获取历史不同星期l中的同个阅读时段,比如公式(2)中加入概率计算的数据全部为历史星期的星期三的同个阅读时段的数据,而公式(3)中的数据为历史星期的周一到周末7天中的每天内的同个阅读时段的数据,但数量可能还不够,为了解决数据量还不足够的问题,如图2所示,继续转入:
[0169]
s14,判断sum是否小于等于预设的第二数量阈值n
v2

[0170]
若是,则通过以下公式(4)计算加入屏蔽的数据元素ej对应的类型为y的数据所对应的类型词(参数u)作为在当前星期l的同个时段qm进行小说推荐时的过滤词的概率,然后跳转到步骤s15:
[0171][0172]
公式(4)中,q表示划定的一天时间内的阅读时段的数量;本技术中,q=4,q=1时表示阅读时段05:00-10:00;q=2时表示阅读时段处于10:00-14:00;q=3时表示阅读时段处于14:00-18:00;q=4时表示阅读时段处于18:00-22:00。
[0173]cl
表示历史星期wk中的星期l在计算概率时所占的权重;
[0174]ck
表示历史星期wk在计算概率时所占的权重;
[0175]
距离待进行小说推荐的当前星期l的时间越近的数据价值越大,因此公式(4)在计算时,本技术赋予不同历史星期l以及不同历史星期wk不同的权重。
[0176]
为了加快计算速度,
[0177]
步骤s15,判断所计算的概率是否大于为类型为y的数据所预设的概率阈值p
vy

[0178]
若是,则将类型为y的数据所对应的类型词(参数u)作为待加入的过滤词;
[0179]
若否,则不将类型为y的数据所对应的类型词作为待加入的过滤词;
[0180]
s16,轮询判断在当前时间将待加入的过滤词加入到小说推荐过滤词库内的关联对应阅读时段的过滤词集中后,过滤词集中的数据量是否大于对应设置的数据量阈值,
[0181]
若是,则按照记录的过滤词加入时间的先后顺序将历史最先加入到对应的过滤词集中的第一过滤词删除后,将待加入的第二过滤词加入到关联阅读时段且对应类型为y的数据的过滤词集中并记录加入时间;
[0182]
若否,则直接将待加入的所述第二过滤词加入到关联阅读时段且对应类型为y的数据的过滤词集中并记录加入时间。
[0183]
请继续参照图1,本实施例提供的基于用户习惯的小说推荐方法还包括:
[0184]
步骤s2,在关联用户的小说推荐过滤词库中进一步获取关联待进行小说推荐的阅读时段的小说类型、作者姓名、作者国籍分别对应的第一过滤词集、第二过滤词集和第三过滤词集;步骤s3,将可推荐的小说库中的每篇小说的类型对应的类型词(比如言情小说)与关联用户的第一过滤词集中存储的类型词进行词匹配,
[0185]
若匹配成功,则将小说库中的对应小说过滤掉,然后转入步骤s4;
[0186]
若匹配失败,则转入步骤s4;
[0187]
比如,关联该用户的某个阅读时段的第一过滤词集中存储的小说类型的类型词为言情小说和科幻小说,则将小说库中匹配到的言情小说和科幻小说过滤掉;
[0188]
步骤s4,将经步骤s3过滤剩余的小说库中的每篇小说的作者姓名对应的类型词(即作者姓名)与关联用户的第二过滤词集中存储的类型词进行词匹配,
[0189]
若匹配成功,则将小说库中的对应小说过滤掉,然后转入步骤s5;
[0190]
若匹配失败,则转入步骤s5;
[0191]
步骤s5,将经步骤s4过滤剩余小说库中的每篇小说的作者国籍对应的类型词(即作者国籍)与关联用户的第三过滤词集中存储的类型词进行词匹配,
[0192]
若匹配成功,则将小说库中的对应小说过滤掉,然后转入步骤s6;
[0193]
若否,则转入步骤s6;
[0194]
步骤s6,对步骤s1获取的用户在历史的阅读时段阅读的小说标题库中存储的每个小说标题进行分词,得到每个小说标题对应的第一分词结果,并将经步骤s5过滤剩余的小说库中的每篇小说的小说标题进行分词,得到过滤剩余的小说库中的每篇小说的小说标题对应的第二分词结果;分词方法可采用现有的jieba分词方法,为了提升分词准确度,可以对jieba词典进行词扩充;
[0195]
步骤s7,计算每个第一分词结果以及每个第二分词结果中的每个拆得的词对应的加权哈希值;
[0196]
举例而言,假设历史阅读的某个小说标题为“错误的选择却是正确的决定”,其对应的第一分词结果为“错误;的;选择;却;是;正确;的;决定”,首先对每个分得的词计算哈希值,比如“错误”的哈希值为“1101011”,“错误”这个词在历史阅读的小说标题库中的出现次数假设为5次,那么本技术以以下方法计算该词的加权哈希值:
[0197]
对“1101011”中的元素“1”乘以对应出现次数即5的正值,对元素“0”乘以对应出现
次数的负值,所得序列作为“错误”该词对应的加权哈希值,即“5,5,-5,5,-5,5,5”。
[0198]
步骤s8,对归属于第一分词结果以及归属于第二分词结果的每个拆得的词所对应的加权哈希值进行拼接后,得到每个第一分词结果分别对应的第一拼接结果以及每个第二分词结果分别对应的第二拼接结果;
[0199]
举例而言,“错误”和“的”的加权哈希值分别为“5,5,-5,5,-5,5,5”和“8,-8,8,8,8,-8”,那么“错误”和“的”的加权哈希值拼接结果为“13,-3,3,13,3,13,-3”,这样,第一拼接结果和第二拼接结果均为一串长序列;
[0200]
步骤s9,对每个第一拼接结果以及每个第二拼接结果中大于“0”的数值置“1”,小于“0”的数值置“0”,得到每个第一拼接结果分别对应的第一编码结果以及每个第二拼接结果分别对应的第二编码结果;
[0201]
比如对于长序列“13,-3,3,13,3,13,-3”,其编码结果为“1,0,1,1,1,1,0”。
[0202]
步骤s10,计算第一编码结果与每个第二编码结果中的差异元素数量n
de
,然后通过以下公式(5)计算第一编码结果与每个第二编码结果的相似度f
rs

[0203][0204]
公式(5)中,lr表示第一编码结果或第二编码结果中的元素数量;这里需要说明的是,为了便于计算第一编码结果与每个第二编码结果的序列长度一致;
[0205]nde
的计算方式为:
[0206]
假设第一编码结果为“1,0,1,1,1,1,0”,第二编码结果为“1,0,1,1,1,1,1”,则n
de
=1,则根据公式(5),
[0207]
步骤s11,判断f
rs
是否大于预设的相似度阈值,
[0208]
若是,则将参与相似度f
rs
计算的第二编码结果对应的可推荐小说加入到在待进行小说推荐的时间点待推荐给所述用户的第一小说集中;
[0209]
若否,则不将参与相似度f
rs
计算的第二编码结果对应的可推荐小说加入到第一小说集中;
[0210]
步骤s12,判断第一小说集中的数据是否为空,
[0211]
若是,则将步骤s5过滤剩余的小说库中的小说加入到第二小说集中,然后转入步骤s13;
[0212]
若否,则过滤掉未加入到第一小说集中的小说库中的小说,然后转入步骤s13
[0213]
步骤s13,对步骤s1获取的小说文本库中存储的用户在历史的该阅读时段内阅读的每篇小说的文本内容进行分词,得到每篇文本内容分别对应的第三分词结果,并对第一小说集中或第二小说集中存储的每篇可推荐小说的小说摘要进行分词,得到每篇小说摘要对应的第四分词结果;
[0214]
步骤s14,对每个所第三分词结果和每个第四分词结果中拆得的每个词转换为对应的词向量,并使用skip-gram模型预测每个拆得的词对应的上下文;
[0215]
步骤s15,将归属于第三分词结果的所有词向量与每个词向量对应的上下文进行拼接得到每个第三分词结果对应的第三句向量,并将归属于第四分词结果的所有词向量与每个词向量对应的上下文进行拼接得到每个第四分词结果对应的第四句向量;
[0216]
步骤s16,通过以下公式(6)计算第三句向量与第四句向量中的每个词向量之间的相关性per
ab

[0217][0218]
公式(6)中,表示所述第四句向量中的第b个词向量的转置;
[0219]
va表示第三句向量中的第a个词向量;
[0220]
步骤s17,通过以下公式(7)计算第三句向量与第四句向量之间的相关性per

ab

[0221][0222]
公式(7)中,la、lb分别表示第三句向量和第四句向量中的词向量的数量;
[0223]
步骤s18,判断per

ab
是否大于预设的相关性阈值,
[0224]
若是,则将第四句向量对应的小说作为待推荐小说加入到第三小说集中;
[0225]
若否,则不将第四句向量对应的小说作为待推荐小说;
[0226]
s19,判断第三小说集中的数据是否为空,
[0227]
若是,则在第一小说集或第二小说集中随机选择任意一篇或多篇小说作为待推荐小说并在待进行小说推荐的该时间点推送给用户;
[0228]
若否,则在第三小说集中随机选择任意一篇或多篇小说作为待推荐小说并在该时间点推送给用户。
[0229]
本发明还提供了一种基于用户习惯的小说推荐系统,可实现所述的小说推荐方法,如图2所示,该小说推荐系统包括:
[0230]
数据获取模块,用户获取关联每个用户的小说推荐过滤词库,以及获取每个所述用户在每个历史阅读时段阅读的小说标题库、小说文本库,并获取可推荐的小说库中的每篇小说的类型、作者姓名、作者国籍、小说标题以及小说摘要,以及获取当前星期l的当前小说推荐时间点所属的阅读时段;
[0231]
词集获取模块,连接所述数据获取模块,用于在关联所述用户的所述小说推荐过滤词库中进一步获取关联待进行小说推荐的所述阅读时段的小说类型、作者姓名、作者国籍分别对应的第一过滤词集、第二过滤词集和第三过滤词集;
[0232]
第一匹配模块,连接所述数据获取模块和所述词集获取模块,用于将可推荐的所述小说库中的每篇小说的类型对应的类型词语关联所述用户的所述第一过滤词集中存储的类型词进行词匹配,
[0233]
若匹配成功,则将所述小说库中的对应小说过滤掉;
[0234]
若匹配失败,则不对所述小说库进行小说过滤;
[0235]
第二匹配模块,连接所述第一匹配模块、所述数据获取模块和所述词集获取模块,用于在所述第一匹配模块完成匹配后,进一步将经所述第一匹配模块过滤剩余的所述小说库中的每篇小说的作者姓名对应的类型词语关联所述用户的所述第二过滤词集中存储的类型词进行词匹配,
[0236]
若匹配成功,则将所述小说库中的对应小说过滤掉;
[0237]
若匹配失败,则不对所述小说库进行小说过滤;
[0238]
第三匹配模块,连接所述第二匹配模块、所述数据获取模块和所述词集获取模块,
用于在所述第二匹配模块完成匹配后,进一步将经所述第二匹配模块过滤剩余的所述小说库中的每篇小说的作者国籍对应的类型词语关联所述用户的所述第三过滤词集中存储的类型词进行词匹配,
[0239]
若匹配成功,则将所述小说库中的对应小说过滤掉;
[0240]
若匹配失败,则不对所述小说库进行小说过滤;
[0241]
小说标题分词模块,连接所述第三匹配模块、所述数据获取模块,用于以所述第三匹配模块完成匹配为指令,对获取的所述用户在历史的所述阅读时段阅读的所述小说标题库中存储的每个小说标题进行分词,得到每个小说标题对应的第一分词结果,并对过滤剩余的所述小说库中的每篇小说的小说标题进行分词,得到过滤剩余的所述小说库中的每篇小说的小说标题对应的第二分词结果;
[0242]
加权哈希值计算模块,连接所述小说标题分词模块,用于计算每个所述第一分词结果以及每个所述第二分词结果中的每个拆得的词对应的加权哈希值;
[0243]
加权哈希值拼接模块,连接所述加权哈希值计算模块,用于对归属于所述第一分词结果以及归属于所述第二分词结果的每个拆得的词所对应的所述加权哈希值进行拼接,得到每个所述第一分词结果分别对应的第一拼接结果以及每个所述第二分词结果分别对应的第二拼接结果;
[0244]
编码模块,连接所述加权哈希值拼接模块,用于对每个所述第一拼接结果以及每个所述第二拼接结果中大于“0”的数值置“1”,小于“0”的数值置“0”,得到每个所述第一拼接结果分别对应的第一编码结果以及每个第二拼接结果分别对应的第二编码结果;
[0245]
相似度计算模块,连接所述编码模块,用于计算所述第一编码结果与每个所述第二编码结果中的差异元素数量n
de
,然后通过以下公式(8)计算所述第一编码结果与每个所述第二编码结果的相似度f
rs

[0246][0247]
公式(8)中,lr表示所述第一编码结果或所述第二编码结果中的元素数量;
[0248]
第一判断模块,连接所述相似度计算模块,用于判断f
rs
是否大于预设的相似度阈值,
[0249]
若是,则将参与相似度f
rs
计算的所述第二编码结果对应的可推荐小说加入到在待进行小说推荐的所述时间点待推荐给所述用户的第一小说集中;
[0250]
若否,则不将参与相似度f
rs
计算的所述第二编码结果对应的可推荐小说加入到所述第一小说集中;
[0251]
第二判断模块,连接所述第一判断模块和所述第三匹配模块,用于判断所述第一小说集中的数据是否为空,
[0252]
若是,则将所述第三匹配模块完成匹配后过滤剩余的所述小说库中的小说加入到第二小说集中;
[0253]
若否,则过滤掉未加入到所述第一小说集中的所述小说库中的小说;
[0254]
文本内容分词模块,连接所述第二判断模块和所述数据获取模块,用于以所述第二判断模块完成判断为指令,对获取的所述小说文本库中存储的所述用户在历史的所述阅读时段内阅读的每篇小说的文本内容进行分词,得到每篇文本内容对应的第三分词结果,
并对所述第一小说集或所述第二小说集中存储的每篇可推荐小说的小说摘要进行分词,得到每篇小说摘要对应的第四分词结果;
[0255]
词向量转换及上下文预测模块,连接所述文本内容分词模块,用于对每个所述第三分词结果和每个所述第四分词结果中拆得的每个词转换为对应的词向量,并使用skip-gram模型预测每个拆得的词对应的上下文;
[0256]
句向量形成模块,连接所述词向量转换及上下文预测模块,用于将归属于所述第三分词结果的所有词向量与每个词向量对应的上下文进行拼接得到每个所述第三分词结果对应的第三句向量,并将归属于所述第四分词结果的所有词向量与每个词向量对应的上下文进行拼接得到每个所述第四分词结果对应的第四句向量;
[0257]
词向量相关性计算模块,连接所述句向量形成模块,用于计算所述第三句向量与所述第四句向量中的每个词向量之间的相关性per
ab

[0258]
句向量相关性计算模块,连接所述词向量相关性计算模块,用于根据per
ab
计算所述第三句向量与所述第四句向量之间的相关性per

ab

[0259]
第三判断模块,连接所述句向量相关性计算模块,用于判断per

ab
是否大于预设的相关性阈值,
[0260]
若是,则将所述第四句向量对应的小数作为待推荐小说加入到第三小说集中;
[0261]
若否,则不将所述第四句向量对应的小说作为待推荐小说;
[0262]
第四判断模块,用于判断所述第三小说集中的数据是否为空,
[0263]
若是,则在所述第一小说集或所述第二小说集中随机选择任意一篇或多篇小说作为待推荐小说并在所述当前小说推荐时间点推送给所述用户;
[0264]
若否,则在所述第三小说集中随机选择任意一篇或多篇小说作为待推荐小说并在所述当前小说推荐时间点推送给所述用户。
[0265]
综上,本发明通过层层过滤、筛选,环环相扣,将数量庞大的小说库规模缩小为适宜在不同星期的不同阅读时段推荐给不同用户的第三小说集或第一小说集或第二小说集,且以小说类型、作者姓名、作者国籍、小说标题、历史阅读的小说文本内容、小说库中的小说摘要为过滤、筛选条件,筛选过程简单、计算复杂度低,同时确保了小说推荐的速度和推荐准确度。
[0266]
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本技术说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献