本发明涉及网络数据推送技术领域,具体地说是一种基于余弦距离的前沿科技信息快速推送方法及系统。
背景技术:
科技情报对国家、社会、企业的战略、计划的制定以及实施都发挥了重要作用。随着科学技术日新月异的发展,社会各行业、各单位部门对情报信息的需求更加迫切,科技情报被认为是经济建设、科研、设计、生产、经营管理、市场营销中的关键环节。
互联网的兴起与普及使得科技信息的获得更加快速与易得,然而,在大量的科技咨询中找到最新的前沿信息是费时与困难的。当前的科技情报推送系统,多以主题的方式对科技信息进行分类。当情报使用人员关注某一主题时,系统往往把这一主题的所有文章都加以推送,因而使用人员无法分清那些文章或者文献是最新的科研成果。比较直观的方法是根据信息文件的发布时间加以区分,只将近期发布的信息推送给用户。这种方法虽然可以将最新的科技信息找到,但是极易造成科技前沿信息的冗余与漏报:1)由于科技网站之间、文献数据库之间存在大量镜像与简单修改后再转载的情况,因此会有大量重复或者相似的文章被推送到用户端。2)系统在运行时,会对科技信息的数据源进行扩展,比如填加一个文献数据库,这时新增文献数据库中会有许多文献是没有被推送过但发布时间比较旧,然而只依据最新原则会将此类信息忽略。
科技信息数据库会存储大量的已被推送的文章,可以将新增文章与大量的文章进行一一比较,以判断该文章是否是重复或者相似的文章,是一件及为耗时的任务,这与科技情况信息的及时性要求相违背。
因此,亟需设计一种前沿科技信息的快速推送技术,来将没有推送过的信息及时地推送到用户端。
技术实现要素:
针对现有技术的不足,本发明提出了一种基于余弦距离的前沿科技信息快速推送方法及系统,其能够将一个主题的科技信息查找出来,并进行快速比较,将没有推送过的信息及时地推送给用户。
本发明解决其技术问题采取的技术方案是:
一方面,本发明实施例提供的一种基于余弦距离的前沿科技信息快速推送方法,它包括以下过程:
构造余弦距离索引:爬取科技信息文章并存储到科技信息数据库中,并对爬取科技信息文章建立索引;
推送信息:通过快速对比新增文章和数据库的原有文章来查询是否有相同或者近似的文章,判断该新增文章内容是否已经被推送过,如果没有被推送过则加以选择并进行推送给用户。
作为本实施例一种可能的实现方式,所述构造余弦距离索引的过程包括以下步骤:
1)利用爬虫技术爬取科技信息文章,并将爬取的科技信息文章文本化,并记为ti;
2)基于tf-idf技术提取ti的tf-idf向量,记为
3)周期性的采用自下而上的层次凝聚聚类方法对当前科技信息文章向量进行聚类,向量集合
4)在聚类过程中构造出一棵包含簇的层次信息以及所有簇内和簇间的相似度的生成树t,即余弦距离索引,在生成树t中,每个只含单个成员的簇
作为本实施例一种可能的实现方式,所述对当前科技信息文章向量进行聚类的过程包括以下步骤:
31)将每个向量都当做一个聚类,将向量集合t中的每个向量
32)计算每两个聚类之间的距离,将距离最近的或最相似的两个聚类进行合并,并计算c中每个簇对<ci,cj>之间的相似度距离sd(ci,cj);
33)选取具有最小sd(ci,cj)的簇对<ci,cj>,将ci和cj合并为一个新的簇ck=ci∪cj,同时更新聚类集合c=c∪{ck}-{ci,cj};
34)重复上述步骤31)至步骤33),直至c中剩下一个簇为止。
作为本实施例一种可能的实现方式,所述簇对<ci,cj>之间的相似度距离sd(ci,cj)采用增量距离方法进行计算,具体计算步骤为:
321)用
322)定义
作为本实施例一种可能的实现方式,所述推送信息的过程包括以下步骤:
5)基于生成树t查找与
6)计算
7)根据用户订阅的主题,将科技信息文章推送给相关用户。
作为本实施例一种可能的实现方式,所述查找与
51)从生成树t的根节点开始查询,设nx→t.root;
52)如果nx为叶节点,结束此过程,则将nx的关键字赋值给
53)如果nx为非叶节点,计算
另一方面,本发明实施例提供的一种基于余弦距离的前沿科技信息快速推送系统,它包括余弦距离索引模块、科技信息数据库和推送信息模块;
所述余弦距离索引模块用于爬取科技信息文章并爬取的新增文章发送给科技信息数据库,并对爬取科技信息文章建立索引;
所述科技信息数据库用于存储科技信息文章;
所述推送信息模块用于通过快速对比新增文章和数据库的原有文章来查询是否有相同或者近似的文章,并判断该新增文章内容是否已经被推送过,如果没有被推送过则加以选择并进行推送给用户。
作为本实施例一种可能的实现方式,所述余弦距离索引模块包括:
文本爬取模块,用于爬取科技信息文章,并将爬取的科技信息文章文本化;
向量提取模块,用于基于tf-idf技术提取科技信息文章的tf-idf向量,并以键值对的形式存储到科技信息数据库中;
聚类模块,用于周期性的采用自下而上的层次凝聚聚类方法对当前科技信息文章向量进行聚类;
余弦距离索引模块,用于在聚类过程中构造出一棵包含簇的层次信息以及所有簇内和簇间的相似度的生成树t,即余弦距离索引。
作为本实施例一种可能的实现方式,所述聚类模块包括:
聚类构成模块,用于将每个向量构造一个聚类集合;
距离模块,用于计算每两个聚类之间的距离,将距离最近的或最相似的两个聚类进行合并,计算聚类集合中每个簇对之间的相似度距离;
聚类集合更新模块,用于将具有相似度距离最小的簇对合并为一个新的簇,并更新聚类集合,直至聚类集合剩下一个簇为止。
作为本实施例一种可能的实现方式,所述推送信息模块包括:
查找模块,用于根据余弦距离索引查找数据库中与新增文章向量距离最小的原有文章;
对比模块,对比新增文章和与新增文章向量距离最小的原有文章是否为相同或者近似的文章,如果不是则判断该新增文章内容没有被推送过;
信息发送模块,用于根据用户订阅的主题将没有被推送过的新增文章内容则加以选择并发送给用户。
本发明实施例的技术方案可以具有的有益效果如下:
一方面,本发明实施例技术方案的一种基于余弦距离的前沿科技信息快速推送方法包括构造余弦距离索引和推送信息两个过程,它首先爬取科技信息文章并存储到科技信息数据库中,并对爬取科技信息文章建立索引;然后通过快速对比新增文章和数据库的原有文章来查询是否有相同或者近似的文章,判断该新增文章内容是否已经被推送过,如果没有被推送过则加以选择并进行推送给用户。本发明实施例技术方案将一个主题的科技信息查找出来,并进行快速比较,将没有推送过的信息及时地推送到用户端,使得用户可以及时地得到准确有效的前沿信息推送,不仅使推送给用户的前沿科技信息避免相似性冗余,而且采用余弦距离索引可以加快文章的相似性判断,及时地将前沿信息推送给用户。
一方面,本发明实施例技术方案的一种基于余弦距离的前沿科技信息快速推送系统包括余弦距离索引模块、科技信息数据库和推送信息模块;所述余弦距离索引模块用于爬取科技信息文章并爬取的新增文章发送给科技信息数据库,并对爬取科技信息文章建立索引;所述科技信息数据库用于存储科技信息文章;所述推送信息模块用于通过快速对比新增文章和数据库的原有文章来查询是否有相同或者近似的文章,并判断该新增文章内容是否已经被推送过,如果没有被推送过则加以选择并进行推送给用户。本发明实施例技术方案将一个主题的科技信息查找出来,并进行快速比较,将没有推送过的信息及时地推送到用户端,使得用户可以及时地得到准确有效的前沿信息推送,不仅使推送给用户的前沿科技信息避免相似性冗余,而且采用余弦距离索引可以加快文章的相似性判断,及时地将前沿信息推送给用户。
附图说明
图1是根据一示例性实施例示出的一种基于余弦距离的前沿科技信息快速推送方法的流程图;
图2是根据一示例性实施例示出的利用本发明进行前沿信息推送的框架图;
图3是根据一示例性实施例示出的一种科技信息数据库的结构图;
图4是根据一示例性实施例示出的一种余弦距离索引的结构图;
图5是根据一示例性实施例示出的一种基于余弦距离的前沿科技信息快速推送系统的示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
图1是根据一示例性实施例示出的一种基于余弦距离的前沿科技信息快速推送方法的流程图。如图1所示,本发明实施例提供的一种基于余弦距离的前沿科技信息快速推送方法,可以包括以下过程:
构造余弦距离索引:爬取科技信息文章并存储到科技信息数据库中,并对爬取科技信息文章建立索引;
推送信息:通过快速对比新增文章和数据库的原有文章来查询是否有相同或者近似的文章,判断该新增文章内容是否已经被推送过,如果没有被推送过则加以选择并进行推送给用户。
图2是根据一示例性实施例示出的利用本发明进行前沿信息推送的框架图,如图2所述,利用本发明进行前沿信息推送的过程为:抓取的文章特征向量化后,既存储在科技信息数据库建立索引,也需要根据分类器判断是否为有未推送的内容,若有向用户推送该科技文章。
在一种可能的实现方式中,所述构造余弦距离索引的过程包括以下步骤:
1)利用爬虫技术在科技新闻网站、微博、微信公众平台和/或文献数据库中爬取科技信息文章,并将爬取的科技信息文章文本化,并记为ti。
2)基于tf-idf(词频-逆向文件频率,termfrequencyinversedocumentfrequency)技术提取ti的tf-idf向量,记为
3)周期性的采用自下而上(bottom-up)的层次凝聚聚类(hierarchicalagglomerativeclustering)方法对当前科技信息文章向量进行聚类,向量集合
31)将每个向量都当做一个聚类,将向量集合t中的每个向量
32)计算每两个聚类之间的距离,将距离最近的或最相似的两个聚类进行合并,并计算c中每个簇对<ci,cj>之间的相似度距离sd(ci,cj);
33)选取具有最小sd(ci,cj)的簇对<ci,cj>,将ci和cj合并为一个新的簇ck=ci∪cj,同时更新聚类集合c=c∪{ck}-{ci,cj};簇的距离可以采用增量距离方法(本实施例的簇的距离方法不限于此种,其他比如有单链(single-link)、全链(complete-link)、平均链(average-link)、中心点(centriodsmethod)、离差平方和方法计算(wardmethod)等方法)。所述簇对<ci,cj>之间的相似度距离sd(ci,cj)采用增量距离方法进行计算的具体步骤为:
321)用
322)定义
34)重复上述步骤31)至步骤33),直至c中剩下一个簇为止。
4)在聚类过程中构造出一棵包含簇的层次信息以及所有簇内和簇间的相似度的生成树t,即余弦距离索引,在生成树t中,每个只含单个成员的簇
在一种可能的实现方式中,所述推送信息的过程包括以下步骤:
5)基于生成树t查找与
51)从生成树t的根节点开始查询,设nx→t.root;
52)如果nx为叶节点,结束此过程,则将nx的关键字赋值给
53)如果nx为非叶节点,计算
6)计算
7)根据用户订阅的主题,将科技信息文章推送给相关用户。
图5是根据一示例性实施例示出的一种基于余弦距离的前沿科技信息快速推送系统的示意图。如图1所示,本发明实施例提供的一种基于余弦距离的前沿科技信息快速推送系统,它包括余弦距离索引模块、科技信息数据库和推送信息模块;
所述余弦距离索引模块用于爬取科技信息文章并爬取的新增文章发送给科技信息数据库,并对爬取科技信息文章建立索引;
所述科技信息数据库用于存储科技信息文章;
所述推送信息模块用于通过快速对比新增文章和数据库的原有文章来查询是否有相同或者近似的文章,并判断该新增文章内容是否已经被推送过,如果没有被推送过则加以选择并进行推送给用户。
在一种可能的实现方式中,所述余弦距离索引模块包括:
文本爬取模块,用于爬取科技信息文章,并将爬取的科技信息文章文本化;
向量提取模块,用于基于tf-idf技术提取科技信息文章的tf-idf向量,并以键值对的形式存储到科技信息数据库中;
聚类模块,用于周期性的采用自下而上的层次凝聚聚类方法对当前科技信息文章向量进行聚类;
余弦距离索引模块,用于在聚类过程中构造出一棵包含簇的层次信息以及所有簇内和簇间的相似度的生成树t,即余弦距离索引。
在一种可能的实现方式中,所述聚类模块包括:
聚类构成模块,用于将每个向量构造一个聚类集合;
距离模块,用于计算每两个聚类之间的距离,将距离最近的或最相似的两个聚类进行合并,计算聚类集合中每个簇对之间的相似度距离;
聚类集合更新模块,用于将具有相似度距离最小的簇对合并为一个新的簇,并更新聚类集合,直至聚类集合剩下一个簇为止。
在一种可能的实现方式中,所述推送信息模块包括:
查找模块,用于根据余弦距离索引查找数据库中与新增文章向量距离最小的原有文章;
对比模块,对比新增文章和与新增文章向量距离最小的原有文章是否为相同或者近似的文章,如果不是则判断该新增文章内容没有被推送过;
信息发送模块,用于根据用户订阅的主题将没有被推送过的新增文章内容则加以选择并发送给用户。
本实施例通过余弦距离索引模块与推送信息模块两个模块实现,抓取的文章特征向量化后,既存储在科技信息数据库建立索引,也需要根据分类器判断是否为有未推送的内容,若有向用户推送该科技文章。余弦距离索引模块用于爬取科技信息文章并存储到科技信息数据库中,并对库中的文章建立索引,使新增文章可以快速对比数据库的文章。推送信息模块用于将用户没有阅览过的科技信息加以选择并进行推送。新增的科技文章需要到科技信息数据库中查询,是否存在与该文章相同或者相似的文章已经被推送过,果没有相似的文章,再推送到用户处。
本发明实施例技术方案通过将一个主题的科技信息查找出来,并进行快速比较,将没有推送过的信息及时地推送到用户端,使得用户可以及时地得到准确有效的前沿信息推送,不仅使推送给用户的前沿科技信息避免相似性冗余,而且采用余弦距离索引可以加快文章的相似性判断,及时地将前沿信息推送给用户。
以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。