CN111881354A - 内容推荐方法、装置、电子设备及介质 - Google Patents
内容推荐方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN111881354A CN111881354A CN202010737268.9A CN202010737268A CN111881354A CN 111881354 A CN111881354 A CN 111881354A CN 202010737268 A CN202010737268 A CN 202010737268A CN 111881354 A CN111881354 A CN 111881354A
- Authority
- CN
- China
- Prior art keywords
- document
- search
- character string
- index
- documents
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000011218 segmentation Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 15
- 230000002441 reversible effect Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000007405 data analysis Methods 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 7
- 238000007418 data mining Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 210000003746 feather Anatomy 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000013077 scoring method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Finance (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种内容推荐方法、装置、电子设备及介质,涉及数据分析技术,其中方法包括:获取搜索记录数据,所述搜索记录数据包括用户的搜索内容和所述搜索内容对应的浏览产品;获取所述浏览产品的产品信息,将所述搜索内容和所述产品信息拼接为目标字符串;通过所述目标字符串在预设倒排索引中进行匹配,获得所述预设倒排索引中的文档的评分,根据所述文档的评分确定推荐内容,可以更快捷进行数据索引,以实现针对性的内容推荐。
Description
技术领域
本申请涉及数据分析领域,尤其涉及一种内容推荐方法、装置、电子设备及介质。
背景技术
随着互联网内容的不断扩大,内容个数和种类快速增长,用户从大量无关的信息中发现感兴趣的内容越来越困难。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品,因而可以让用户更方便的发现内容、提高用户体验、增强网站粘性。
目前所应用到的推荐系统实现,通常需要分析每一个用户的历史行为数据、挖掘用户的兴趣偏好数据,并且一般都会使用多种算法进行互相配合,取长补短。在完整的推荐系统中,不仅有传统的Rating推荐(通过预测用户对物品评分的方式),还需要辅以非常多的挖掘、排名(top n问题,尝试找出用户可能最感兴趣的n个物品)来达到预期效果。对于这些推荐系统实现,需要大量的数据通过数据挖掘算法、大量的服务器投入,高质量的人力投入,实现的成本很高。
发明内容
本申请实施例提供一种内容推荐方法、装置、电子设备及存储介质。
第一方面,本申请实施例提供了一种内容推荐方法,所述方法包括:
获取搜索记录数据,所述搜索记录数据包括用户的搜索内容和所述搜索内容对应的浏览产品;
获取所述浏览产品的产品信息,将所述搜索内容和所述产品信息拼接为目标字符串;
通过所述目标字符串在预设倒排索引中进行匹配,获得所述预设倒排索引中的文档的评分,根据所述文档的评分确定推荐内容。
作为一种可能的实施方式,所述通过所述目标字符串在预设倒排索引中进行匹配,获得所述预设倒排索引中的文档的评分,包括:
对所述目标字符串进行分词处理,获得所述目标字符串的多个搜索项;
根据所述目标字符串和所述多个搜索项,以及所述预设倒排索引中的文档,分别获得所述多个搜索项的评分;
将所述多个搜索项的评分相加获得所述预设倒排索引中的文档的评分。
作为一种可能的实施方式,所述根据所述目标字符串和所述多个搜索项,以及所述预设倒排索引中的文档,分别获得所述多个搜索项的评分,包括:
在所述预设倒排索引中的文档中搜索所述多个搜索项中每个搜索项,确定所述每个搜索项对应的频数和逆文本频率指数,其中,所述频数表示所述搜索项在所述文档中出现的次数,所述逆文本频率指数表示所述文档中出现所述搜索项的文档数;
根据所述每个搜索项的频数和所述每个搜索项的逆文本频率指数,分别获得所述多个搜索项的评分。
作为一种可能的实施方式,所述根据所述文档的评分确定推荐内容,包括:
将所述评分最高的前N个文档所对应的产品确定为推荐产品,所述N为正整数;
所述方法还包括:输出所述推荐产品的产品信息。
作为一种可能的实施方式,所述方法还包括:
根据所述产品的产品信息生成匹配字符串;
通过目标字符串和所述匹配字符串在所述预设倒排索引中进行匹配,获得所述预设倒排索引中的文档的评分,根据所述文档的评分确定推荐内容。
作为一种可能的实施方式,所述获取搜索记录数据之前,所述方法还包括:
获取输入的产品数据,所述产品数据包括产品名称和产品信息;
对所述产品数据进行分词处理,建立所述预设倒排索引。
作为一种可能的实施方式,所述对所述产品数据进行分词处理,建立所述预设倒排索引包括:
配置分词器;
获取目录路径,根据所述目录路径获取存储索引的目录;
基于所述分词器对所述产品数据进行分词,并创建包括内容、文件名和文件路径的文档,根据所述文档在所述目录下创建索引。
第二方面,本申请实施例提供了一种内容推荐装置,包括:
获取模块,用于获取搜索记录数据,所述搜索记录数据包括用户的搜索内容和所述搜索内容对应的产品;
所述获取模块还用于,获取所述产品的产品信息;
字符处理模块,用于将所述搜索内容和所述产品信息拼接为目标字符串;
索引模块,用于通过所述目标字符串在预设倒排索引中进行匹配,获得所述预设倒排索引中的文档的评分,根据所述文档的评分确定推荐内容。
第三方面,本申请实施例还提供了一种电子设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面及其任一种可能的实施方式所述的方法。
第四方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面及其任一种可能的实施方式的方法。
本申请实施例通过获取搜索记录数据,上述搜索记录数据包括用户的搜索内容和上述搜索内容对应的产品,获取上述产品的产品信息,将上述搜索内容和上述产品信息拼接为目标字符串,通过上述目标字符串在预设倒排索引中进行匹配,获得上述预设倒排索引中的文档的评分,根据上述文档的评分确定推荐内容,实现该方法的预设倒排索引架构简单,内存要求较小,与一般的推荐系统相比,不需要大量的数据和数据挖掘算法、大量的服务器投入和高质量的人力投入,可以快捷进行数据索引,以实现针对性的内容推荐,降低成本。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种内容推荐方法的流程示意图;
图2是本申请实施例提供的一种正排表结构示意图;
图3是本申请实施例提供的一种倒排表结构示意图;
图4是本申请实施例提供的一种建立倒排索引流程示意图;
图5是本申请实施例提供的另一种内容推荐方法的流程示意图;
图6是本申请实施例提供的一种内容推荐装置的结构示意图;
图7是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
本申请实施例涉及到的Lucene是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
为了能够更好地理解本申请实施例,下面将对应用本申请实施例的方法进行介绍。
本申请实施例中提到的电子设备可以为终端设备,是可以与服务器进行通信的设备,本申请实施例中的服务器也称伺服器,是提供计算服务的设备,可以允许多个终端设备进行访问。上述终端设备包括但不限于台式计算机、移动终端,上述移动终端可包括各种具有无线通信功能的手持设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS)等等。
请参见图1,是本申请实施例提供的一种内容推荐方法的示意流程图,如图1所示该方法可包括:
101、获取搜索记录数据,上述搜索记录数据包括用户的搜索内容和上述搜索内容对应的浏览产品。
本申请实施例中的执行主体可以为一种内容推荐装置,具体可以为上述电子设备。可以先通过录入的数据或信息建立索引,用于推荐系统的搜索匹配。
推荐系统是利用电子商务网站向客户提供产品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和产品。
本申请实施例主要描述通过预设倒排索引进行搜索匹配和内容推荐的应用过程。具体的,可以在数据库中建立搜索历史记录表,按时间排序记录用户的搜索历史纪录。其中,用户的搜索内容为用户输入的待查询的搜索内容,比如用户需要查询的产品名称、简称、用途或者品牌等一种或多种信息,此处不做限制;上述搜索内容对应的浏览产品,指的是在该搜索内容的条件下,用户浏览的产品,用户可以在搜索后展示产品的页面中选择产品,发生浏览行为。
在每一次获得上述搜索记录数据的情况下,都可以根据该搜索记录数据为用户推荐相关产品信息,具体可以执行步骤102。
在一种实施方式中,上述步骤101之前,上述方法还包括:
获取输入的产品数据,上述产品数据包括产品名称和产品信息;
对上述产品数据进行分词处理,建立上述预设倒排索引。
具体的,此处介绍索引建立方法。上述输入的产品数据可以是推荐系统提供的全部产品数据,这些产品是可被推荐给用户的待选产品。
可选的,上述产品信息可以包括一个或者多个关键词。可以预先在数据库中录入多个产品的基本信息、相关信息,如书籍的名称、类别、作者、书名;之后可以根据需要再给该产品添加5-10个关键词。可以使用Lucene对所有的产品信息进行中文分词,并且建立倒排索引。
搜索引擎通常检索的场景是:给定几个关键词,找出包含关键词的文档。怎么快速找到包含某个关键词的文档就成为搜索的关键。本申请实施例可借助一种单词-文档矩阵模型,通过该模型可以快速查找到某篇文档包含哪些关键词,某个关键词被哪些文档所包含。上述单词-文档矩阵的具体数据结构可以是倒排索引、签名文件、后缀树等。
首先介绍一般的正排表,是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。
如图2所示的一种正排表结构示意图,文档后的word表示关键字。这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除。但是在查询的时候需对所有的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下。
如图3所示的一种倒排表结构示意图,word表示对应文档的关键字。本申请实施例涉及到的倒排表以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况。由于每个字或词对应的文档数量在动态变化,所以倒排表的建立和维护都较为复杂,但是在查询的时候由于可以一次得到查询关键字所对应的所有文档,所以效率高于正排表。在全文检索中,检索的快速响应是一个最为关键的性能,而索引建立由于在后台进行,尽管效率相对低一些,但不会影响整个搜索引擎的效率。
倒排索引源于实际应用中需要根据属性的值来查找记录,Lucene是基于倒排索引实现的,该索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(invertedindex)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。
为了更清楚地描述本申请实施例中的内容推荐方法,首先对建立索引的方式进行介绍。在一种可选的实施方式中,上述对上述产品数据进行分词处理,建立上述预设倒排索引包括:
(1)配置分词器;
(2)获取目录路径,根据上述目录路径获取存储索引的目录;
(3)基于上述分词器对上述产品数据进行分词,并创建包括内容、文件名和文件路径的文档,根据上述文档在上述目录下创建索引。
具体的,上述建立过程可以基于代码实现。上述分词器的配置可以是,首先一个创建中文分词器,根据路径获取存储索引的目录,再创建写入索引配置器,并将其设为上述中文分词器。再创建索引,创建文档。在文档中添加内容;添加文件名,并把文件名字段存到索引文件里,以及添加文件路径。最后可以提交索引创建,并将其保存在本地设置的目录。
可以参见图4所示的一种建立倒排索引流程示意图,该流程是基于程序(代码)实现的,其中主要包括:
通过Analyzer方式创建中文分词器;通过Directory指定索引存放的位置;
通过IndexWriterConfig方式装载配置信息:创建写入索引配置器,并将其设为上述Analyzer方式创建的中文分词器;
通过IndexWriter方式创建和维护索引。在使用前述数据创建索引时:
通过Document创建文档;添加内容、添加文件名,并把这个字段存到索引文件里,以及添加文件路径;
提交索引创建,并将其保存在本地设置的目录。
102、获取上述浏览产品的产品信息,将上述搜索内容和上述产品信息拼接为目标字符串。
具体的,在确定发生浏览行为的情况下,可以获取浏览产品的产品信息,再将各个搜索内容和对应的浏览产品的产品信息拼接成一个字符串,用于搜索处理。
可选的,可以将用户的搜索内容和浏览产品的产品信息拼接为第一字符串;
获取字符串长度阈值,若上述第一字符串大于上述字符串长度阈值,保留上述第一字符串中字符串长度阈值的目标字符串。
通过上述步骤可以预设字符串长度阈值,限制拼接的字符串长度,避免信息过长,提高搜索时的处理速度。本申请实施例中使用Lucene的检索机制可以不用考虑字符长度的限制,长度过长也是能通过查询。如果考虑到用户的时间相关性和用户搜索频率,可以限制拼接的字符串长度。
可选的,上述搜索记录数据可以是定期清除的,比如只保留半年内的前30项搜索历史纪录。将拼接获得的目标字符串用到步骤103作为搜索匹配的相关值,可以得到用户最近最感兴趣的商品推荐。
103、通过上述目标字符串在预设倒排索引中进行搜索处理,获得多个搜索项的评分,根据上述多个搜索项的评分确定推荐内容。
具体的,可以按照评分分值的高低,将内容推荐给用户,比如推荐评分最高或者评分top N的产品,实现一个建议便捷的推荐系统。
本申请实施例中可使用词频算法计算搜索项评分。Lucene的评分可以使用TF/IDF算法,简单快速,结果比较符合实际情况。TF-IDF(term frequency–inverse documentfrequency)是一种用于信息检索与数据挖掘的常用加权技术。TF是词频(TermFrequency),IDF是逆文本频率指数(Inverse Document Frequency)。一般的,单纯以“词频”衡量一个词的重要性,不够全面,有时重要的词可能出现次数并不多。但在本申请中可以通过区分产品标名称(标题)、关键字、简介(在匹配字符串中)等不同的权值,来提高准确性。即可选的,该方法还包括:
根据上述产品的产品信息生成匹配字符串;
通过目标字符串和上述匹配字符串在上述预设倒排索引中进行匹配,获得上述预设倒排索引中的文档的评分,根据上述文档的评分确定推荐内容。
上述产品信息指的是在该搜索内容的条件下,用户浏览的产品的产品信息,即可以是该产品的一些说明、简介等。以书籍产品为例,可以把用户当前浏览的书籍的信息(可包括书籍名、作者、简介、录入书本的关键词等)也组装成一个匹配字符串,并通过步骤103中的评分方式进行相关性匹配,所匹配出的书本结果就是和正在浏览的书籍最相似的书籍,实现类似商品推荐。
上述索引匹配和评分的步骤还可以参考图2所示实施例中的具体描述。
在确定推荐内容之后,可以输出该推荐内容。可选的,可以在页面中显示推荐产品的产品信息,用户可以查看相关推荐内容,本申请实施例对推荐内容的输出形式不做限制。
目前现应用到的推荐系统实现有如下的一些方法:
1、用户行为挖掘模块。主要是分析每一个用户的历史行为数据,包括点击、浏览、搜索、评论、交易等,挖掘用户的兴趣偏好数据,包括偏好的物品列表、物品类别、物品标签等;
2、离线推荐。使用基于内容的推荐、协同过滤、矩阵分解、热门补足等多种推荐算法;
3、实时模块。高并发实时响应业务层各种应用的推荐请求,并快速响应用户复杂行为操作;
4、推荐效果评估。推荐系统有多种量化指标,根据实际业务而定,包括点击通过率(Click-Through-Rate,CTR)、收入、转化率等。
对于这些推荐系统实现,需要大量的数据通过数据挖掘算法,需要大量的服务器投入,高质量的人力投入,实现的成本很高。
本申请实施例通过获取搜索记录数据,上述搜索记录数据包括用户的搜索内容和上述搜索内容对应的产品,获取上述产品的产品信息,将上述搜索内容和上述产品信息拼接为目标字符串,通过上述目标字符串在预设倒排索引中进行匹配,获得上述预设倒排索引中的文档的评分,根据上述文档的评分确定推荐内容,实现内容推荐,其中预设倒排索引架构简单,内存要求较小,与一般的推荐系统相比,不需要大量的数据和数据挖掘算法、大量的服务器投入和高质量的人力投入,可以快捷进行数据索引,以实现针对性的内容推荐,能够更加方便的应用于一些小型应用的业务系统,实现成本低,而基于反向索引的Lucene具有实现简单,索引构建快,索引占用空间小,并且检索效率高。
参见图5,是本申请实施例提供的另一种内容推荐方法的示意流程图,图5所示的实施例可以是在图1所示的实施例的基础上得到的,如图5所示该方法可包括:
501、获取搜索记录数据,上述搜索记录数据包括用户的搜索内容和上述搜索内容对应的浏览产品。
502、获取上述浏览产品的产品信息,将上述搜索内容和上述产品信息拼接为目标字符串。
本申请实施例中的执行主体可以为一种内容推荐装置,具体可以为上述电子设备。可以先通过录入的数据或信息建立索引,用于推荐系统的搜索匹配。对于预设倒排索引和数据库的建立,在图1所示实施例中已有描述。
其中,上述步骤501和步骤502可以分别参考图1所示实施例的步骤101和步骤102中的具体描述,此处不再赘述。
503、对上述目标字符串进行分词处理,获得上述目标字符串的多个搜索项。
根据分词词库,所有的文档在建立索引的时候进行分词划分。进行搜索的时候,也对搜索的短语进行分词划分。分词处理后,可以执行步骤504。
504、根据上述目标字符串和上述多个搜索项,以及预设倒排索引中的文档,分别获得上述多个搜索项的评分。
具体的,分词和评分方法可使用前述提到的TF-IDF算法,频数(term frequency,TF)代表分词项在文档中出现的次数,逆文本频率指数(inverse document frequency,IDF)代表分词项在多少个文档中出现,在本申请实施例中即可分别表示上述搜索项在上述文档中出现的次数,和表示上述文档中出现上述搜索项的文档数。可以根据搜索项进行搜索时获得的频数和逆文本频率指数来计算评分。
在一种实施方式中,上述步骤504具体包括:
在上述预设倒排索引中的文档中搜索上述多个搜索项中每个搜索项,确定上述每个搜索项对应的频数和逆文本频率指数,其中,上述频数表示上述搜索项在上述文档中出现的次数,上述逆文本频率指数表示上述文档中出现上述搜索项的文档数;
根据上述每个搜索项的频数和上述每个搜索项的逆文本频率指数,分别获得上述多个搜索项的评分。
简单来讲,本申请实施例中使用Lucene的评分算法就是将搜索的短语进行分词处理得出搜索项,每个搜索项和每个索引中的文档根据TF/IDF进行词频出现的评分计算。然后每个搜索项的得分相加,就是这个搜索对应的文档得分。
具体的,评分计算公式包括:
其中,上述评分公式有6个部分组成:
coord(q,d)表示评分因子,基于文档中出现搜索项的个数。越多的搜索项在一个文档中,说明文档的匹配程度越高;
queryNorm(q)表示查询的标准查询,用于计算每个查询条目的方差和,此值并不影响排序,而仅仅使得不同的query之间的分数可以比较,否则的话,还是会有一些细小的区别,有几个分片就会有几个不同的queryNorm值。具体的:
sumOfSquaredWeights=idf(t1)·idf(t1)+idf(t2)·idf(t2)+...+idf(tn)·idf(tn);
tf(t in d)指搜索项t在文档d中出现的次数(频数,frequency)。具体值为次数的开根号;
idf(t)表示反转文档频率,出现搜索项t的文档数(docFreq);
t.getBoost表示查询时候搜索项加权;
norm(t,d)表示长度相关的加权因子。
505、将上述多个搜索项的评分相加获得上述预设倒排索引中的文档的评分。
通过上述方法和公式获得每个文档对应的多个搜索项的评分,将多个搜索项的评分相加获得文档的评分,由上述方法可以获得各个文档相对于目标字符串(搜索记录数据)的评分。
506、将上述评分最高的前N个文档所对应的产品确定为推荐产品。
通过上述步骤,通过Lucene在索引中查询目标字符串,可以返回评分最高的前N个产品信息,其中N为正整数。确定推荐产品之后,可以获取这些产品的产品信息,执行步骤507。
507、输出上述推荐产品的产品信息。
具体的,上述推荐产品的产品信息包括语音信息、文字信息、图像信息中的一种或几种,本申请实施例对推荐内容的输出形式不做限制。例如可以在页面中显示推荐产品的产品信息,用户可以查看相关推荐内容。在输出上述推荐产品的产品信息时,可以根据上述评分由高到低的顺序进行展示,此处不做限制。
举例来讲,对应于前述实施例的描述,以网上书城为平台介绍整体流程,包括:
1、录入商品信息;
假设商品包含如下信息:
SN:12370036
类别:数学
书名:数学分析
出版社:高等教育出版社
作者:毛羽辉
简介:数学中的分析分支是专门研究实数与复数及其函数的数学分支。它的发展由微积分开始,并扩展到函数的连续性、可微分及可积分等各种特性。这些特性,有助我们应用在对物理世界的研究,研究及发现自然界的规律。
关键词1:极限
关键词2:导数
关键词3:函数
关键词4:微积分
关键词5:连续
…
2、将所有的信息分词后构建索引;
使用中文分词来建立分词器,将所有的书籍相关信息来创建索引,并且设置存放目录,依次在索引中添加字段、内容、文件名等。
3、将用户的搜索内容和浏览商品名称拼接成字符串;
比如用户的搜索内容为“高等代数向量数学线性代数运筹学”,浏览了上述书籍《数学分析》,拼成的字符串可以为:(1)“数学分析高等代数向量数学线性代数运筹学”;
其中还可以根据该书本关键词生成匹配字符串:
(2)“数学数学分析高等教育出版社毛羽辉数学中的分析分支是专门研究实数与复数及其函数的数学分支。它的发展由微积分开始,并扩展到函数的连续性、可微分及可积分等各种特性。这些特性,有助我们应用在对物理世界的研究,研究及发现自然界的规律。极限导数函数微积分连续”
4、在索引中查询字符串,确定推荐内容。
通过lucene在索引中查询上述字符串(1),可以返回得分最高的前30个商品,按得分由高到低向用户推荐,其中推荐内容中可以除去本身的书籍信息。上述字符串(2)也可以用于辅助查询或者二次查询。
本申请实施例的内容推荐方法,通过获取搜索记录数据,上述搜索记录数据包括用户的搜索内容和上述搜索内容对应的浏览产品,再获取上述浏览产品的产品信息,将上述搜索内容和上述产品信息拼接为目标字符串,对上述目标字符串进行分词处理,获得上述目标字符串的多个搜索项,根据上述目标字符串和上述多个搜索项,以及预设倒排索引中的文档,分别获得上述多个搜索项的评分,根据上述目标字符串和上述多个搜索项,以及预设倒排索引中的文档,分别获得上述多个搜索项的评分,再将上述多个搜索项的评分相加获得上述预设倒排索引中的文档的评分,然后,将上述评分最高的前N个文档所对应的产品确定为推荐产品,输出上述推荐产品的产品信息。该方法通过搜索记录数据分词,进行匹配度评分,可以实现准确的内容推荐,基于反向索引的Lucene具有实现简单,索引构建快,索引占用空间小,并且检索效率高。其中预设倒排索引架构简单,内存要求较小,与一般的推荐系统相比,不需要大量的数据和数据挖掘算法、大量的服务器投入和高质量的人力投入,可以快捷进行数据索引,以实现针对性的内容推荐,能够更加方便的应用于一些小型应用的业务系统,实现成本低。
请参见图6,图6是本申请实施例提供的一种内容推荐装置的结构示意图,该内容推荐装置600包括:
获取模块610,用于获取搜索记录数据,上述搜索记录数据包括用户的搜索内容和上述搜索内容对应的产品;
上述获取模块610还用于,获取上述产品的产品信息;
字符处理模块620,用于将上述搜索内容和上述产品信息拼接为目标字符串;
索引模块630,用于通过上述目标字符串在预设倒排索引中进行匹配,获得上述预设倒排索引中的文档的评分,根据上述文档的评分确定推荐内容。
根据本申请实施例的具体实施方式,图1与图5所示的内容推荐方法涉及的步骤可以是由图6所示的内容推荐装置600中的各个模块来执行的,此处不再赘述。
通过本申请实施例的内容推荐装置600,内容推荐装置600可以获取搜索记录数据,上述搜索记录数据包括用户的搜索内容和上述搜索内容对应的产品,获取上述产品的产品信息,将上述搜索内容和上述产品信息拼接为目标字符串,通过上述目标字符串在预设倒排索引中进行匹配,获得上述预设倒排索引中的文档的评分,根据上述文档的评分确定推荐内容,实现内容推荐,其中预设倒排索引架构简单,内存要求较小,与一般的推荐系统相比,不需要大量的数据和数据挖掘算法、大量的服务器投入和高质量的人力投入,可以快捷进行数据索引,以实现针对性的内容推荐,能够更加方便的应用于一些小型应用的业务系统,实现成本低,而基于反向索引的Lucene具有实现简单,索引构建快,索引占用空间小,并且检索效率高。
请参阅图7,图7是本申请实施例公开的一种电子设备的结构示意图。如图7所示,该电子设备700包括处理器701和存储器702,其中,电子设备700还可以包括总线703,处理器701和存储器702可以通过总线703相互连接,总线703可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线703可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中,电子设备700还可以包括输入输出设备704,输入输出设备704可以包括显示屏,例如液晶显示屏。存储器702用于存储包含指令的一个或多个程序;处理器701用于调用存储在存储器702中的指令执行上述图1和图5实施例中提到的部分或全部方法步骤。
应当理解,在本申请实施例中,所称处理器701可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备702可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备703可以包括显示器(LCD等)、扬声器等。
该存储器704可以包括只读存储器和随机存取存储器,并向处理器701提供指令和数据。存储器704的一部分还可以包括非易失性随机存取存储器。例如,存储器704还可以存储设备类型的信息。
通过本申请实施例的电子设备700,电子设备700可以获取搜索记录数据,上述搜索记录数据包括用户的搜索内容和上述搜索内容对应的产品,获取上述产品的产品信息,将上述搜索内容和上述产品信息拼接为目标字符串,通过上述目标字符串在预设倒排索引中进行匹配,获得上述预设倒排索引中的文档的评分,根据上述文档的评分确定推荐内容,实现内容推荐,其中预设倒排索引架构简单,内存要求较小,与一般的推荐系统相比,不需要大量的数据和数据挖掘算法、大量的服务器投入和高质量的人力投入,可以快捷进行数据索引,以实现针对性的内容推荐,能够更加方便的应用于一些小型应用的业务系统,实现成本低,而基于反向索引的Lucene具有实现简单,索引构建快,索引占用空间小,并且检索效率高。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种内容推荐方法的部分或全部步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种内容推荐方法,其特征在于,所述方法包括:
获取搜索记录数据,所述搜索记录数据包括用户的搜索内容和所述搜索内容对应的浏览产品;
获取所述浏览产品的产品信息,将所述搜索内容和所述产品信息拼接为目标字符串;
通过所述目标字符串在预设倒排索引中进行匹配,获得所述目标字符串在所述预设倒排索引的文档中的分布情况;
根据所述目标字符串在所述预设倒排索引的文档中的分布情况获得所述文档的评分,根据所述文档的评分确定推荐内容。
2.根据权利要求1所述的方法,其特征在于,所述预设倒排索引包括所述文档和所述文档对应的倒排索引项,所述倒排索引项包括所述文档中的单词信息,所述单词信息用于指示所述文档中的单词在所述文档中的位置和出现次数;
所述通过所述目标字符串在预设倒排索引中进行匹配,获得所述目标字符串在所述预设倒排索引的文档中的分布情况,包括:
根据所述倒排索引项在所述预设倒排索引的文档中搜索所述目标字符串,获得所述目标字符串在所述预设倒排索引的文档中的分布情况。
3.根据权利要求2所述的方法,其特征在于,所述根据所述倒排索引项在所述预设倒排索引的文档中搜索所述目标字符串,获得所述目标字符串在所述预设倒排索引的文档中的分布情况,包括:
对所述目标字符串进行分词处理,获得所述目标字符串的多个搜索项;
根据所述倒排索引项在所述预设倒排索引中的文档中搜索所述多个搜索项中每个搜索项,确定所述每个搜索项相对于每个文档的频数和逆文本频率指数,其中,所述频数表示所述搜索项在所述文档中出现的次数,所述逆文本频率指数表示所述文档中出现所述搜索项的文档数。
4.根据权利要求3所述的方法,其特征在于,所述根据所述分布情况获得所述文档的评分,包括:
根据所述每个搜索项相对于每个文档的频数和逆文本频率指数,分别获得所述每个文档对应的多个搜索项的评分;
根据所述述每个文档对应的多个搜索项的评分获得所述文档的评分。
5.根据权利要求1-4所述的方法,其特征在于,所述根据所述文档的评分确定推荐内容,包括:
获取用户偏好标签和所述文档的标签;
根据所述文档的标签与所述用户偏好标签的相似度,确定所述文档的权重因子;
基于所述权重因子对所述文档的评分进行加权处理,获得所述文档的加权评分;
按照所述文档的加权评分从高到低进行排序,获得所述文档的排名;
将所述文档的排名中前N个文档所对应的产品确定为推荐产品,所述N为正整数;
所述方法还包括:输出所述推荐产品的产品信息。
6.根据权利要求5所述的方法,其特征在于,所述对所述产品数据进行分词处理,建立所述预设索引包括:
获取输入的产品数据,所述产品数据包括产品名称和产品信息;
对所述产品数据进行分词处理,建立所述预设索引;包括:
配置分词器;
获取目录路径,根据所述目录路径获取存储索引的目录;
基于所述分词器对所述产品数据进行分词,并创建包括内容、文件名和文件路径的文档,根据所述文档在所述目录下创建索引。
7.根据权利要求6所述的方法,其特征在于,所述将所述搜索内容和所述产品信息拼接为目标字符串,包括:
将所述搜索内容和所述产品信息拼接为第一字符串;
获取字符串长度阈值;在上述第一字符串大于上述字符串长度阈值的情况下,从所述第一字符串中获取符合所述字符串长度阈值的字符串,作为所述目标字符串。
8.一种内容推荐装置,其特征在于,包括:
获取模块,用于获取搜索记录数据,所述搜索记录数据包括用户的搜索内容和所述搜索内容对应的产品;
所述获取模块还用于,获取所述产品的产品信息;
字符处理模块,用于将所述搜索内容和所述产品信息拼接为目标字符串;
索引模块,用于通过所述目标字符串在预设倒排索引中进行匹配,获得所述预设倒排索引中的文档的评分,根据所述文档的评分确定推荐内容。
9.一种电子设备,其特征在于,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010737268.9A CN111881354A (zh) | 2020-07-28 | 2020-07-28 | 内容推荐方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010737268.9A CN111881354A (zh) | 2020-07-28 | 2020-07-28 | 内容推荐方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111881354A true CN111881354A (zh) | 2020-11-03 |
Family
ID=73200816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010737268.9A Pending CN111881354A (zh) | 2020-07-28 | 2020-07-28 | 内容推荐方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881354A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107172151A (zh) * | 2017-05-18 | 2017-09-15 | 百度在线网络技术(北京)有限公司 | 用于推送信息的方法和装置 |
CN108205532A (zh) * | 2016-12-16 | 2018-06-26 | 百度在线网络技术(北京)有限公司 | 生成网页的方法和装置 |
CN109800348A (zh) * | 2018-12-12 | 2019-05-24 | 平安科技(深圳)有限公司 | 搜索信息显示方法、装置、存储介质及服务器 |
-
2020
- 2020-07-28 CN CN202010737268.9A patent/CN111881354A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108205532A (zh) * | 2016-12-16 | 2018-06-26 | 百度在线网络技术(北京)有限公司 | 生成网页的方法和装置 |
CN107172151A (zh) * | 2017-05-18 | 2017-09-15 | 百度在线网络技术(北京)有限公司 | 用于推送信息的方法和装置 |
CN109800348A (zh) * | 2018-12-12 | 2019-05-24 | 平安科技(深圳)有限公司 | 搜索信息显示方法、装置、存储介质及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110674429B (zh) | 用于信息检索的方法、装置、设备和计算机可读存储介质 | |
US10748164B2 (en) | Analyzing sentiment in product reviews | |
US9471643B2 (en) | Generating ranked search results using linear and nonlinear ranking models | |
CN103678576B (zh) | 基于动态语义分析的全文检索系统 | |
CA2605991C (en) | System and method for providing a response to a search query | |
US8589429B1 (en) | System and method for providing query recommendations based on search activity of a user base | |
US9934293B2 (en) | Generating search results | |
US8700621B1 (en) | Generating query suggestions from user generated content | |
CN111797214A (zh) | 基于faq数据库的问题筛选方法、装置、计算机设备及介质 | |
EP2791832A1 (en) | Personalized information pushing method and device | |
CN101436186A (zh) | 一种提供相关搜索的方法及系统 | |
US9330071B1 (en) | Tag merging | |
CN106776860A (zh) | 一种搜索摘要生成方法及装置 | |
EP3238099B1 (en) | Method and user interface for presenting auxiliary content together with image search results | |
JP2011154668A (ja) | ウェブページの主意,およびユーザの嗜好を適切に把握して,最善の情報をリアルタイムに推奨する方法 | |
JP7451747B2 (ja) | コンテンツを検索する方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 | |
CN105468649B (zh) | 一种待展示对象匹配的判断方法及其装置 | |
CN111666757A (zh) | 商品评论情感倾向分析方法、装置、设备和可读存储介质 | |
KR101088710B1 (ko) | 온라인 커뮤니티 사용자 간 상호작용 기반 온라인 커뮤니티 포스트 검색 방법, 장치 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 | |
CN114330329A (zh) | 一种业务内容搜索方法、装置、电子设备及存储介质 | |
CN111753526A (zh) | 一种相似竞品数据分析方法及系统 | |
CN107153697A (zh) | 一种商品交易网站中的商品搜索方法和装置 | |
Wong et al. | An unsupervised method for joint information extraction and feature mining across different web sites | |
JP4883644B2 (ja) | リコメンド装置、リコメンドシステム、リコメンド装置の制御方法、およびリコメンドシステムの制御方法 | |
CN111737607A (zh) | 数据处理方法、装置、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201103 |