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

一种基于布隆滤波器的图书馆系统知识推荐方法与流程

2022-04-25 04:29:44 来源:中国专利 TAG:


1.本发明属于图书管理系统技术领域,具体涉及一种基于布隆滤波器的图书馆系统知识推荐方法。


背景技术:

2.推荐技术发展由来已久,常用的推荐技术包括协同过滤推荐、基于知识的推荐等。其中协同过滤推荐又分为基于用户的协同过滤和基于项目的协同过滤;基于知识的推荐根据对用户需要的形式化表示进行推荐。已有的推荐技术,在根据用户历史行为预测将来行为方面可以获得很好的效果,其中协同过滤技术广泛应用于各类商业推荐系统中;基于知识的推荐系统更加侧重某个细分领域的推荐,且需要专家知识的介入,适用于规模较小且规律较明显的系统。
3.图书馆系统知识推荐系统中,重点在于怎样根据图书/文献之间的相似度进行关联程度的判断。采用用户历史操作的方法需要记录大量的用户借阅/下载记录,且存在用户/项目的冷启动问题;采用专家知识推荐的方法,可以将图书/文献按照图书分类法进行大类划分,但是这种划分方式粒度太粗,对关联图书/文献的推荐不够准确。
4.利用图书/文献的关键词信息进行匹配查找,是一种比较容易想到的图书/文献关联推荐方法,但是已有的利用关键词的推荐方法,大多基于关键词的字符串匹配,该方法存在以下两点缺陷:1、需要记录系统所有关键词,记录数量庞大,且格式不统一;2、需要对关键字逐个进行字符串匹配,计算开销较大。


技术实现要素:

