CN111858918A - 新闻分类方法及装置、网元、存储介质 - Google Patents
新闻分类方法及装置、网元、存储介质 Download PDFInfo
- Publication number
- CN111858918A CN111858918A CN201910363340.3A CN201910363340A CN111858918A CN 111858918 A CN111858918 A CN 111858918A CN 201910363340 A CN201910363340 A CN 201910363340A CN 111858918 A CN111858918 A CN 111858918A
- Authority
- CN
- China
- Prior art keywords
- news
- crawler
- data
- task
- news data
- 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
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- 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/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种新闻分类方法及装置、网元、存储介质,包括:主节点将总任务队列中的爬虫任务分配到N个从任务队列中,其中,N为大于1的正整数;第n个从节点从第n个所述从任务队列中获取所述爬虫任务,其中,所述第n个从节点对应于所述第n个从任务队列,其中,n为小于或等于N的正整数;所述第n个从节点根据所述爬虫任务获取新闻数据,并确定所述新闻数据的新闻类别。与利用集中式爬虫程序抓取新闻相比,由于集中式爬虫程序同一时间只能有一个爬虫节点抓取新闻,而本发明可有多个从爬虫节点同时抓取新闻,显然本发明可抓取更多的新闻数据,且效率更高。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种新闻分类方法及装置、网元、存储介质。
背景技术
现阶段正处于一个信息爆炸的时代,互联网所产生的数据的数量产生了跨越式增加,如何有效地提取并利用这些信息成为一个巨大的挑战。通常需要通过爬虫程序获取新闻数据。集中式爬虫是以单爬虫节点,按照一定的规则,自动地抓取万维网信息的程序系统。而应用集中式爬虫获取新闻数据,获取到的新闻数量有限,且效率较低。
发明内容
本发明实施例提供一种新闻分类方法及装置。
本发明的技术方案是这样实现的:
一方面,提供一种新闻分类方法,包括:
主节点将总任务队列中的爬虫任务分配到N个从任务队列中,其中,N为大于1的正整数;
第n个从节点从第n个所述从任务队列中获取所述爬虫任务,其中,所述第n个从节点对应于所述第n个从任务队列,其中,n为小于或等于N的正整数;
所述第n个从节点根据所述爬虫任务获取新闻数据,并确定所述新闻数据的新闻类别。
进一步地,所述方法还包括:
所述主爬虫节点按照爬虫任务的优先级或爬虫任务进入所述总任务队列的时间,确定所述爬虫任务的获取顺序;
所述主节点将总任务队列中的爬虫任务分配到N个从任务队列中,包括:根据所述获取顺序,将所述总任务队列中的爬虫任务依次分配到N个所述从任务队列中。
进一步地,所述方法还包括:
所述主节点将待处理爬虫任务对应的链接地址进行去重操作;
将去重操作后的所述待处理爬虫任务加入到所述总任务队列,其中,所述待处理爬虫任务为预先设定的或由从节点提交的。
进一步地,所述确定所述新闻数据的新闻类别包括:
对所述新闻数据进行分词处理,获得分词后的新闻数据;
基于所述分词后的新闻数据及词频算法,提取所述新闻数据的关键词;
将所述关键词转换成词向量;
基于所述词向量和预设的支持向量机SVM模型,确定所述新闻数据的新闻类别。
进一步地,所述基于所述词向量和预设的支持向量机SVM模型,确定所述新闻数据的新闻类别,包括:
根据核函数参数,将所述词向量的特征数据从第一空间映射到第二空间,其中,所述第一空间的维度低于所述第二空间的维度;
确定所述词向量的特征数据在所述第二空间内的分布面;
根据所述分布面及对应的惩罚因子,确定所述新闻数据的新闻分类。
进一步地,训练所述预设的SVM模型包括:
根据c的取值范围、g的取值范围、c的移动间隔及g的移动间隔,进行c和g的取值移动,其中,c为SVM模型的惩罚因子,g为SVM模型的核函数参数;
根据数据样本进行基于一次移动后c及g对应的备选SVM模型的检测,获得备选SVM的分类准确率;
选择分类准确率最高的备选SVM模型的c和g构建所述预设的SVM模型。
本发明还提供了一种新闻分类装置,包括:
分配模块,用于主节点将总任务队列中的爬虫任务分配到N个从任务队列中,其中,N为大于1的正整数;
获取模块,用于第n个从节点从第n个所述从任务队列中获取所述爬虫任务,其中,所述第n个从节点对应于所述第n个从任务队列,其中,n为小于或等于N的正整数;
分类模块,用于所述第n个从节点根据所述爬虫任务获取新闻数据,并确定所述新闻数据的新闻类别。
进一步地,所述装置还包括:
确定模块,用于所述主爬虫节点按照爬虫任务的优先级或爬虫任务进入所述总任务队列的时间,确定所述爬虫任务的获取顺序;
所述分配模块,具体用于根据所述获取顺序,将所述总任务队列中的爬虫任务依次分配到N个所述从任务队列中。
进一步地,所述分类模块,还用于对所述新闻数据进行分词处理,获得分词后的新闻数据;
基于所述分词后的新闻数据及词频算法,提取所述新闻数据的关键词;
将所述关键词转换成词向量;
基于所述词向量和预设的支持向量机SVM模型,确定所述新闻数据的新闻类别。
进一步地,所述分类模块,还用于根据核函数参数,将所述词向量的特征数据从第一空间映射到第二空间,其中,所述第一空间的维度低于所述第二空间的维度;
确定所述词向量的特征数据在所述第二空间内的分布面;
根据所述分布面及对应的惩罚因子,确定所述新闻数据的新闻分类。
本发明还提供了一种网元,包括:
收发器、存储器及处理器;
所述存储器,用于存储计算机可执行指令,所述可执行指令能够实现上述的新闻分类方法;
所述处理器,分别与收发器及存储器连接,用于控制所述收发器及所述存储器,执行所述计算机可执行指令。
本发明还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被执行后,能够实现上述的新闻方法。
本发明提供的新闻分类方法及装置,主节点先将待分配的爬虫任务,分配到N个从任务队列中。从节点再从该从节点对应的从任务队列中,获取并执行所述爬虫任务。如此,主节点通过从任务队列,将待分配的爬虫任务分配给从节点。本发明中有N个从任务队列,该N个从任务队列对应着N个从节点,主节点可通过多个从任务队列同时控制多个从节点协同工作,以完成新闻数据的抓取。与利用集中式爬虫程序抓取新闻相比,由于集中式爬虫程序同一时间只能有一个爬虫节点抓取新闻,而本发明可有多个从爬虫节点同时抓取新闻,显然本发明可抓取更多的新闻数据,且效率更高。
附图说明
图1为本发明实施例提供的一种新闻分类方法的流程示意图;
图2为本发明实施例提供的一种新闻分类装置示意图;
图3为本发明实施例提供的一种网元结构示意图;
图4为本发明实施例提供的Scrapy框架结构示意图;
图5为本发明实施例提供的一种消息处理层框架图;
图6为本发明实施例提供的一种业务逻辑层框架图;
图7为本发明实施例提供的一种新闻分类方法流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明实施例进行详细说明。
图1为本发明实施例提供的一种新闻分类方法的流程示意图,如图1所示,所述新闻分类方法包括以下步骤:
步骤101,主节点将总任务队列中的爬虫任务分配到N个从任务队列中,其中,N为大于1的正整数;
步骤102,第n个从节点从第n个所述从任务队列中获取所述爬虫任务,其中,所述第n个从节点对应于所述第n个从任务队列,其中,n为小于或等于N的正整数;
步骤103,所述第n个从节点根据所述爬虫任务获取新闻数据,并确定所述新闻数据的新闻类别。
本发明方法提供了一种基于分布式爬虫获取新闻并进行分类的方法。该方法可通过Scrapy架构建立分布式新闻爬虫采集系统,并使用自然语言处理技术进行新闻分类。分布式爬虫系统运行于机器集群之上,由一个主节点控制多个从节点协同工作,以抓取网页信息,从而获得所述新闻数据。
爬虫系统包括一个主节点和N个从节点。主节点中部署有一个总任务队列和N个从任务队列。所述N个从节点与所述N个从任务队列为一一对应关系。主节点先将待分配的爬虫任务分配到N个从任务队列中,各从节点再从各自对应的从任务队列中获取并执行爬虫任务。如此,主节点可通过多个从任务队列,同时控制多个从节点协同工作,以完成新闻数据的抓取。
从节点要将自身的资源使用情况通知给主节点,主节点会根据从节点的资源使用情况,分发爬虫任务。主节点对从节点的爬虫任务运行情况、程序版本及资源请求等进行管理和控制。主节点与从节点可通过中间件(例如,Kafka中间件)进行消息交互。
一台服务器可部署一个或多个从节点。集群中每个从节点都是一个集中式爬虫。每个从节点都可独立完成新闻数据的抓取工作,而不需要其它从节点配合。爬虫系统可根据待爬取的任务量、时间要求及服务器的硬件配置,灵活配置从节点的数量,而无需关注从节点之间的信息交互。此外,单个从节点出现故障,其它从节点仍可正常工作。因此,该部署架构具有较高的扩展性和较好的容错性。
进一步地,所述方法还包括:
所述主爬虫节点按照爬虫任务的优先级或爬虫任务进入所述总任务队列的时间,确定所述爬虫任务的获取顺序;
所述主节点将总任务队列中的爬虫任务分配到N个从任务队列中,包括:根据所述获取顺序,将所述总任务队列中的爬虫任务依次分配到N个所述从任务队列中。
常见的爬虫任务的获取顺序包括:基于总任务队列的先进先出顺序,基于总任务队列的后进先出顺序以及基于优先级的顺序。优先级可根据具体需求进行设定,如某舆情网站,现阶段监控的重点为:目前正在召开的两会,对广大群众的影响,则可将相关的国家新闻的优先级设为1,相关的省市新闻的优先级设为2,相关的国际新闻的优先级设为3。优先级设为1的新闻数据的优先级,高于优先级设为2的新闻数据的优先级;优先级设为2的新闻数据的优先级,高于优先级设为3的新闻数据的优先级。新闻数据的优先级别越高,抓取所述新闻数据的时间越靠前。通过设定爬虫任务的获取顺序,可使整个分布式爬虫系统可在既考虑爬虫任务加入队列的时间,又兼顾爬虫任务的优先级的基础上运行。
进一步地,所述方法还包括:
所述主节点将待处理爬虫任务对应的链接地址进行去重操作;
将去重操作后的所述待处理爬虫任务加入到所述总任务队列,其中,所述待处理爬虫任务为预先设定的或由从节点提交的。
爬虫系统首先会选择一些比较重要的、含有较多链接地址的网站的URL(UniformResource Locator,统一资源定位符)作为种子URL集合。将种子URL集合加入到总任务队列中,作为初始URL。爬虫系统从初始URL开始,进行数据的抓取。因为网页中含有链接信息,从爬虫节点在对网页的抓取过程中,会不断地得到一些新的URL,并将上述新的URL上报给主节点。主节点将新的URL加入到总任务队列,再由从节点对新的URL继续进行抓取。如此反复,直到满足设定条件,爬虫系统才停止抓取。上述将新的URL链接加入总任务队列的过程中,难免会把已经爬取过的URL链接重新加入到总任务队列中。此时,对URL链接进行去重操作,即从待处理爬虫任务中删除已经执行过的爬虫任务,再将去重操作后的待处理爬虫任务加入到所述总任务队列。如此操作减少了重复执行相同的抓取任务的概率,从而节省了系统资源,提高了爬虫系统的整体运行效率。
进一步地,所述确定所述新闻数据的新闻类别包括:
对所述新闻数据进行分词处理,获得分词后的新闻数据;
基于所述分词后的新闻数据及词频算法,提取所述新闻数据的关键词;
将所述关键词转换成词向量;
基于所述词向量和预设的支持向量机SVM模型,确定所述新闻数据的新闻类别。
本发明基于自然语言处理技术,对新闻数据进行分类。由于本发明的技术方案主要是针对中文新闻数据的分类方法,需要先进行分词处理,可采用jieba、HanLP、FudanNLP等中文分词服务。
基于分词后的新闻数据,计算新闻数据中的各词语的词频,可采用TF-IDF(termfrequency–inverse document frequency,词频--反转文件频率)算法,计算新闻数据中的各分词的词频。再基于各分词的词频,提取新闻数据的关键词。具体地,可设定关键词的个数为M,提取词频最大的前M个分词,作为该新闻数据的关键词;也可设定词频阀值为L,提取词频大于L的分词,作为该新闻数据的关键词,上述M、L均为正整数。
可选地,所述基于所述分词后的新闻数据及词频算法,提取所述新闻数据的关键词之前,所述方法还包括:
去除所述分词后的新闻数据中,与所述新闻数据分类无关的词语。
分词后的新闻数据中与新闻数据分类无关的词语可包括两类。第一类词语为没有明确含义的词语,如语气助词、副词、介词、连接词等;第二类词语为有明确含义的词语,但该词语却与新闻数据分类无关的词,比如“记者:XX”、“XX日报讯”等等。上述两类词语均与新闻数据的分类无关,先将上述两类词语去除后,再进行词频统计,不会对分类准确度产生影响。此外,如此操作,会使需要统计词频的分词数目和总体分词数目都变少,而统计词频需要消耗较大的系统资源并耗费较多时间的。因此,先将上述两类词语从分词后的新闻数据中去除,再进行词频统计,可在不改变分类准确度的情况下,节省系统资源并提高系统运行的效率。
可选地,所述提取所述新闻数据的关键词,包括:提取所述新闻数据的关键词,其中,所述关键词为名词或动词。
以中文为例,词语可分为两大类,一类是实词:名词、动词、形容词、数词、量词、代词、区别词;另一类是虚词:副词、介词、连词、助词、叹词、语气词、拟声词。首先,虚词是没有实际含义的词,选择关键词时,虚词不予考虑。其次,汉语的基本语义主要是通过名词和动词来表达,而形容词、数词、量词等主要是起到辅助、修饰、加深程度、表达感情色彩等作用。因此,新闻数据中的名词或动词,相比其它词性的词语,对于新闻数据的分类,具有更大的影响。进行分类建模或新闻分类时,选择M个名词或动词作为关键词,相比不考虑词性,直接选择词频最高的M个词作为关键词,可具有更高的分类准确率。
根据预设的词向量模型,将所述关键词转换成词向量。词向量模型可以包括以下任意一种:word2vector模型、LSA(Latent Semantic Analysis,潜在语义分析)矩阵分解模型、PLSA(ProbabilityLatent Semantic Analysis,概率潜语义分析)模型和LDA(LatentDirichlet Allocation,潜在狄利克雷分布)模型。
本发明可根据新闻类别的特点,构建K级类别树,其中,K为正整数。第一级类别为类目树中的最高类别。先构建类别树的第一级类别,比如,体育、财经、娱乐等。再根据第一级类别中的各类别内容,构建其对应的第二级类别,比如,体育对应的第二级类别可包括:英超、中超、西甲等。依次类推,直到构建完第K级类别。
本发明中所指的新闻类别可为上述K级类别树的第K级类别,即K级类别树的叶子节点所对应的类别。需指出的是,为使本发明达到较好的技术效果,K级类别树中的每级类别所代表的新闻领域应尽可能相斥。
所述新闻数据的各关键词对应的词向量集合,组成所述新闻数据的词向量。基于新闻数据的词向量和新闻数据的类别,建立SVM模型,并进行大量的数据训练,以确保SVM模型具有预想的准确率。
可选地,基于所述词向量、所述关键词的影响权重和预设的SVM模型,确定所述新闻数据的新闻类别,其中,所述关键词的影响权重表征所述关键词在所述新闻数据中的影响度。
在两篇同样都为2000字且都以“足球”为关键词的新闻数据中,一篇新闻数据中的“足球”的词频为10,该新闻以报道某位知名球星的传记为主,对应新闻类别应为“人物风采”;而另一篇新闻数据中的“足球”的词频为30,该新闻以报道我国近两年足球界的蓬勃发展为主,对应的新闻类别应为“足球”。显然同样的关键词对不同新闻数据的影响度是不同的。在建立SVM模型或对新闻数据进行分类时,综合考虑所述词向量和所述关键词的影响权重,相比只考虑所述词向量,会使新闻分类具有更高的准确率。关键词的影响权重可用关键词在新闻数据中出现概率表示,如:Qi=Pi/P,其中,Qi为新闻数据中第i个关键词的影响权重,Pi为新闻数据中第i个关键词的词频,P为新闻数据的总的词频。
进一步地,所述基于所述词向量和预设的支持向量机SVM模型,确定所述新闻数据的新闻类别,包括:
根据核函数参数,将所述词向量的特征数据从第一空间映射到第二空间,其中,所述第一空间的维度低于所述第二空间的维度;
确定所述词向量的特征数据在所述第二空间内的分布面;
根据所述分布面及对应的惩罚因子,确定所述新闻数据的新闻分类。
核函数参数是SVM模型的一个重要参数,一旦确定了核函数,映射函数和特征空间也就确定了。最优分类面的复杂度以及相应的最小经验误差由特征空间的维数来决定。若特征空间的维数过低,最后寻找到的分类面就可能过于简单,这将引起较大的预判误差;反之分类面可能很复杂,预判误差也会相应小。所以在实际应用中,只有核函数参数的选择恰当,才能找到适于当前数据集的映射函数,将数据样本集映射到相应的特征空间,找到最佳的分类面。
所述的第一空间为词向量的分布空间。在维度较低的第一空间,SVM模型无法对数据进行较好的分类。先将第一空间映射到维度较高的第二空间,再将所述词向量从第一空间映射到第二空间。由于第二空间的维度高于第一空间的维度,将词向量从第一空间映射到第二空间,会使词向量具备了更多的维度信息。在第一空间中距离较近,而无法分开的两个词向量样本,在第二空间可能具有较远的距离,从而使SVM模型可以把在第一空间不好分的样本数据分开,使构造的SVM模型具有较高的分类准确率。
进一步地,训练所述预设的SVM模型包括:
根据c的取值范围、g的取值范围、c的移动间隔及g的移动间隔,进行c和g的取值移动,其中,c为SVM模型的惩罚因子,g为SVM模型的核函数参数;
根据数据样本进行基于一次移动后c及g对应的备选SVM模型的检测,获得备选SVM的分类准确率;
选择分类准确率最高的备选SVM模型的c和g构建所述预设的SVM模型。
本发明通过一种网格搜索寻优算法来实现对SVM模型的训练。具体地,根据c的取值范围、g的取值范围、c的移动间隔及g的移动间隔,确定c和g的每一个可能组合值,每一个可能组合值在两个参数的空间范围构成网格。按照c的移动间隔及g的移动间隔,遍历网格中所有的点。并对每次移动得到的组合参数值,进行分类性能的测试,选择使分类准确率最高的参数作为最优参数,构建预设的SVM模型,从而使预设的SVM模型达到预定的分类准确率。
图2为本发明实施例提供的一种新闻分类装置示意图,包括:
分配模块201,用于主节点将总任务队列中的爬虫任务分配到N个从任务队列中,其中,N为大于1的正整数;
获取模块202,用于第n个从节点从第n个所述从任务队列中获取所述爬虫任务,其中,所述第n个从节点对应于所述第n个从任务队列,其中,n为小于或等于N的正整数;
分类模块203,用于所述第n个从节点根据所述爬虫任务获取新闻数据,并确定所述新闻数据的新闻类别。
进一步地,所述装置还包括:
确定模块204,用于所述主爬虫节点按照爬虫任务的优先级或爬虫任务进入所述总任务队列的时间,确定所述爬虫任务的获取顺序;
所述分配模块201,具体用于根据所述获取顺序,将所述总任务队列中的爬虫任务依次分配到N个所述从任务队列中。
进一步地,分配模块201,还用于所述主节点将待处理爬虫任务对应的链接地址进行去重操作;
将去重操作后的所述待处理爬虫任务加入到所述总任务队列,其中,所述待处理爬虫任务为预先设定的或由从节点提交的。
进一步地,所述分类模块203,还用于对所述新闻数据进行分词处理,获得分词后的新闻数据;
基于所述分词后的新闻数据及词频算法,提取所述新闻数据的关键词;
将所述关键词转换成词向量;
基于所述词向量和预设的支持向量机SVM模型,确定所述新闻数据的新闻类别。
进一步地,所述分类模块203,还用于根据核函数参数,将所述词向量的特征数据从第一空间映射到第二空间,其中,所述第一空间的维度低于所述第二空间的维度;
确定所述词向量的特征数据在所述第二空间内的分布面;
根据所述分布面及对应的惩罚因子,确定所述新闻数据的新闻分类。
进一步地,所述装置还包括:
训练模块205,用于根据c的取值范围、g的取值范围、c的移动间隔及g的移动间隔,进行c和g的取值移动,其中,c为SVM模型的惩罚因子,g为SVM模型的核函数参数;
根据数据样本进行基于一次移动后c及g对应的备选SVM模型的检测,获得备选SVM的分类准确率;
选择分类准确率最高的备选SVM模型的c和g构建所述预设的SVM模型。
图3为本发明实施例提供的一种网元结构示意图,包括:
收发器301、存储器302及处理器303;
所述存储器302,用于存储计算机可执行指令,所述可执行指令能够实现上述的新闻分类方法;
所述处理器303,分别与收发器301及存储器302连接,用于控制所述收发器301及所述存储器302,执行所述计算机可执行指令。
本发明实施例提还提供了一种计算机存储介质,该计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现本发明的新闻分类方法。所述计算机存储介质可为非瞬间存储介质。
本发明实施例提还提供了一种新闻分类方法。所述新闻分类方法可基于Scrapy架构的基础上,实现了分布式爬虫来采集新闻。本发明对应的新闻分类系统主要包含两个子系统:分布式爬虫子系统和新闻分类子系统。
图4为本发明实施例提供的Scrapy框架结构示意图。Scrapy框架主要由中心引擎(Engine)、调度器(Scheduler)、下载器(DownLoader)、数据解析模块(Spider)、数据管道模块(ItemPipeline)等五个部分组成。
中心引擎作为Scrapy的核心大脑,它负责管理系统中所有的数据流向,每个模块中的输入输出都需要经过中心引擎进行调度。
调度器负责周期性的接受从中心引擎传递过来的爬虫任务,并将该任务其存入自身的待抓取队列中,以待后续中心引擎向其发出获取爬虫任务请求时,再从自身的待抓取队列中取出交给中心引擎。该组件的核心目的是为了对爬取请求分类管理,常见的待抓取队列有基于先进先出的,后进先出的以及基于优先级的等等。
下载器负责网页的下载工作。与传统的直接向浏览器发送HTTP请求不同,下载器采用异步的方式建立与远程服务器的联系,程序不需要一直阻塞等待服务器端返回的响应,而是先完成自身的其它任务,待收到远程服务器的响应后,才跳转回去进行相应的处理,该设计模块解决了程序需要花费大量时间在IO阻塞的问题。
数据解析模块是由开发人员编写的爬虫核心程序,该程序负责解析从下载器中传递过来的网页源代码,常见的网页解析器有beautifulsoup、lxml等等。当从网页中抽取出后续需要跟进的URL链接时,数据解析模块会将此URL封装为系统设定的Request请求并交给中心引擎,而从网页中提取出的数据则交给数据管道处理。通常数据解析可以对应多个程序,每个程序负责解析一个特定的网站。
数据管道模块负责将数据解析模块中传递过来的数据进行进一步处理。常见的操作包括:编码转换、数据清洗以及数据持久化等等。
上述技术方案涉及到下列相关技术:
Redis数据库是一款由Salvatore Sanfilippo研发出的No SQL数据库。作为一款开源的高性能的基于Key-Value(关键词-值)的内存型数据库,官方提供了五种数据类型来满足用户不同场景下的需求,并支持当前所有主流的开发语言。
Kafka的定位是一个流式处理平台,由Apache软件基金会研发。目前大多数公司都将其作为多种类型的数据管道和消息系统使用,同时其高吞吐量、高容错等特性也很好适合在大规模消息处理的场景中使用。
图5为本发明实施例提供的一种消息处理层框架图,包括:Kafka消息系统、Redis数据库、Redis监控模块及消息预处理模块。Redis监控模块包括:请求处理、请求匹配,请求结果返回及状态计数器。消息预处理模块包括:消息接收、消息验证,消息分类存储及状态计数器。
本发明所述的分布式爬虫技术采用Scrapy爬虫与消息队列相结合的方法实现。
消息队列作为整个新闻系统的入口,负责请求的接收、验证和处理。基于滑动窗口的整数计数器是由Redis的有序集合来实现,有序集合可选用zset类型来实现,该集合中的每个元素都会关联一个Double类型的分数,并且按照分数的大小从小到大排列。消息预处理模块和Redis监控模块中每个插件都关联着一个属于自己的计数器,当插件处理了一个新的请求时,向有序集合中插入一条元素,元素的值及分数都设置为当前系统的时间;当需要统计某插件最近window(窗口)秒内处理了多少个请求时,首先获取当前系统时间t1,然后减去滑动窗口window的值求出以当前系统时间为轴,前window秒的具体时间点t2,并遍历有序集合将元素分数小于t2的元素删除,最后统计集合中目前元素的数量,该值就是最近window秒内该插件处理的请求数。
图6为本发明实施例提供的一种业务逻辑层框架图,包括:一个主节点、多个从节点。
在主从式架构模式中,系统由一个主节点、若干个分别部署并且能和主节点互通的从节点及MongoDB集群构成。主节点负责整个系统中爬虫抓取任务的分发工作、集群中爬虫节点对站点访问限速工作以及抓取过程中URL去重工作。该主节点由任务调度器,限速器以及过滤器三个模块组成,其中,任务调度器从总爬虫任务队列中取出爬虫任务,派发给任务队列1至任务队列n中。从节点中的爬虫管理器可管理多个Scrapy爬虫程序。
采用自然语言处理技术的新闻分类,具有下列相关指标,包括:精确度、召回率、召回率。
如下表所示,精确率的计算公式是:P=TP/(TP+FP),它计算的是所有正确被检索的item占实际被检索到的比例。
召回率的计算公式是:P=TP/(TP+FN),它计算的是所有正确被检索的item占所有检索到的比例。
相关(正类) | 无关(负类) | |
被检索到 | TP(正类判定为正类) | FP(负类判定为正类) |
未被检索到 | FN(正类判定为负类) | TN(负类判定为负类) |
支持向量机利用径向基核函数进行的分类时,分类效果基本取决于下列两个参数:惩罚因子c、核函数参数g。
惩罚因子c是决定支持向量机分类效果的一个关键参数,c决定支持向量机对数据错判的惩罚程度的权重,它的大小对最优超平面的位置有直接影响。c值越大,对判别误差的惩罚越大;反之,对判别误差的惩罚越小。
核函数参数g是另一个重要参数,由支持向量机的基本理论不难看出,一旦确定了核函数,映射函数和特征空间也就确定了。最优分类面的复杂度以及相应的最小经验误差由特征空间的维数来决定。若特征空间的维数过低,最后寻找到的分类面就可能过于简单,这将引起较大的预判误差;反之分类面可能很复杂,预判误差也会相应小。所以在实际应用中,只有核函数参数g的选择恰当,才能找到适于当前数据集的映射函数,将数据样本集映射到相应的特征空间,找到最佳的分类面。
国际上并没有公认的SVM模型参数最优选择问题的最好方法。目前,统计实验法、PSO(Particle Swarm Optimization,粒子群算法)、GA(Genetic Algorithm,遗传算法)、grid search(网格搜索法)等都是较常用的方法。统计实验法的计算量大,且较难得到准确的最优参数,该方法需要人工的进行大量的实验来寻找最优参数。遗传算法与粒子群算法属于启发式算法,这类算法很复杂,易于获得局部最优参数。而网格搜索法将给出的空间范围按统一规格划分为网格,并把目标参数映射到划分好的网格中,然后按照一定步长计算网格中的点并寻找使分类性能最高的参数。
本发明选择了网格搜索寻优算法来进行SVM模型的训练。网格搜索寻优算法的基本思想是将给定的空间范围按统一规格划分为网格,并把目标参数映射到划分好的网格中,然后按照一定步长遍历网格中的点,将每次搜寻的参数进行分类性能的测试,选择使分类准确率最高的参数作为最优参数。本发明采用的支持向量机中需要对惩罚因子c和核函数参数g进行参数寻优,因此把参数c、g映射到已知二维平面中,通过交叉验证法搜索最优的c、g参数。网格搜索法在理论上能够对网格中的所有点进行搜索验证,能够得到最优参数。具体实现步骤如下:
设定c和g的搜索范围,并设定每次搜索时的移动间隔;
根据数据样本集以及交叉验证法,根据c、g的每个可能取值进行建模,并检测所得的分类模型;
遍历完网格中所有点,取使分类准确率最高的c、g作为参数,建设预设的SVM模型。
图7为本发明实施例提供的一种新闻分类方法流程示意图,如图7所示,所述新闻分类方法包括以下步骤:
步骤701,通过爬虫程序解析新闻稿件;
步骤702,通过中文分词库jieba分词;
步骤703,使用TF-IDF来提取关键词;
步骤704,根据预设的算法把关键词转换为词向量;
步骤705,使用SVM模型对新闻稿件进行分类。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (12)
1.一种新闻分类方法,其特征在于,所述方法包括:
主节点将总任务队列中的爬虫任务分配到N个从任务队列中,其中,N为大于1的正整数;
第n个从节点从第n个所述从任务队列中获取所述爬虫任务,其中,所述第n个从节点对应于所述第n个从任务队列,其中,n为小于或等于N的正整数;
所述第n个从节点根据所述爬虫任务获取新闻数据,并确定所述新闻数据的新闻类别。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述主爬虫节点按照爬虫任务的优先级或爬虫任务进入所述总任务队列的时间,确定所述爬虫任务的获取顺序;
所述主节点将总任务队列中的爬虫任务分配到N个从任务队列中,包括:根据所述获取顺序,将所述总任务队列中的爬虫任务依次分配到N个所述从任务队列中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述主节点将待处理爬虫任务对应的链接地址进行去重操作;
将去重操作后的所述待处理爬虫任务加入到所述总任务队列,其中,所述待处理爬虫任务为预先设定的或由从节点提交的。
4.根据权利要求1所述的方法,其特征在于,
所述确定所述新闻数据的新闻类别包括:
对所述新闻数据进行分词处理,获得分词后的新闻数据;
基于所述分词后的新闻数据及词频算法,提取所述新闻数据的关键词;
将所述关键词转换成词向量;
基于所述词向量和预设的支持向量机SVM模型,确定所述新闻数据的新闻类别。
5.根据权利要求4所述的方法,其特征在于,
所述基于所述词向量和预设的支持向量机SVM模型,确定所述新闻数据的新闻类别,包括:
根据核函数参数,将所述词向量的特征数据从第一空间映射到第二空间,其中,所述第一空间的维度低于所述第二空间的维度;
确定所述词向量的特征数据在所述第二空间内的分布面;
根据所述分布面及对应的惩罚因子,确定所述新闻数据的新闻分类。
6.根据权利要求5所述的方法,其特征在于,训练所述预设的SVM模型包括:
根据c的取值范围、g的取值范围、c的移动间隔及g的移动间隔,进行c和g的取值移动,其中,c为SVM模型的惩罚因子,g为SVM模型的核函数参数;
根据数据样本进行基于一次移动后c及g对应的备选SVM模型的检测,获得备选SVM的分类准确率;
选择分类准确率最高的备选SVM模型的c和g构建所述预设的SVM模型。
7.一种新闻分类装置,其特征在于,所述装置包括:
分配模块,用于主节点将总任务队列中的爬虫任务分配到N个从任务队列中,其中,N为大于1的正整数;
获取模块,用于第n个从节点从第n个所述从任务队列中获取所述爬虫任务,其中,所述第n个从节点对应于所述第n个从任务队列,其中,n为小于或等于N的正整数;
分类模块,用于所述第n个从节点根据所述爬虫任务获取新闻数据,并确定所述新闻数据的新闻类别。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
确定模块,用于所述主爬虫节点按照爬虫任务的优先级或爬虫任务进入所述总任务队列的时间,确定所述爬虫任务的获取顺序;
所述分配模块,具体用于根据所述获取顺序,将所述总任务队列中的爬虫任务依次分配到N个所述从任务队列中。
9.根据权利要求7所述的装置,其特征在于,
所述分类模块,还用于对所述新闻数据进行分词处理,获得分词后的新闻数据;
基于所述分词后的新闻数据及词频算法,提取所述新闻数据的关键词;
将所述关键词转换成词向量;
基于所述词向量和预设的支持向量机SVM模型,确定所述新闻数据的新闻类别。
10.根据权利要求9所述的装置,其特征在于,
所述分类模块,还用于根据核函数参数,将所述词向量的特征数据从第一空间映射到第二空间,其中,所述第一空间的维度低于所述第二空间的维度;
确定所述词向量的特征数据在所述第二空间内的分布面;
根据所述分布面及对应的惩罚因子,确定所述新闻数据的新闻分类。
11.一种网元,其特征在于,所述网元包括:
收发器、存储器及处理器;
所述存储器,用于存储计算机可执行指令,所述可执行指令能够实现权利要求1至6任一项提供的方法;
所述处理器,分别与收发器及存储器连接,用于控制所述收发器及所述存储器,执行所述计算机可执行指令。
12.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被执行后,能够实现权利要求1至6任一项提供的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363340.3A CN111858918A (zh) | 2019-04-30 | 2019-04-30 | 新闻分类方法及装置、网元、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363340.3A CN111858918A (zh) | 2019-04-30 | 2019-04-30 | 新闻分类方法及装置、网元、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858918A true CN111858918A (zh) | 2020-10-30 |
Family
ID=72966684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910363340.3A Pending CN111858918A (zh) | 2019-04-30 | 2019-04-30 | 新闻分类方法及装置、网元、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858918A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580355A (zh) * | 2020-12-30 | 2021-03-30 | 中科院计算技术研究所大数据研究院 | 一种新闻资讯话题检测及实时聚合方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180050A (zh) * | 2016-03-11 | 2017-09-19 | 精硕科技(北京)股份有限公司 | 一种数据抓取系统及方法 |
CN108268457A (zh) * | 2016-12-30 | 2018-07-10 | 广东精点数据科技股份有限公司 | 一种基于svm的文本分类方法及装置 |
-
2019
- 2019-04-30 CN CN201910363340.3A patent/CN111858918A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180050A (zh) * | 2016-03-11 | 2017-09-19 | 精硕科技(北京)股份有限公司 | 一种数据抓取系统及方法 |
CN108268457A (zh) * | 2016-12-30 | 2018-07-10 | 广东精点数据科技股份有限公司 | 一种基于svm的文本分类方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580355A (zh) * | 2020-12-30 | 2021-03-30 | 中科院计算技术研究所大数据研究院 | 一种新闻资讯话题检测及实时聚合方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210157858A1 (en) | Hierarchical, parallel models for extracting in real time high-value information from data streams and system and method for creation of same | |
CN107590188B (zh) | 一种自动化垂直细分领域的爬虫爬取方法及其管理系统 | |
US7886046B1 (en) | Methods and apparatus for predicting impact of proposed changes and implementations in distributed networks | |
CN104331477B (zh) | 基于联邦式检索的云平台并发性能测试方法 | |
US8965893B2 (en) | System and method for grouping multiple streams of data | |
WO2017097231A1 (zh) | 话题处理方法及装置 | |
CN106991160B (zh) | 一种基于用户影响力以及内容的微博传播预测方法 | |
EP3918758A1 (en) | Real-time event detection on social data streams | |
CN104951539A (zh) | 互联网数据中心有害信息监测系统 | |
CN108647329B (zh) | 用户行为数据的处理方法、装置及计算机可读存储介质 | |
Parker et al. | Novel class detection and feature via a tiered ensemble approach for stream mining | |
US20180210897A1 (en) | Model generation method, word weighting method, device, apparatus, and computer storage medium | |
CN103942268B (zh) | 搜索与应用相结合的方法、设备以及应用接口 | |
Derakhshan et al. | Continuous Deployment of Machine Learning Pipelines. | |
Wu et al. | Efficient near-duplicate detection for q&a forum | |
WO2020231382A1 (en) | Cache optimization via topics in web search engines | |
Elagib et al. | Big data analysis solutions using MapReduce framework | |
CN107766234A (zh) | 一种基于移动设备的网页健康度的测评方法、装置及系统 | |
CN109710767A (zh) | 多语种大数据服务平台 | |
CN113449168A (zh) | 主题网页数据抓取方法、装置、设备及存储介质 | |
US20200110815A1 (en) | Multi contextual clustering | |
CN111858918A (zh) | 新闻分类方法及装置、网元、存储介质 | |
CN103823847A (zh) | 一种关键词的扩充方法及装置 | |
Brefeld et al. | Document assignment in multi-site search engines | |
Martínez-Castaño et al. | Polypus: a big data self-deployable architecture for microblogging text extraction and real-time sentiment analysis |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20201030 |
|
WD01 | Invention patent application deemed withdrawn after publication |