具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
如图1所示,本实施例提供了一种书籍的推荐方法的一个实施例,包括步骤:
S10根据每位读者的阅读行为数据,统计出所有读者的阅读行为总数据后,得到阅读参考总数据;所述阅读行为数据包括每位读者所阅读的书籍、每种书籍的阅读次数;
S20根据所述阅读参考总数据以及每位读者的阅读行为,得到每位读者各自对应的阅读参考数据;
S30分别计算出当前读者的阅读参考数据与其他读者的阅读参考数据之间的相似度;
S40根据计算出的相似度,在所述其他读者中找到一位读者作为推荐读者;
S50将所述推荐读者对应的阅读行为数据推荐给所述当前读者。
具体的,可以通过大数据技术,在互联网上采集每位读者的阅读行为数据,包括每位读者所阅读的书籍和该书籍阅读的次数,由此统计出所有读者的阅读行为总数据,得到阅读参考总数据,即统计得到的所有读者所看的书籍,以及每种书籍对应的阅读量;之后,根据所述阅读参考总数据以及每位读者阅读的书籍,得到每位读者各自对应的阅读参考数据;之后,可以计算出当前读者的阅读参考数据和其他读者的阅读参考数据之间的相似度,根据计算出的相似度,在所述其他读者中找到一位读者作为推荐读者,并将所述推荐读者对应的阅读行为数据推荐给所述当前读者。通过本实施例提供的一种书籍的推荐方法,能够通过采集读者的阅读行为,运用大数据,计算得到与读者阅读行为相似的其他读者,并给读者推送其他读者阅读的书籍。
如图2所示,本实施例提供了一种书籍的推荐方法的另一个实施例,包括步骤:
S101采集每位读者的阅读行为数据,将所述阅读行为数据中的书籍储存在书籍库中,并统计每一种书籍的阅读量;
S102将所述书籍库中的书籍信息分为N类,并统计得到每一类书籍中阅读量最高的书籍;
S103将每一类书籍中阅读量最高的书籍,以及每一类书籍中阅读量最高的书籍所对应的阅读量作为所述阅读参考总数据;
S20根据所述阅读参考总数据以及每位读者的阅读行为,得到每位读者各自对应的阅读参考数据;
S30分别计算出当前读者的阅读参考数据与其他读者的阅读参考数据之间的相似度;
S40根据计算出的相似度,在所述其他读者中找到一位读者作为推荐读者;
S50将所述推荐读者对应的阅读行为数据推荐给所述当前读者。
具体的,在本实施例中,具体说明了所述的阅读参考总数据是如何采集得到的。首先采集每位读者的阅读行为数据,包括读者阅读过的书籍和该书籍的阅读量,之后将所述阅读行为数据中的书籍储存在书籍库中,并统计每一种书籍的阅读量;将所述书籍库中的书籍信息分为N类,具体的分类方法可以按照书籍馆的分类方法来进行分类;之后统计得到每一类书籍中阅读量最高的书籍;将每一类书籍中阅读量最高的书籍,以及每一类书籍中阅读量最高的书籍所对应的阅读量作为所述的阅读参考总数据。如可以将书籍库中的书籍信息分为A、B、C三类,统计得到A类书籍中a1这本书时其中阅读量最高的书籍,其阅读量为100万次,即本实施例所述的阅读参考总数据。
之后,根据所述阅读参考总数据以及每位读者所阅读的书籍,得到每位读者各自对应的阅读参考数据;分别计算出当前读者的阅读参考数据与其他读者的阅读参考数据之间的相似度;根据计算出的相似度,在所述其他读者中找到一位和当前读者的阅读行为最为相似的读者作为推荐读者,并将所述推荐读者对应的阅读行为数据推荐给所述当前读者。
如图3所示,本实施例提供了一种书籍的推荐方法的另一个实施例,包括步骤:
S101采集每位读者的阅读行为数据,将所述阅读行为数据中的书籍储存在书籍库中,并统计每一种书籍的阅读量;
S102将所述书籍库中的书籍信息分为N类,并统计得到每一类书籍中阅读量最高的书籍;
S103将每一类书籍中阅读量最高的书籍,以及每一类书籍中阅读量最高的书籍所对应的阅读量作为所述阅读参考总数据;
S201根据每一类书籍中阅读量最高的书籍、每一类书籍中阅读量最高的书籍所对应的阅读量,以及每位读者所阅读的书籍,得到每位读者阅读每一类书籍的阅读参考量作为所述阅读参考数据;
S30分别计算出当前读者的阅读参考数据与其他读者的阅读参考数据之间的相似度;
S40根据计算出的相似度,在所述其他读者中找到一位读者作为推荐读者;
S50将所述推荐读者对应的阅读行为数据推荐给所述当前读者。
具体的,在本实施中,采用大数据技术,能够采集每位读者的阅读行为数据,包括读者阅读过的书籍和该书籍的阅读量,之后将采集到的书籍储存在书籍库中,并统计每一种书籍的阅读量;之后,将所述书籍库中的书籍信息分为N类,如地理类A、历史类B、数学类C、等等,并根据N类书籍建立N维坐标系,每一类书籍代表一个维度。
根据采集到的每一类书籍中阅读量最高的书籍、每一类书籍中阅读量最高的书籍所对应的阅读量,以及每位读者所阅读的书籍,得到每位读者阅读每一类书籍的阅读参考量作为所述阅读参考数据;将每位读者阅读的每一类书籍对应的阅读参考量作为每位读者在N维坐标系中该类书籍对应维度的坐标系值。比如书籍a1、b1、c1是对应的A类、B类、C类书籍中阅读量最大的书籍,当前读者阅读了b1这本书2次,没有阅读a1、c1两本书籍,会得到A类、B类、C类书籍对应的阅读参考量,在A类、B类、C类书籍对应的坐标维度上,会得到相应的坐标值。由上述方法还可得到其他类别书籍对应的维度的坐标,从而得到当前读者在N维坐标系中的坐标值。
分别计算出当前读者的阅读参考数据与其他读者的阅读参考数据之间的相似度;根据计算出的相似度,在所述其他读者中找到一位最为相似的读者作为推荐读者;将所述推荐读者对应的阅读行为数据推荐给所述当前读者。
如图4所示,本实施例提供了一种书籍的推荐方法的另一个实施例,包括步骤:
S101采集每位读者的阅读行为数据,将所述阅读行为数据中的书籍储存在书籍库中,并统计每一种书籍的阅读量;
S102将所述书籍库中的书籍信息分为N类,并统计得到每一类书籍中阅读量最高的书籍;
S103将每一类书籍中阅读量最高的书籍,以及每一类书籍中阅读量最高的书籍所对应的阅读量作为所述阅读参考总数据;
S2011查找出每位读者所阅读的书籍中,是否存在与每一类书籍中阅读量最高的书籍相同的书籍;
S2012若存在,则将该类书籍中阅读量最高的书籍所对应的阅读量作为该位读者阅读该类书籍的阅读参考量;
S2013若不存在,则将该位读者阅读该类书籍的阅读参考量标记为0;
S30分别计算出当前读者的阅读参考数据与其他读者的阅读参考数据之间的相似度;
S40根据计算出的相似度,在所述其他读者中找到一位读者作为推荐读者;
S50将所述推荐读者对应的阅读行为数据推荐给所述当前读者。
在本实施例中,具体阐述了阅读参考数据是如何取值的,由于将书籍分成了N类,并根据此N类书籍建立了N维的坐标系,每一类别的书籍都对应一个维度,每位读者在该坐标系中都有相应的坐标,即步骤S30中所述的阅读参考数据。
每位读者在该坐标系中的坐标具体取值方式为:查找出每位读者所阅读的书籍中,是否存在与每一类书籍中阅读量最高的书籍相同的书籍;若存在,则将该类书籍中阅读量最高的书籍所对应的阅读量作为该位读者阅读该类书籍的阅读参考量;若不存在,则将该位读者阅读该类书籍的阅读参考量标记为0。
例如,在分类时,将书籍分为A、B、C三类,并统计得到A、B、C三类中阅读量最高的书籍a2、b2、c2,其中a2的阅读量为20万次、b2的阅读量为50万次、c2的阅读量为70万次,所述的阅读参考总数据即为书籍a2、b2、c2以及他们对应的阅读量。查找每位读者查找出每位读者所阅读的书籍中时,查找到当前读者读过书籍a2和书籍c2,存在与A类、C类书籍中阅读量最高的书籍a2和c2相同的书籍,因此,将该读者的阅读书籍a2的阅读参考量标记为20万,将阅读书籍c2的阅读参考量标记为70万,将阅读书籍b2的阅读参考量标记为0。根据分出的三类书籍,建立三维坐标系,A、B、C三类书籍分别代表一个维度,将每位读者阅读的每一类书籍对应的阅读参考量作为每位读者在该三维坐标系中该类书籍对应维度的坐标系值,即得到当前读者在该三维坐标系中的坐标为(20w,0,70w)。
优选的,查找每位读者查找出每位读者所阅读的书籍中时,查找到当前读者读过书籍a2和书籍c2,存在与A类、C类书籍中阅读量最高的书籍a2和c2相同的书籍,则可以将该读者的阅读书籍a2的阅读参考量标记为1,同理,将阅读书籍c2的阅读参考量标记为1,将阅读书籍b2的阅读参考量标记为0。根据分出的三类书籍,建立三维坐标系,A、B、C三类书籍分别代表一个维度,将每位读者阅读的每一类书籍对应的阅读参考量作为每位读者在该三维坐标系中该类书籍对应维度的坐标系值,即得到当前读者在该三维坐标系中的坐标为(1,0,1)。
通过上述的方法,也能计算得到其他读者在该三维坐标系中的坐标,通过当前读者和其他读者在该三维坐标系中的坐标关系,能够计算的到他们之间的相似度,根据计算出的相似度,在所述其他读者中找到一位阅读行为最相思的读者作为推荐读者;将所述推荐读者对应的阅读行为数据推荐给所述当前读者。
如图5所示,本实施例提供了一种书籍的推荐方法的另一个实施例,包括步骤:
S101采集每位读者的阅读行为数据,将所述阅读行为数据中的书籍储存在书籍库中,并统计每一种书籍的阅读量;
S102将所述书籍库中的书籍信息分为N类,并统计得到每一类书籍中阅读量最高的书籍;
S103将每一类书籍中阅读量最高的书籍,以及每一类书籍中阅读量最高的书籍所对应的阅读量作为所述阅读参考总数据;
S2011查找出每位读者所阅读的书籍中,是否存在与每一类书籍中阅读量最高的书籍相同的书籍;
S2012若存在,则将该类书籍中阅读量最高的书籍所对应的阅读量作为该位读者阅读该类书籍的阅读参考量;
S2013若不存在,则将该位读者阅读该类书籍的阅读参考量标记为0;
S301根据所述书籍库中的N类书籍,建立N维坐标系,每一类书籍代表一个维度;
S302将每位读者阅读的每一类书籍对应的阅读参考量作为每位读者在N维坐标系中该类书籍对应维度的坐标系值。
S301根据当前读者在N维坐标系中的坐标系值与其他读者在N维坐标系中的坐标系值,计算出当前读者坐标系与其他读者坐标系的曼哈顿距离D作为相似度的参考标准,其计算公式为:
其中,X1k=(X11,X12...X1k)表示当前读者在N维坐标系中的坐标系,X2k=(X21,X22...X2k)表示其他读者中的其中一个读者在N维坐标系中的坐标系。
S401根据当前读者与其他读者之间的多个曼哈顿距离,找到多个曼哈顿距离中最小的最小曼哈顿距离;
S402找到所述最小曼哈顿距离对应的读者作为推荐读者。
S50将所述推荐读者对应的阅读行为数据推荐给所述当前读者;
优选的,S51根据所述推荐读者的阅读行为数据和所述当前读者的阅读行为数据,得到存在于推荐读者的阅读行为数据中、且不存在于当前读者的阅读行为数据中的数据;并将该数据推荐给所述当前读者。
具体的,在本实施例中,具体描述了如何计算读者之间的阅读参考书籍的相似度,如上个实施例所述的,可以得到当前读者在坐标系中的坐标为(20w,0,70w),假如计算得到另外两个读者的坐标为(20w,50W,0)、(0,50W,0),可以通过公式计算得到当前读者与第一个读者之间的曼哈顿距离为120w,与第一个读者的曼哈顿距离为140w。由于曼哈顿距离越小,两者间的相似程度越高,因此,当前读者与第一个读者的相似程度就高于与第二个读者的相似程度。由此方法,可以计算得到当前读者与其他所有读者的曼哈顿距离,其中,计算出来的最小的曼哈顿距离所对应的读者,即为与当前读者的阅读行为数据最为相似的读者。
找到相似度最大的读者之后,将所述推荐读者对应的阅读行为数据推荐给所述当前读者,比如找到的最相似的读者就是上述的第一个读者,就会将第一个读者所阅读的书籍推荐给当前读者,或者将第一个读者阅读过的书籍,而当前读者没有阅读的书籍推荐给当前读者。
当然上述只列举的在三维坐标系中的一个例子,在大数据时代,可以将所有的书籍分为很多类,分的越精细,所推荐的书籍就越能满足读者的需求。除了上述的实施例以外,还可以将书籍分为N类,通过大数据统计人们在每一类中所阅读的书籍,以及每本书籍的阅读量,将每一类中所阅读书籍的阅读量总和即为读者在此类书籍对应维度的坐标值,比如读者在历史类这一类别看过中国近代史2次,看过世界历史1次,可以将读者在历史类这个维度的坐标记为3。同样的,可以以这种方式标记在其他维度的坐标,得到在N维坐标系的坐标,其他的读者也可以得到N维坐标系的坐标,由此也可以通过曼哈顿距离计算出读者之间的相似度。在找到最相思的读者之后,将推荐读者所看过的所有的书籍都推荐给当前读者,或者将当前读者没有看过的书籍推荐给当前读者。
本实施例提供了一种书籍的推荐方法的另一个实施例,包括:
S1:对书籍库中的书籍分成N种类;
S2:从每一种类中筛选出阅读量最高的书籍(阅读量:定义为点击并看了一定章节,如果只有点击没有阅读不算阅读量),得到N个阅读量最高的书籍,每个代表一个书籍种类;
S3:将以上N个阅读量最高的书籍定义为N维向量空间的坐标值;
S4:将当前阅读读者阅读以上N本书籍的阅读行为定位为N维向量空间中各坐标的值;
S5:计算N维向量空间的读者与其他读者间的曼哈顿距离,找出最相似的阅读者。如:二维平面两点a(x1,y1)与b(x2,y2)间的曼哈顿距离为:
d12=|x1-x2|+|y1-y2|
两个N维向量a(x11,x12,…,x1n)与b(x21,x22,…,x2n)间的曼哈顿距离为:
S6:根据以上的计算结果,找出相似度最大的读者,根据相似度最大的读者的阅读行为给当前读者推荐书籍。
具体的,在本实施例中,首先将书籍库中的书籍分成N种类,通过大数据技术从每一种类中筛选出阅读量最高的书籍,得到N个阅读量最高的书籍,每个代表一个书籍种类;将当前阅读读者阅读以上N本书籍的阅读行为定位为N维向量空间中各坐标的值,若读者看了其中某一本书,则将此读者在此书籍对应维度的坐标记为此书籍的阅读量,若读者没有看;其次,计算N维向量空间的读者与其他读者间的曼哈顿距离,由于计算出来的曼哈顿距离越小,其相似度越大,则根据以上的计算结果,找出相似度最大的读者,根据相似度最大的读者的阅读行为给当前读者推荐书籍。
如图6所示,本实施例提供了一种书籍的推荐系统的一个实施例,包括:
统计模块,根据每位读者的阅读行为数据,统计出所有读者的阅读行为总数据后,得到阅读参考总数据;所述阅读行为数据包括每位读者所阅读的书籍、每种书籍的阅读次数;
处理模块,与所述统计模块电连接,用于根据所述阅读参考总数据以及每位读者的阅读行为,得到每位读者各自对应的阅读参考数据;
计算模块,用于分别计算出当前读者的阅读参考数据与其他读者的阅读参考数据之间的相似度;
查找模块,与所述计算模块电连接,用于根据计算出的相似度,在所述其他读者中找到一位读者作为推荐读者;
推荐模块,与所述查找模块电连接,用于将所述推荐读者对应的阅读行为数据推荐给所述当前读者。
具体的,统计模块可以运用大数据技术,在互联网上统计每位读者的阅读行为数据,包括每位读者所阅读的书籍和该书籍阅读的次数,如统计到的第一位读者阅读了a1这本书1次,b1这本书2次,c1这本书0次,统计到的第二位读者阅读了a1这本书0次,b1这本书1次,c1这本书1次,第三位读者的阅读书籍等等;由此统计出所有读者的阅读行为总数据,得到阅读参考总数据,如a1这本书阅读量为20万次,b1这本书阅读量为50万次,c1这本书阅读量为70万次,即统计得到的所有读者所看的书籍,以及每种书籍对应的阅读量;然后,根据所述阅读参考总数据以及每位读者阅读的书籍及该书籍阅读量,得到每位读者各自对应的阅读参考数据;之后,可以计算出当前读者的阅读参考数据和其他读者的阅读参考数据之间的相似度,根据计算出的相似度,在所述其他读者中找到一位读者作为推荐读者,并将所述推荐读者对应的阅读行为数据推荐给所述当前读者。通过本实施例提供的一种书籍的推荐方法,能够通过采集读者的阅读行为,运用大数据,计算得到与读者阅读行为相似的其他读者,并给读者推送其他读者阅读的书籍。
如图7所示,本实施例提供了一种书籍的推荐系统的一个实施例,包括:
统计模块,根据每位读者的阅读行为数据,统计出所有读者的阅读行为总数据后,得到阅读参考总数据;所述阅读行为数据包括每位读者所阅读的书籍、每种书籍的阅读次数;
处理模块,与所述统计模块电连接,用于根据所述阅读参考总数据以及每位读者的阅读行为,得到每位读者各自对应的阅读参考数据;
计算模块,用于分别计算出当前读者的阅读参考数据与其他读者的阅读参考数据之间的相似度;
查找模块,与所述计算模块电连接,用于根据计算出的相似度,在所述其他读者中找到一位读者作为推荐读者;
推荐模块,与所述查找模块电连接,用于将所述推荐读者对应的阅读行为数据推荐给所述当前读者;
还包括采集模块,采集每位读者的阅读行为数据,将所述阅读行为数据中的书籍储存在书籍库中,并统计每一种书籍的阅读量;
统计模块还用于将所述书籍库中的书籍信息分为N类,并统计得到每一类书籍中阅读量最高的书籍;
处理模块还用于将每一类书籍中阅读量最高的书籍,以及每一类书籍中阅读量最高的书籍所对应的阅读量作为所述阅读参考总数据;
处理模块还用于根据每一类书籍中阅读量最高的书籍、每一类书籍中阅读量最高的书籍所对应的阅读量,以及每位读者所阅读的书籍,得到每位读者阅读每一类书籍的阅读参考数量作为所述阅读参考数据;
还包括查找模块,用于查找出每位读者所阅读的书籍中,是否存在与每一类书籍中阅读量最高的书籍相同的书籍;若存在,则将该类书籍中阅读量最高的书籍所对应的阅读量作为该位读者阅读该类书籍的阅读参考量;若不存在,则将该位读者阅读该类书籍的阅读参考量标记为0;
构建模块,根据所述书籍库中的N类书籍,建立N维坐标系,每一类书籍代表一个维度;
处理模块还用于将每位读者阅读每一类书籍对应的阅读参考量作为每位读者在N维坐标系中一个维度的坐标系值;
计算模块还用于根据当前读者在N维坐标系中的坐标系值与其他读者在N维坐标系中的坐标系值,计算出当前读者坐标系与其他读者坐标系的曼哈顿距离D作为相似度的参考标准,其计算公式为:
所述X1k表示当前读者在N维坐标系中的坐标系(X11,X12...X1k),X2k表示其他读者中的其中一个读者在N维坐标系中的坐标系(X21,X22...X2k);
查找模块还用于根据当前读者与其他读者之间的多个曼哈顿距离,找到多个曼哈顿距离中最小的最小曼哈顿距离;找到所述最小曼哈顿距离对应的读者作为推荐读者。
具体的,在本实施例中,具体说明了所述的阅读参考总数据时如何采集得到的。首先采集每位读者的阅读行为数据,包括读者阅读过的书籍和该书籍的阅读量,如统计到第一读者读的书籍为a1、b2、c2,其阅读的次数分别为2次、1次、1次;第二读者读的书籍为a1、b3、c3,其阅读的次数分别为1次、1次、3次;第三读者读的书籍为a2、b2、c3,其阅读的次数分别为1次、2次、2次。
之后将所述阅读行为数据中的书籍储存在书籍库中,并统计每一种书籍的阅读量;因此可以统计得到a1阅读次数3次,a2阅读次数1次,b2阅读次数3次,b3阅读次数1次,c2阅读次数1次,c3阅读次数5次。
将所述书籍库中的书籍信息分为N类,具体的分类方法可以按照书籍馆的分类方法来进行分类,如分为A、B、C三类;之后统计得到每一类书籍中阅读量最高的书籍,如A类书籍中阅读量最高的书籍为a1,B类书籍阅读量最高的书籍为b2,C类书籍中阅读量最高的书籍为c3;将每一类书籍中阅读量最高的书籍,以及每一类书籍中阅读量最高的书籍所对应的阅读量作为所述的阅读参考总数据。
之后,根据所述阅读参考总数据以及每位读者所阅读的书籍,得到每位读者各自对应的阅读参考数据;在过的每位读者各自对应的阅读参考数据的时候,需要根据书籍的分类建立坐标系,在本实施例中,将书籍分为了A、B、C三类,因此建立三维坐标系,每一类书籍对应一个维度。
然后查找出每位读者所阅读的书籍中,是否存在与每一类书籍中阅读量最高的书籍相同的书籍;若存在,则将该类书籍中阅读量最高的书籍所对应的阅读量作为该位读者阅读该类书籍的阅读参考量;若不存在,则将该位读者阅读该类书籍的阅读参考量标记为0。在本实施例中,第一读者阅读了a1、b2、c2三本书,其中a1是A类书籍中阅读量最高的书籍,b2不是B类书籍中阅读量最高的书籍、c2不是C类书籍中阅读量最高的书籍,因此第一读者在三维坐标系中的坐标为(3,0,0),同理,可以得到第二读者在三维坐标系中的坐标为(3,0,5),第三读者在三维坐标系中的坐标为(0,3,5)。
通过曼哈顿距离计算相似度的方法,可以分别计算出当前读者的阅读参考数据与其他读者的阅读参考数据之间的相似度;在本实施例中,可以算出第一读者与第二读者之间的曼哈顿距离为5,第一读者与第三读者之间的曼哈顿距离为11,第二读者与第三读者之间的曼哈顿距离为6。由此可以得到第一读者和第二读者之间的曼哈顿距离是最小的,也就是最近似的,若是第一读者需要找寻最相似的读者,那么第二读者就是第一读者最相似的读者;若是第三读者需要找寻最相似的读者,那么第二读者与第三读者的曼哈顿距离最小,也就是第三读者最相似的读者。
根据计算出的相似度,找到和当前读者的阅读行为最为相似的读者作为推荐读者,并将所述推荐读者对应的阅读行为数据推荐给所述当前读者;或者将第一个读者阅读过的书籍,而当前读者没有阅读的书籍推荐给当前读者。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。