5.本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于布隆滤波器的图书馆系统知识推荐方法,其不需要保存每本图书/文献的关键词文字信息,只需要保存特定结构的布隆滤波器信息,数据结构固定;图书/文献相似度比较时不需要进行关键字匹配,只需要根据各自布隆滤波器之间按位比较,就可以判断相似度,计算更加简单高效,提高了推荐效率。
6.为解决上述技术问题,本发明采用的技术方案是:一种基于布隆滤波器的图书馆系统知识推荐方法,该方法包括以下步骤:
7.步骤一、确定用于图书馆系统知识推荐的布隆滤波器的整体结构和参数;所述参数包括根据图书馆系统文献的关键词数量和布隆滤波器失误率确定的布隆滤波器位数,以及根据图书馆系统文献的关键词数量和布隆滤波器位数确定的用于将每个图书馆系统文献的关键词信息映射到布隆滤波器中的哈希函数的个数;
8.步骤二、对每本图书/文献,建立对应的布隆滤波器结构,作为其属性之一进行存储;
9.步骤三、对每本图书/文献,根据布隆滤波器结构判断关联性最大的前n本图书/文献;其中,n的取值为非0自然数。
10.上述的一种基于布隆滤波器的图书馆系统知识推荐方法,步骤三之后还包括步骤四、从关联性最大的前n本图书/文献中,去除用户在时间段t内已借阅过的图书/文献。
11.上述的一种基于布隆滤波器的图书馆系统知识推荐方法,步骤一中所述布隆滤波器位数采用公式确定,单位为bit;步骤一种所述哈希函数的个数采用公式确定;其中,m为布隆滤波器位数,k为哈希函数的个数,n为图书馆系统文献的关键词数量,p为布隆滤波器失误率。
12.上述的一种基于布隆滤波器的图书馆系统知识推荐方法,步骤一中所述哈希函数包括非加密型哈希函数murmur hash。
13.上述的一种基于布隆滤波器的图书馆系统知识推荐方法,步骤二中所述对每本图书/文献,建立对应的布隆滤波器结构,作为其属性之一进行存储的具体方法为:将将每本图书/文献的每个关键词,用步骤一中的多个哈希函数分别哈希,并将该图书/文献所有关键词的哈希结果按位异或存储到该图书/文献对应的布隆滤波器结构中。
14.上述的一种基于布隆滤波器的图书馆系统知识推荐方法,步骤三中所述对每本图书/文献,根据布隆滤波器结构判断关联性最大的前n本图书/文献的具体方法为:对某本图书/文献,将其布隆滤波器结构和其他图书/文献的布隆滤波器结构依次进行按位异或操作,异或操作之后,布隆滤波器结构中1的个数作为两本图书/文献的相似度评判值,遍历所有图书/文献,找到相似度评判值最高的前n本图书/文献,作为该图书/文献的关联图书/文献。
15.上述的一种基于布隆滤波器的图书馆系统知识推荐方法,所述n的取值为10~60的非0自然数。
16.上述的一种基于布隆滤波器的图书馆系统知识推荐方法,步骤四中所述从关联性最大的前n本图书/文献中,去除用户在时间段t内已借阅过的图书/文献的具体方法为:
17.步骤401、用户每借阅过一本图书/文献,就将该图书/文献存储在已借阅数组中,且没隔时间段t清零一次;
18.步骤402、将已借阅数组中的图书/文献,分别通过hash函数计算形成多个哈希表;
19.步骤403、将关联性最大的前n本图书/文献进行hash函数计算得到计算结果;
20.步骤404、将步骤403中的计算结果与步骤402中的多个哈希表进行匹配,当匹配成功时,判断为图书/文献在时间段t内被用户借阅过,去除推荐;否则,当匹配不成功时,判断为图书/文献在时间段t内未被用户借阅过,继续推荐。
21.上述的一种基于布隆滤波器的图书馆系统知识推荐方法,所述时间段t为1~6个月。
22.本发明与现有技术相比具有以下优点:
23.1、本发明基于布隆滤波器进行图书馆系统知识推荐,不需要保存每本图书/文献的关键词文字信息,只需要保存特定结构的布隆滤波器信息,数据结构固定。
24.2、本发明图书/文献相似度比较时不需要进行关键字匹配,只需要根据各自布隆滤波器之间按位比较,就可以判断相似度,计算更加简单高效,提高了推荐效率。
25.3、本发明通过加入从关联性最大的前n本图书/文献中,去除用户在时间段t内已
借阅过的图书/文献的步骤,能够进一步为用户提供更好更优质的推荐服务,节省用于查看之前重复看过的图书/文献的时间。
26.4、本发明的实用性强,推广应用价值高。
27.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
28.图1为本发明实施例1的方法流程框图;
29.图2为本发明实施例2的方法流程框图。
具体实施方式
30.实施例1
31.如图1所示,本实施例的基于布隆滤波器的图书馆系统知识推荐方法,包括以下步骤:
32.步骤一、确定用于图书馆系统知识推荐的布隆滤波器的整体结构和参数;所述参数包括根据图书馆系统文献的关键词数量和布隆滤波器失误率确定的布隆滤波器位数,以及根据图书馆系统文献的关键词数量和布隆滤波器位数确定的用于将每个图书馆系统文献的关键词信息映射到布隆滤波器中的哈希函数的个数;
33.本实施例中,步骤一中所述布隆滤波器位数采用公式确定,单位为bit;步骤一种所述哈希函数的个数采用公式确定;其中,m为布隆滤波器位数,k为哈希函数的个数,n为图书馆系统文献的关键词数量,p为布隆滤波器失误率。
34.本实施例中,步骤一中所述哈希函数包括非加密型哈希函数murmur hash。
35.具体实施时,还可以选择其他已有字符串哈希函数,如bkdrhash、aphash、djbhash、jshash、rshash、sdbmhash、pjwhash、elfhash等。
36.步骤二、对每本图书/文献,建立对应的布隆滤波器结构,作为其属性之一进行存储;
37.本实施例中,步骤二中所述对每本图书/文献,建立对应的布隆滤波器结构,作为其属性之一进行存储的具体方法为:将将每本图书/文献的每个关键词,用步骤一中的多个哈希函数分别哈希,并将该图书/文献所有关键词的哈希结果按位异或存储到该图书/文献对应的布隆滤波器结构中。
38.本实施例中,是将将每本图书/文献的每个关键词,用步骤一中的k个哈希函数分别哈希,每个哈希函数的哈希结果是m个bit。
39.步骤三、对每本图书/文献,根据布隆滤波器结构判断关联性最大的前n本图书/文献;其中,n的取值为非0自然数。
40.本实施例中,步骤三中所述对每本图书/文献,根据布隆滤波器结构判断关联性最大的前n本图书/文献的具体方法为:对某本图书/文献,将其布隆滤波器结构和其他图书/文献的布隆滤波器结构依次进行按位异或操作,异或操作之后,布隆滤波器结构中1的个数作为两本图书/文献的相似度评判值,遍历所有图书/文献,找到相似度评判值最高的前n本
图书/文献,作为该图书/文献的关联图书/文献。
41.本实施例中,所述n的取值为10~60的非0自然数。
42.本实施例中,步骤三中对每本图书/文献,根据布隆滤波器结构判断关联性最大的前n本图书/文献的逻辑伪代码为:
43.1)提取其布隆滤波器结构bfi;
44.2)初始化top n条目为空;
45.3)对每个其他图书/文献bookitemj;
46.a)提取其布隆滤波器结构bfi;
47.b)计算bfi与bfi的异或结果中1的个数,作为bookitemi与
48.bookitemj的相似度评判值;
49.c)与bookitemi的top n条目相似度评判值比较,更新bookitemi的top n条目;
50.得到bookitemi的top n关联图书/文献。
51.实施例2
52.如图2所示,本实施例的基于布隆滤波器的图书馆系统知识推荐方法,包括以下步骤:
53.步骤一、确定用于图书馆系统知识推荐的布隆滤波器的整体结构和参数;所述参数包括根据图书馆系统文献的关键词数量和布隆滤波器失误率确定的布隆滤波器位数,以及根据图书馆系统文献的关键词数量和布隆滤波器位数确定的用于将每个图书馆系统文献的关键词信息映射到布隆滤波器中的哈希函数的个数;
54.本实施例中,步骤一中所述布隆滤波器位数采用公式确定,单位为bit;步骤一种所述哈希函数的个数采用公式确定;其中,m为布隆滤波器位数,k为哈希函数的个数,n为图书馆系统文献的关键词数量,p为布隆滤波器失误率。
55.本实施例中,步骤一中所述哈希函数包括非加密型哈希函数murmur hash。
56.具体实施时,还可以选择其他已有字符串哈希函数,如bkdrhash、aphash、djbhash、jshash、rshash、sdbmhash、pjwhash、elfhash等。
57.步骤二、对每本图书/文献,建立对应的布隆滤波器结构,作为其属性之一进行存储;
58.本实施例中,步骤二中所述对每本图书/文献,建立对应的布隆滤波器结构,作为其属性之一进行存储的具体方法为:将将每本图书/文献的每个关键词,用步骤一中的多个哈希函数分别哈希,并将该图书/文献所有关键词的哈希结果按位异或存储到该图书/文献对应的布隆滤波器结构中。
59.本实施例中,是将将每本图书/文献的每个关键词,用步骤一中的k个哈希函数分别哈希,每个哈希函数的哈希结果是m个bit。
60.步骤三、对每本图书/文献,根据布隆滤波器结构判断关联性最大的前n本图书/文献;其中,n的取值为非0自然数;
61.本实施例中,步骤三中所述对每本图书/文献,根据布隆滤波器结构判断关联性最大的前n本图书/文献的具体方法为:对某本图书/文献,将其布隆滤波器结构和其他图书/
文献的布隆滤波器结构依次进行按位异或操作,异或操作之后,布隆滤波器结构中1的个数作为两本图书/文献的相似度评判值,遍历所有图书/文献,找到相似度评判值最高的前n本图书/文献,作为该图书/文献的关联图书/文献。
62.本实施例中,所述n的取值为10~60的非0自然数。
63.本实施例中,步骤三中对每本图书/文献,根据布隆滤波器结构判断关联性最大的前n本图书/文献的逻辑伪代码为:
64.1)提取其布隆滤波器结构bfi;
65.2)初始化top n条目为空;
66.3)对每个其他图书/文献bookitemj;
67.a)提取其布隆滤波器结构bfi;
68.b)计算bfi与bfi的异或结果中1的个数,作为bookitemi与
69.bookitemj的相似度评判值;
70.c)与bookitemi的top n条目相似度评判值比较,更新bookitemi的top n条目;
71.得到bookitemi的top n关联图书/文献。
72.步骤四、从关联性最大的前n本图书/文献中,去除用户在时间段t内已借阅过的图书/文献。
73.本实施例中,步骤四中所述从关联性最大的前n本图书/文献中,去除用户在时间段t内已借阅过的图书/文献的具体方法为:
74.步骤401、用户每借阅过一本图书/文献,就将该图书/文献存储在已借阅数组中,且没隔时间段t清零一次;
75.步骤402、将已借阅数组中的图书/文献,分别通过hash函数计算形成多个哈希表;
76.本实施例中,hash函数采用与步骤一中相同的哈希函数;
77.步骤403、将关联性最大的前n本图书/文献进行hash函数计算得到计算结果;
78.步骤404、将步骤403中的计算结果与步骤402中的多个哈希表进行匹配,当匹配成功时,判断为图书/文献在时间段t内被用户借阅过,去除推荐;否则,当匹配不成功时,判断为图书/文献在时间段t内未被用户借阅过,继续推荐。
79.本实施例中,所述时间段t为1~6个月。
80.本实施例与实施例1相比,通过增加步骤四,去除用户在时间段t内已借阅过的图书/文献,除了具有实施例1中方法的优点外,能够进一步为用户提供更好更优质的推荐服务,节省用于查看之前重复看过的图书/文献的时间。
81.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
82.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
83.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
84.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
85.前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
再多了解一些

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

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

相关文献