发明内容
针对现有技术中的缺陷,本发明提供一种基于社会网络的服务索引库的建立方法及服务搜索方法,解决现有技术中不能合理的向用户提供用户所需服务的问题。
第一方面,本发明提供一种基于社会网络的服务索引库的建立方法,包括:
采集服务信息,所述服务信息包括:服务的分类、服务的标题、服务的描述信息、服务的价格和/或服务提供者信息;
将采集的服务信息生成服务数据集合,提取所述服务数据集合中每一服务的标签,将所有服务的标签生成服务标签库;
获取所有服务的交易数据,从所述交易数据中获取所有服务的服务使用者信息、以及服务的实际交易价格;
根据所述服务使用者信息、服务的实际交易价格、所述服务的标签获取所述服务标签库中所有服务对应标签的分数;
根据所述服务对应的标签、该标签的分数生成服务索引库。
第二方面,本发明提供一种服务搜索方法,包括:
接收用户输入的服务查询请求,所述服务查询请求包括待查询服务的关键字信息;
根据所述服务查询请求,确定所述待查询服务的分类,以及所述关键字信息对应的待查询服务的标签;
根据所述待查询服务的分类、标签从服务索引库中获取所述分类下与所述标签匹配的服务的所有信息;
将与所述标签匹配的服务的所有信息,按照标签的分数进行排序,并将排序后的信息显示;
其中,服务索引库为采用上述方式获取的包括服务分类、服务分类中服务的标签、标签的分数的索引库。
由上述技术方案可知,本发明的基于社会网络的服务索引库的建立方法及服务搜索方法,通过采集服务信息,获得服务的标签,以及根据服务的实际交易数据和标签获得包括服务标签和标签分数的服务索引库,进而根据服务索引库进行服务的搜索,能够精准合理的向用户提供用户所需服务。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1示出了本发明一实施例提供的基于社会网络的服务索引库的建立方法的流程示意图,如图1所示,本实施例的基于社会网络的服务索引库的建立方法如下所述。
101、采集服务信息,所述服务信息包括:服务的分类、服务的标题、服务的描述信息、服务的价格和/或服务提供者信息。
系统通过电子商务平台的交易数据获得用户服务信息,或者通过应用程序接口(Application Program Interface,简称API)或网络爬虫抓取微博、淘宝、赶集、京东等、产品论坛的用户服务信息。
一种服务信息举例如下:采集北京某某儿童摄影摄像,收集的服务信息包括服务的标题:北京某某儿童摄影摄像,服务分类:生活服务;服务价格:1000元;服务提供者:北京某某公司;服务提供者联系方式:186xxxxxxxx;服务提供者位置:北京海淀中关村等信息。本实施例还可将采集的所有服务的服务信息生成统一格式的服务数据,进而将统一格式的服务数据组成服务数据集合。
102、将采集的服务信息生成服务数据集合,提取所述服务数据集合中每一服务的标签,将所有服务的标签生成服务标签库。
举例来说,采用分词处理方式提取所述服务数据集合中每一服务的关联标签。
例如,采用中文分词处理方式提取所述服务数据集合中每一服务的关联标签。中文分词的分词系统,需要调用自定义词库。自定义词库包括具体的词语和词性标注,自定义词库相当于分词系统的一个子模块,在自定义词库的基础上,分词算法才能将一句话切分为不同的词语。自定义词库的全面性影响分词的准确性,自定义词库满足了可更新、可积累并契合服务信息/论坛的要求。
也就是说,通过分词处理将服务数据集合中服务数据的无意义的词去除。
103、获取所有服务的交易数据,从所述交易数据中获取所有服务的服务使用者信息、以及服务的实际交易价格。
举例来说,交易数据包括购买某个服务的所有交易,逐条记录。如用户X购买了用户Y的Android APP开发服务,则代表用户X认可用户Y的Android APP开发的能力。在前述步骤102中Android APP开发服务分词得到的标签有两个:“Android”、“APP开发”。则记录两条数据:1、服务购买者:X,服务提供者:Y,标签:Android;2、服务购买者:X,服务提供者:Y,标签:APP开发。所记录数据在步骤104生成矩阵A时使用。
当计算APP开发的分数时,由于能够查找到X位服务购买者,Y为服务提供者,标签为APP开发的记录,所以Axy=1。
应说明的是,本实施可获取一段时间内的所有服务的交易数据,如近一个月内的所有服务的交易数据,或近半年或一年内所有服务的交易数据等。
104、根据所述服务使用者信息、服务的实际交易价格、所述服务的标签获取所述服务标签库中所有服务对应标签的分数。
可理解的是,可根据服务提供者、交易数据和服务使用者等计算每个用户(包括提供者和使用者)、每个服务不同标签的分数。
105、根据所述服务对应的标签、该标签的分数生成服务索引库。
也就是说,每个标签所占权重即为其服务提供者对应标签的分数,即最后算出的n行1列的矩阵中每行的值可为对应用户的分数。
本实施例的服务索引库的建立方法,通过采集服务信息,获得服务的标签,以及根据服务的实际交易数据和标签获得包括服务标签和标签分数的服务索引库,进而根据服务索引库进行服务的搜索,能够精准合理的向用户提供用户所需服务。
应说明的是,本实施例中建立的服务索引库可定期更新,如一周更新一次,或者根据上述图1所示的方法两天更新一次等,本实施例仅为举例说明。
举例来说,前述的步骤104可具体包括下述的图中未示出的子步骤:
1041、获取与服务的标签相关的所有用户的数量n,并生成n阶矩阵A;
1042、确定n阶矩阵A中每一元素Aij的值,若用户i使用了用户j的服务,则Aij=1,否则Aij=0;
1043、根据预设的阻尼系数m,将n阶矩阵A转换为另一矩阵A’;
令X=(1,1……,1)T,计算矩阵迭代收敛值limn-∞A'nX,limn-∞A'nX的值为服务的对应特定标签的排名分数,其中,X是单位列向量的转置矩阵。在计算矩阵乘法中,可以使用分布式系统加快计算速度。
举例来说,所述阻尼系数m的取值范围为0.15至0.25,根据用户数量/规模与社会网络结构/社会网络特征m值进行调整。优选的阻尼系数m取0.2,例如,A’ij=Aij*0.8+0.2。
图2示出了本发明一实施例提供的服务搜索方法的流程示意图,如图2所示,本实施例的服务搜索方法如下所述。
201、接收用户输入的服务查询请求,所述服务查询请求包括待查询服务的关键字信息。
202、根据所述服务查询请求,确定所述待查询服务的分类,以及所述关键字信息对应的待查询服务的标签。
举例来说,可采用分词处理方式从所述关键字信息中提取待查询服务的标签,以及根据提取的待查询服务的标签确定所述待查询服务的分类。例如,采用特定语言分词处理方式进行处理。以中文分词为例,中文分词的分词系统需要调用自定义词库。自定义词库包括具体的词语和词性标注,自定义词库相当于分词系统的一个子模块,在自定义词库的基础上,分词算法才能将一句话切分为不同的词语。自定义词库的全面性影响分词的准确性,自定义词库满足了可更新、可积累并契合服务信息/论坛的要求。
可理解的是,获得用户待查询服务的分类、地区、距离、价格范围等信息,以及对关键字信息进行分词处理,剔除其中的无意义信息,剩余词汇构成待查询服务的标签即搜索标签。
203、根据所述待查询服务的分类、标签从服务索引库中获取所述分类下与所述标签匹配的服务的所有信息。
可理解的是,服务索引库可为上述图1所示的索引库,该服务索引库可包括服务分类、服务分类中服务的标签、标签的分数等服务的信息。
例如,从服务索引库中选取符合搜索条件的服务(即选择待查询服务所属的分类),首先需要满足分类、地区、距离等要求,然后需要包含所搜索标签的信息,将满足要求的结果生成一个服务集合。
204、将与所述标签匹配的服务的所有信息,按照标签的分数进行排序,并将排序后的信息显示。
即,将服务集合中满足要求的结果,按照标签的分数进行排序,将排序后的信息显示。具体地,可在满足要求的结果中将每个服务的相关标签的分数相加,根据分数相加结果将服务排序,呈现排序后的服务。
通常,呈现给用户的排序后的服务可按照用户所需的/所喜欢的格式显示。
例如:用户准备搜索北京高中家教,则先对用户输入的服务查询请求进行处理,进行分词后得到三个标签“北京”、“高中”、“家教”。然后在索引库中进行搜索,得到具有这三个标签的服务325个。
再者,根据三个标签分数之和对325个服务进行分类,例如有三个服务,服务一为某普通用户A提供的北京高中家教服务,该服务三个标签分数为:北京20,高中50,家教25;服务二为某家教机构B提供的北京高中家教服务,该服务三个标签分数为:北京22,高中40,家教40;服务三为某明星用户C提供的北京高中家教服务,该服务三个标签分数为:北京25,高中70,家教35;则最终排序位服务三、服务二、服务一。由于机构B提供了很多家教服务,所以其家教分数相对高一些,在高中方面没有用户A高,但是家教更高使其排在了前面。而用户C由于本身能力比较高,所以排在最前面。最后将结果整理后输出。
当然,在具体应用中,若所述服务索引库中没有与所述标签匹配的服务,则将所述服务索引库中所有的服务的标签按照标签的分数进行排序,并将排序后的信息显示;
或者,向用户显示没有匹配内容的提示信息。
另外,需说明的是,若所述服务索引库中没有与所述标签匹配的服务,则所述待查询服务的分类、标签更新所述服务索引库,可采用上述图1所示的方式更新服务索引库,本实施例不对其进行限定。
也就是说,服务索引库是根据服务的标题、分类和描述等信息,提取服务相关的标签,以及通过服务交易数据,如根据交易的价格,交易双方的服务能力,计算出每个人各个标签的服务能力。由此,在用户进行搜索时,根据关键字信息匹配标签,按对应标签的服务能力来进行排序,并将处理后的结果返回。
图3示出了本发明一实施例提供的一种终端显示交互图,如图3所示,本实施例的一种终端显示如下所述。
同上述步骤204中所例举的样例所述,搜索之后C、B、A排在所有结果的前3位,则显示其服务名称和各标签分数以供用户选择。
本发明通过将服务信息提取为多个服务标签,从而通过交易数据计算出了每个人的不同标签的服务能力。经过计算,使得一个人服务的人越多,服务的人本身能力越强,其本身的服务能力越强。同时,使得服务和服务提供者产生了关联,在进行服务搜索时,影响服务结果和排序的因素就从服务本身的信息扩展到了服务提供者的服务能力,使搜索得到的结果更加精确。
本实施例所述的服务搜索方法,将服务的搜索关联到服务提供者的真实服务能力,在一定程度上避免了排名作假或者刷排名的作用。例如,当一个用户使用多个小号购买了自己的服务后,由于小号本身的服务能力不强,使得所能提供的服务能力也不会很强,要弱于真实的,在这个标签本身具有需求的用户。
同时,对于新的服务,如果服务提供者本身在原来的某些标签中累积了一定的分数,那么新的服务也会提升一定的排名,而不会一直处于最后面。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。