CN110597981B - 一种采用多策略自动生成摘要的网络新闻概要*** - Google Patents
一种采用多策略自动生成摘要的网络新闻概要*** Download PDFInfo
- Publication number
- CN110597981B CN110597981B CN201910868998.XA CN201910868998A CN110597981B CN 110597981 B CN110597981 B CN 110597981B CN 201910868998 A CN201910868998 A CN 201910868998A CN 110597981 B CN110597981 B CN 110597981B
- Authority
- CN
- China
- Prior art keywords
- news
- article
- data
- sentence
- abstract
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 112
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 79
- 238000004458 analytical method Methods 0.000 claims description 80
- 239000013598 vector Substances 0.000 claims description 54
- 238000013461 design Methods 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000012544 monitoring process Methods 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 19
- 230000008901 benefit Effects 0.000 claims description 16
- 230000009193 crawling Effects 0.000 claims description 16
- 239000011159 matrix material Substances 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 15
- 230000000694 effects Effects 0.000 claims description 13
- 230000011218 segmentation Effects 0.000 claims description 13
- 238000010606 normalization Methods 0.000 claims description 12
- 238000009826 distribution Methods 0.000 claims description 9
- 238000013016 damping Methods 0.000 claims description 8
- 238000007418 data mining Methods 0.000 claims description 7
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 claims description 5
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 4
- 230000007774 longterm Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 230000008520 organization Effects 0.000 claims description 4
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 4
- 229910052711 selenium Inorganic materials 0.000 claims description 4
- 239000011669 selenium Substances 0.000 claims description 4
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 17
- 230000018109 developmental process Effects 0.000 description 16
- 238000011161 development Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 14
- 230000000007 visual effect Effects 0.000 description 10
- 238000010276 construction Methods 0.000 description 9
- 241000239290 Araneae Species 0.000 description 8
- 238000005065 mining Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000006854 communication Effects 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 230000004931 aggregating effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 239000012141 concentrate Substances 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000005180 public health Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012916 structural analysis Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/34—Browsing; Visualisation therefor
- G06F16/345—Summarisation for human users
-
- 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)
- Document Processing Apparatus (AREA)
Abstract
本发明属于新闻软件开发技术领域,公开了一种采用多策略自动生成摘要的网络新闻概要***及方法,进行多新闻网站多领域的数据采集,自动生成文章摘要,生成基于新闻文摘的新闻简讯以及进行阅读分析。本发明以多种策略自动摘要生成算法为核心,针对每一篇从网络中抓取的原新闻报道,对应生成多种新闻简讯,并且去除掉大篇幅正文内容的新闻简讯,帮助用户快速预览、翻阅感兴趣的新闻报道,有助于提高新闻网站的点击率和阅读率;并且有助于提高多新闻网站聚合后高效、规范地分领域分类的使用价值;实现了对大量新闻的快速阅读,节省了用户的大量阅读新闻原文的时间和精力。
Description
技术领域
本发明属于新闻软件开发技术领域,尤其涉及一种采用多策略自动生成摘要的网络新闻概要***。
背景技术
目前,最接近的现有技术:
随着社交类软件、媒体类软件的迅猛发展,海量的网络文本正以惊人的速度增长。在信息***的时代,如何从海量文本中有效提取重要信息,成为一个亟待解决的问题。针对该问题已陆续出现了多种解决方案,其中,自动文本摘要技术是一种热门且广泛被人们接受的方法。
在一定程度上,自动文本摘要技术可以帮助用户从接收的信息中快速获取重要的文本信息。获取信息的质量和效率依赖于自动文本摘要算法的好坏。目前,该技术处于探索阶段,自动提取出的文摘句子还存在冗余、片面、混合脏数据等问题。
市面上新闻网站繁多,从内容来源上划分,可以大致将新闻网站分为:新闻聚合类网站、专业新闻网站、垂直行业型新闻网站、网络新媒体网站。其中,新闻聚合类网站广泛采集专业新闻网站、垂直行业型新闻网站提供的原始新闻报道,而第三、四种的垂直行业型新闻网站和网络新媒体网站属于泛新闻型网站,非传统的新闻网站。此四类具有代表性的部分网站,如下表1所示:
表1四类具有代表性的部分新闻网站
市面上存在各式新闻网站,却缺乏一款提供自动文摘服务的新闻软件。用户面对每天出现的海量信息,在时间、精力有限的情况下,常常难以快速找到自己感兴趣的话题新闻。
另外,现有新闻网站还普遍缺乏一个关键功能,即基于统计读者过去阅读的新闻内容,对读者的阅读兴趣进行预测、分析的信息服务。因此,读者未能通过统计分析以往的阅读内容来充分了解自身的阅读兴趣。
综上所述,现有技术存在的问题是:
(1)自动文本摘要技术处于探索阶段,自动提取出的文摘句子存在冗余、片面、混合脏数据等问题。
(2)市面上缺乏提供自动文摘服务的新闻软件。新闻读者只能通过依次翻阅新闻标题列表,再点击某一篇可能感兴趣的新闻标题的链接,最后进入一篇新闻报道的详情页进行阅读。这会使读者产生几种阅读体验不畅的情况:
其一,用户仅仅通过翻阅新闻标题,也并不能完全确定是否真正感兴趣该篇新闻报道,尤其是客观存在着的部分“标题党”的文章。
其二,针对每一篇新闻,用户都必须进入新闻详情页来阅读全文,平均阅读一篇新闻所花费的时间较高。
其三,用户不能通过快速预览新闻最重要的节选内容,来确定是否需要精读当前可能感兴趣的新闻报道。
(3)现有技术缺乏基于统计读者以往阅读过的内容进行新闻可视化分析的服务。这导致了用户不能通过数据分析手段,充分客观地了解自己所感兴趣的新闻话题。
解决上述技术问题的难度:
(1)数据采集难度高。其一,对于不同的新闻网站,存在不同的分类、不同的新闻数据属性、不同的网页文档标记结构。其二,现行网站的反爬虫策略丰富多样,如何绕行高难度的网站反爬机制,进而成功下载新闻网页?因此,如何完成对多个新闻网站新闻数据的下载、存储与解析,是一项艰巨的任务。
因此,解决上述问题存在总体难度较高。程序设计、实施难度均较大。
(2)效果卓著的自动文本摘要难度高。其一,自动文本摘要技术还处于发展、探索阶段。因此,当前阶段未能存在一种完美无瑕的单文档自动文本摘要算法。本方案中,暂通过配置效果相对较优的、多种算法策略的自动文本摘要算法以供用户自行选择。
因此,解决上述问题存在总体难度较高。设计效果较优的多种文摘算法与***功能较高,实施软件功能难度中等。
(3)在用户点击一篇新闻详情页链接时,如何提高用户对可能感兴趣新闻进行原文全文阅读的命中率?如何降低用户阅读一则新闻报道的平均阅读时间?如何帮助读者快速预判一篇报道需要全文精读,还是泛读?针对这些问题需要通过如下方式来解决:
改造现有新闻网站中对新闻列表页的设计,提高读者对可能感兴趣新闻文摘的快速预览。原有网站仅提供新闻标题信息和新闻详情页链接两大信息,而改造后的新闻列表页,将呈现聚合了新闻标题、新闻详情页链接、新闻预览配图、新闻文摘、文章关键词、发布日期、发布组织等数据属性的新闻简讯列表。
这种方法的好处有几点:
其一,添加新闻预览配图与关键词。利用人体对图形图像信息的处理、理解速度最快的本质,针对每一则报道,添加一幅新闻相关的报道配图;基于软件工程学中的一些基本软件设计经验:人脑最多能够摄入的菜单项数7±2,因此,在阅读原文前,在每一条新闻简讯中提前展示提取的3-5个原文关键词。添加的新闻预览配图与关键词,能够帮助读者快速确定新闻内容的关键要素。
其二,添加新闻文摘。新闻文摘浓缩了原新闻详情页中原文的关键内容,有助于读者短时间内阅读文章概貌,提高读者对感兴趣文章的预判准确度。
在解决上述问题的过程中,也产生了新的技术问题:如何提取新闻原文的配图?假设新闻原文中不存在配图,又如何解决?
因此,解决上述问题存在总体难度较高。
(4)针对每一用户,如何统计分析并可视化其以往的阅读内容?需要细化数据库字段,细化并记录用户的历史阅读数据。在用户需要查看个人阅读数据时,通过数据库SQL查询技术、界面图表展示技术等方法实现本服务。
因此,解决上述问题存在总体难度高。
解决上述技术问题的意义:
1)基于自动文摘的新闻简讯设计,帮助新闻读者快速阅读多篇新闻简讯,降低新闻读者平均阅读一则新闻报道的阅读时间,有助于降低读者阅读所需的时间、精力,提高阅读效率。
2)基于自动文摘的新闻简讯设计,帮助新闻读者对可能感兴趣新闻报道的预判,有助于读者决定采取精度,还是泛读策略;避免读者像阅读普通新闻网站时的情况,读到不感兴趣的“标题党”新闻;此举有助于提高用户阅读体验。
3)个性化的可视化新闻阅读分析服务,有助于新闻读者通过数据分析手段,充分客观地了解自己所感兴趣的新闻话题。
发明内容
针对现有技术存在的问题,本发明提供了一种采用多策略自动生成摘要的网络新闻概要***及方法。本发明主要目的是面向新闻阅读者,提供能够聚合多个新闻网站的多个新闻领域,以及采集读者近期感兴趣的新闻话题的相关新闻信息。通过分析每一篇网络新闻报导,自动生成含该报导的新闻摘要、新闻原文链接、文章关键词、新闻标题、新闻作者、发布日期、文章所属领域、新闻原文预览图等概要性信息的新闻简讯。读者通过浏览经过上述方法处理后自动生成的新闻简讯列表,快速了解一篇新闻的重要内容,大幅提高读者的阅读效率、缩减其阅读时间。
本发明是这样实现的,
一种采用多策略自动生成摘要的网络新闻概要***,所述采用多策略自动生成摘要的网络新闻概要***包括:
数据采集模块,用于采集原始新闻数据。
文本分析模块,用于实现对新闻文章的自动摘要生成、关键词提取。
新闻阅读模块,对采集、分析完成后的新闻数据进行分类查阅新闻简讯、查阅用户监测话题的新闻简讯、快速查询新闻、新闻摘要生成策略管理、新闻专题监测服务、可视化分析用户阅读过的新闻报道。
用户服务模块,为用户提供用户注册、用户登陆、退出、找回密码、修改密码、查看账户信息服务。
数据服务子***,用于采集新闻数据、提供应用子***所需的新闻数据。
分析子***,构建词向量模型、分析新闻内容生成摘要和关键词数据挖掘任务,并向应用子***提供挖掘的文本数据。
应用子***,通过软件界面的形式展示新闻简讯、用户服务信息服务。
进一步,新闻阅读模块还用于提供分行业领域的新闻简讯的阅读,新闻简讯包括:文章所属领域、文章标题、文章关键词、文章摘要、新闻发布组织名称、文章发布时间基本信息。并提供专题阅读新闻简讯服务,实现用户对某些新闻事件的长期跟踪与阅读。
同时,提供基于用户历史阅读内容的阅读分析服务。以及提供内容配置服务,包括摘要策略配置、专题监测管理。
本发明的另一目的在于提供一种所述采用多策略自动生成摘要的网络新闻概要***的采用多策略自动生成摘要的网络新闻概要方法,所述采用多策略自动生成摘要的网络新闻概要方法包括:
步骤一,多新闻网站多领域的数据采集。
步骤二,采用多种摘要生成策略,自动生成指定策略的文章摘要。
步骤三,生成基于新闻文摘的新闻简讯。
步骤四,阅读分析。
进一步,所述步骤一的多新闻网站多领域的数据采集包括:
1)新闻领域分类归一化:参照国家标准《中文新闻信息分类与代码GB/T 20093-2006》的分类方法,对多新闻网站,统一不同网站的新闻文章的分类标准。
2)新闻数据的结构归一化:对多新闻网站,统一不同网站新闻数据的数据结构。进行网络爬虫进行统一解析与存储。
3)多网站多领域爬虫设计:使用模板并借用Jsoup、selenium底层网络请求工具,将网络爬虫需要针对不同新闻网站时所需要完成的新闻文章、新闻作者、新闻评论数据的解析、存储任务进行程序逻辑设计;此外,在采集新闻文章时,需提前预配置当前网站当前爬行方法的所属领域,即预设文章的所属分类。
进一步,所述网络爬虫的方法包括:定时采集文章链接任务、定时采集文章数据。
所述定时采集文章链接任务的方法包括:
1)任务读取网站网址。
2)下载领域网站网址。
3)解析网页为一份文章链接集合。
4)设置文章链接为待解析状态。
5)存储文章链接集合。存储前,向数据库查询是否已存在该文章链接,若无,则存储。
所述定时采集文章数据的方法包括:
1)任务启动,并查询一条数据库中待解析状态的文章链接。查询得到该链接以后,设置状态为解析中,启用数据库事务,对多线程的采集任务读取到脏数据进行处理。
2)下载并解析文章链接对应的一篇文章。
3)待解析文章网页完成时,设置当前文章链接的状态为解析完成。
进一步,所述步骤二通过多种中文摘要生成算法生成对应的多份中文新闻摘要,过程如下:
待数据采集模块解析一篇网络新闻后,便向文本分析模块输入该篇新闻文章。然后,在由多种摘要生成策略下,文本分析模块输出分别输出多种摘要算法生成的文摘。之后,存储将不同摘要生成策略的文摘依次存储至数据库中。最后,当用户需要阅览新闻概要***的新闻简讯时,***将根据指定的摘要策略查询新闻简讯所需的文摘。在这一过程中,用户可自行选择某一摘要策略。
进一步,所述网络新闻概要***根据指定的摘要策略查询新闻简讯所需的文摘中,摘要策略包括以下四种方法:
a)基于共现词汇与TextRank的经典摘要算法。
b)基于BM25与TextRank的摘要算法。
c)基于Word2Vec词向量与TextRank的摘要算法。
d)融合共现词汇、Word2Vec与TextRank的摘要算法。
进一步,基于共现词汇与TextRank的经典摘要算法具体包括:
1)文本预处理:
针对输入的一篇新闻文章,进行分句、分词,并清除停用词,生成二维数组格式的句子词汇矩阵。其中,停用词表采用百度停用词表。句子词汇矩阵的每一行代表一条句子。每一条句子以一维数组形式存在。矩阵内每一行句子内的元素是原文章对应句子内的某一词汇。
2)初始化TextRank图模型Graph:
图模型Graph的属性包括:表示句子节点的nodes、表示图模型中边关系的二维邻接矩阵edges、表示节点权重值TR的nodesWeight、经过分词后的句子词汇矩阵sentencesWords、阻尼系数d。初始化edges中每一条边关系的权重值为0,表示暂未建立节点间的边关系。初始化每一节点权重nodesWeight[i]的值为任意常数,取值1.0。
3)计算文本内任意两句子间的关联度得分,构建图模型的边关系edges[i][j]。
其中,i、j分别表示文章中的第i条句子和第j条句子。计算出的得分即图模型中边edges[i][j]的权重值。
4)迭代更新图模型:
更新图模型Graph的句子Vi的节点权重nodesWeight[i],为TR(Vi)值。更新的计算公式如下:
其中,Similarity(Vi,Vj)表示句子Vi与句子Vj的关联度得分;Vi表示当前句子。TR(Vi)表示当前节点权重(重要性)。d表示阻尼系数,一般默认取值为0.85。{TR(V1),TR(V2),…,TR(Vm)}表示指向当前句子节点Ti的所有节点对应的TR值,即所有的前继节点对应的TR值。
当迭代更新图模型内任一句子节点Vi第N次迭代运算所得权重值的与上一次迭代所得值的最大差值小于一个趋近于0的小数threshold时,迭代终止。小数阈值threshold设置为0.00000001。
5)提取摘要句子:
根据图模型的句子节点权重值nodesWeight[i]的大小,降序排序后,依次输出前N个句子,为该篇文章的自动文摘。
6)将多种自动文摘算法封装为一个自动文摘数据接口,提供文本计算服务。每当网络爬虫下载一篇新闻文章后,便调用上述数据接口,将根据调用接口时指定的不同文摘算法策略,生成不同个摘要算法对应的不同自动文摘;然后,分别存储其多份自动文摘至数据库中;最后,等待读者使用***服务时调取用户指定的文摘。
进一步,所述四种方法仅在计算文本内任意两句子的关联度Similarity(Vi,Vj)不同,具体包括:
Ⅰ)基于共现词汇与TextRank的经典摘要算法。
其中:Wk,即句子与句子中的同时出现词汇,也称“共现词汇”。|Vi|,表示句子的词汇数。
Ⅱ)基于BM25与TextRank的摘要算法:
其中,Wk,表示两句子的共现词汇;BM25Score(word),表示词汇word在“文档集”documents中的BM25得分;“文档集”documents,表示将当前一篇含有多条句子的新闻文章视为一份文档集,一条句子即视为一篇“文章”,那么,一整篇新闻文章则被视为多份“文章”的集合。BM25的计算公式如下:
其中,|D|,表示当前新闻文章的句子总数,也就是:“文档集”documents的“文章”总数;avgDl,表示“文档集”documents的平均“文章”长度;tf,即词频概率,表示指定词汇word在当前“文章”中出现过的频率,由指定词汇word在第i份“文章”documents[i]中出现的次数除以当前“文章”documents[i]的长度得到;参数k、b,一般地,分别取0.625、0.75;IDFScore(word),表示指定词汇word在整篇文章中的普遍重要性,其计算公式如下:
其中,WordFequencyInDocuments(word)表示在“文档集”documents中出现过指定词word的“文章”总数。
Ⅲ)基于Word2Vec词向量与TextRank的摘要算法:Word2Vec词向量模型是基于NNLM的简化版神经网络语言模型;包含通过周围词预测中间词汇的Skip-Gram模型与通过中间词汇预测周围词的CROW模型,将任一词汇转换为一维固定长度的数学向量;利用数学向量可直接运算的优势,计算任意两个词汇的余弦相似度作为两词汇的语义相似度;
对于句子与的相似度如下:
其中,AVG(Si),表示句子Sj的句子级词向量,它由句子Sj内的n个Word2Vec词汇词向量平均求和所得。其计算公式如下:
其中,Wi,是句子内的第i个词汇的一维词向量,由Word2Vec的Skip-Gram模型生成,形如:词汇“家”,查询经过Word2Vec训练后的模型,可得到一份指定长度为N的一维行向量[0.4,0.46,0.24,0.54,0.1324,…,0.46],利用词向量和余弦相似度公式,可实现任意两词汇的语义相似度或语义距离的计算。
Ⅳ)融合共现词汇、Word2Vec与TextRank的摘要算法:融合共现词汇在文本中对高频词汇的统计优势和Word2Vec词向量在语义表征上的独特优势,计算两句子的关联度,即值,以此优化摘要算法效果。
计算公式如下:
其中,CoWordsScore(Si,Sj),表示两句子的共现词汇得分,其计算公式如下:
CoWordsScore(Si,Sj)=[log(|{Wk|Wk∈Si&Wk∈Sj}|+1)+1]
此处的Wk表示两句中共同出现的词汇,即“共现词汇”。
而AVG(Si),表示句子Sj的句子级词向量,它由句子Si内的n个Word2Vec词汇词向量平均求和所得。其计算公式如下:
其中,Wi,是句子内的第i个词汇的一维词向量,由Word2Vec的Skip-Gram模型生成。进一步,所述步骤三的生成基于新闻文摘的新闻简讯具体包括:
1)根据不同的排序规则,向数据库查询新闻文章数据。排序规则有如:按照发布日期降序表示最新的报道、按照文章评论数表示最热门的新闻报道、按照新闻领域分组排序、按照文章关键词分组排序等排序方式,这些排序规则可两两组合;
2)根据数据库查询的文章,获得生成一条新闻简讯所需要的基本信息:新闻标题、新闻原文链接、新闻所属领域、新闻摘要、新闻发布者、发布日期、新闻关键词。
3)根据文章的原文链接新闻原文中获取新闻报道的配图。如果原新闻报道中不存在配图,通过在搜索引擎图像库中搜索新闻文章标题分词后生成的若干关键词,选择第一张图像作为该条新闻的最佳配图。
4)最终,软件***终端的读者可直接阅读多份推送的新闻简讯,每条新闻简讯中包含:新闻标题、新闻原文链接、新闻所属领域、新闻摘要、新闻发布者、发布日期、新闻关键词、文章预览配图。
进一步,所述步骤四的阅读分析具体包括:
1)不同时间段的阅读文章数据,读者能够实时查看个人在过去不同时间里所阅读的文章篇数、摘要字数、原文总字数等阅读数据。
2)关键词词云,读者能够实时查看个人在过去时间段里已阅读的新闻报导所涉及的、排名前列的热门关键词。
3)领域分布,读者能够实时查看个人过去所阅读文章的行业类别分布。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的采用多策略自动生成摘要的网络新闻概要方法。
综上所述,本发明的优点及积极效果为:
本发明以多种策略自动摘要生成算法为核心,针对每一篇从网络中抓取的原新闻报道,对应生成聚合了-包含新闻标题、新闻分类名称、发布时间、新闻发布者、新闻摘要、关键词、报道预览图、原新闻链接的新闻简讯,这种去除掉大篇幅正文内容的新闻简讯,能够帮助用户快速预览、翻阅感兴趣的新闻报道,有助于提高新闻网站的点击率和阅读率;有助于提高多新闻网站聚合后高效、规范地分领域分类的使用价值;为多新闻网站的数据下载、解析与存储提供了完整的技术方案,丰富了网络爬虫的设计方法;本发明以多种策略自动摘要生成算法为核心,生成具有丰富内容的新闻简讯,用户通过直接阅读文摘,实现对大量新闻的快速阅读,节省用户的大量阅读新闻原文的时间和精力。
相比于现有技术,本发明的优点还包括:
本发明提出了通过采用多种生成自动摘要策略聚合生成新闻简讯的方式,实现简化新闻内容的新闻概要***。在摘要技术不完全成熟的情况下,用户亦可自定义摘要策略,让用户具有更自由的选择。以多种策略自动摘要生成算法为核心,生成具有丰富内容的新闻简讯。新闻简讯中浓缩了原新闻详情页中原文的关键内容,能够帮助读者快速确定新闻内容的关键要素,实现用户快速预览、翻阅感兴趣的新闻报道。本发明有助于读者短时间内阅读文章概貌,提高读者对感兴趣文章的预判准确度,提高读者阅读体验;本发明实现用户直接阅读文摘对大量新闻的快速阅读,可节省用户的大量阅读新闻原文的时间和精力;本发明有助于提高新闻网站的点击率和阅读率。
本发明数据采集模块解析一篇网络新闻后,便向文本分析模块输入该篇新闻文章。然后,在由多种摘要生成策略下,文本分析模块输出分别输出多种摘要算法生成的文摘。之后,存储将不同摘要生成策略的文摘依次存储至数据库中。最后,当用户需要阅览新闻概要***的新闻简讯时,***将根据指定的摘要策略查询新闻简讯所需的文摘。在这一过程中,用户可自行选择某一摘要策略。
附图说明
图1是本发明实施例提供的采用多策略自动生成摘要的网络新闻概要***示意图。
图2是本发明实施例提供的多策略自动生成摘要的网络新闻概要方法流程图。
图3是本发明实施例提供的核心技术流程图。
图4是本发明实施例提供的基于GB/T20093-2006标准的中文新闻分类的改进分类图。
图5是本发明实施例提供的句子重要性曲线图。
图6是本发明实施例提供的某用户阅读文章服务的可视化分析示意图。
图7是本发明实施例提供的网络新闻概要***软件架构示意图。
图8是本发明实施例提供的功能模块与子***划分示意图。
图9是本发明实施例提供的数据服务子***一级模块构成图。
图10本发明实施例提供的数据业务支持程序子模块包图。
图11是本发明实施例提供的数据业务支持程序子模块的内部构成图。
图12是本发明实施例提供的网络爬虫***程序子模块包图。
图13是本发明实施例提供的网络爬虫程序子模块内部构成图。
图14是本发明实施例提供的工具程序子模块包图。
图15是本发明实施例提供的工具程序子模块的内部构成图。
图16是本发明实施例提供的后端分层结构原理图。
图17是本发明实施例提供的分析子***的一级模块构成图。
图18是本发明实施例提供的分析子***包图。
图19是本发明实施例提供的分析子***的内部构成图。
图20是本发明实施例提供的应用子***包图。
图21是本发明实施例提供的应用子***的内部构成图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有技术中,自动文本摘要技术处于探索阶段,自动提取出的文摘句子存在冗余、片面、混合脏数据等问题。市面上缺乏提供自动文摘服务的新闻软件。
缺乏基于统计读者历史阅读内容进行新闻可视化分析的服务。
为解决上述问题,本发明提供一种采用多策略自动生成摘要的网络新闻概要***及方法。下面结合附图对本发明作详细描述。
如图1所示,本发明实施例提供的采用多策略自动生成摘要的网络新闻概要***,具体功能模块包括:数据采集模块、文本分析模块、新闻阅读模块和用户服务模块。
数据采集模块,用于采集原始新闻数据。
文本分析模块,实现对新闻文章的自动摘要生成、关键词提取。
新闻阅读模块,对采集、分析完成后的新闻数据进行应用。
用户服务模块,包括用户注册、用户登陆、退出、找回密码、修改密码、查看账户信息的功能,为用户提供个性化设置。
在本发明实施例中,新闻阅读模块包含以下四个功能:
(1)提供分行业领域的新闻简讯的阅读,新闻简讯包括:文章所属领域、文章标题、文章关键词、文章摘要、新闻发布组织名称、文章发布时间等基本信息。如果新闻阅读者对某一新闻简讯感兴趣,可点击该简讯进行原文阅读。
(2)提供专题阅读新闻简讯服务,可实现用户对某些新闻事件的长期跟踪与阅读。一项专题基本信息包括:专题名称、专题所监测的关键词。每一条专题的配置都由用户个人定义,每位用户可设置的专题监测项数目有限制。
(3)提供基于用户历史阅读内容的阅读分析服务。通过向读者提供可视化的统计分析服务,展现其过去时间段中读者已阅读过的新闻报道的篇数、字数、所涉及的热门关键词、领域分布,帮助读者更加了解自身阅读偏好与兴趣。同时,也有助于充分挖掘阅读活动本身的价值与乐趣,促进全民爱好阅读。
(4)提供内容配置服务,包括摘要策略配置、专题监测管理。读者可自行选择不同的摘要生成策略。提供专题监测服务,用户可自行添加、删除、编辑监测感兴趣的新闻话题事件。专题监测配置项中包括:专题名称、专题监测的关键词组两大数据项,用户一旦添加专题监测事件后,便可查看到专题事件中设置的关键词组相关的多条最新新闻简讯。
在本发明实施例中,所述采用多策略自动生成摘要的网络新闻概要***,进一步包括:数据服务子***、分析子***、应用子***。
数据服务子***,采集新闻数据、提供应用子***所需的新闻数据。
分析子***,构建词向量模型、分析新闻内容生成摘要和关键词等数据挖掘任务,并向应用子***提供文本数据挖掘能力。
应用子***,根据业务场景和功能需求,以友好的软件界面的形式展示新闻简讯、用户服务等信息服务。
在本发明实施例中,数据服务子***作为后端向应用子***提供对用户模块、数据采集模块、新闻阅读模块的***业务逻辑方面的数据处理。
文本分析子***,同样作为后端,向数据服务子***提供文本分析模块的业务逻辑处理。
应用子***作为前端***,整合数据服务子***所能提供的所有数据业务服务,实现应用场景的最终落地。
在本发明实施例中,网络新闻概要***中设定了四种改进的、基于TextRank的单文档摘要生成算法,分别是:
1)基于共现词汇与TextRank的经典摘要算法。
2)基于BM25与TextRank的摘要算法。
3)基于Word2Vec词向量与TextRank的摘要算法。
4)融合共现词汇、Word2Vec与TextRank的摘要算法。
在实际开发文本概要***时,根据不同摘要算法的特征和需要,设计更多摘要策略,可并不仅限于此四种。
上述四种摘要算法的基本思路、基本处理流程均一致。具体如下:
i)文本预处理:针对输入的一篇新闻文章,进行分句、分词,并清除停用词,生成二维数组格式的句子词汇矩阵。其中,停用词表可采用开源的百度停用词表。句子词汇矩阵的每一行代表一条句子。每一条句子以一维(列)数组形式存在。矩阵内每一行句子内的元素是原文章对应句子内的某一词汇。
ii)初始化TextRank图模型(Graph)。图模型Graph的属性包括:表示句子节点的nodes、表示图模型中边关系的二维邻接矩阵edges、表示节点权重值TR的nodesWeight、经过分词后的句子词汇矩阵sentencesWords、阻尼系数d。初始化edges中每一条边关系的权重值为0,表示暂未建立节点间的边关系。初始化每一节点权重nodesWeight[i]的值为任意常数,一般取值1.0。-
iii)不同算法采取不同的计算方法,计算文本内任意两句子间的关联度得分(Similarity),进而构建图模型的边关系edges[i][j]。其中,i、j分别表示文章中的第i条句子和第j条句子;计算出的得分即图模型中边edges[i][j]的权重值。
iv)迭代更新图模型。更新图模型Graph的句子Vi的节点权重nodesWeight[i],也就是TR(Vi)值。更新的计算公式如下:
其中,Similarity(Vi,Vj)表示句子Vi与句子Vj的关联度得分;Vi表示当前句子;TR(Vi)表示当前节点权重(重要性);d表示阻尼系数,一般默认取值为0.85;{TR(V1),TR(V2),…,TR(Vm)}表示指向当前句子节点Ti的所有节点对应的TR值,即所有的前继节点对应的TR值。
当图模型内任一句子节点Vi第N次迭代运算所得权重值的与上一次迭代所得值的最大差值小于一个趋近于0的小数threshold时,迭代终止。一般地,小数阈值threshold设置为0.00000001。
这一过程,也可称为“图模型的训练”。
v)提取摘要句子。根据图模型的句子节点权重值nodesWeight[i]的大小,降序排序后,依次输出前N个句子,即为该篇文章的自动文摘。
将多种文本摘要算法封装为一项数据接口,每当上一阶段中爬虫爬取一篇新闻文章后,便调用文摘生成接口,将自动生成的文摘存储至数据库中等待读者查询时使用。
在本发明实施例中,上述四种自动摘要算法,仅在计算文本内任意两句子的关联度Similarity(Vi,Vj)-时,有所区别点为:
1)基于共现词汇与TextRank的经典摘要算法。这一算法由TextRank算法的提出者Rada Mihalcea所发明。其句子间关联度Similarity计算方法如下:
其中,Wk,即句子与句子中的同时出现词汇,也称“共现词汇”;|Vi|,表示句子Vi的词汇数。
分母对数化是为了避免越长的句子获得越高分数的错误倾向。
2)基于BM25与TextRank的摘要算法。这一基于BM25与TextRank的改进算法由Federico Barrios等作者提出,在以DUC为代表的学术会议所举办的单文档自动文摘任务的数据集中取得较好效果。其句子间关联度Similarity计算方法如下:
其中,Wk,表示两句子的共现词汇;BM25Score(word),表示词汇word在“文档集”documents中的BM25得分;“文档集”documents,表示将当前一篇含有多条句子的新闻文章视为一份文档集,一条句子即视为一篇“文章”,那么,一整篇新闻文章则被视为多份“文章”的集合。BM25的计算公式如下:
其中,|D|,表示当前新闻文章的句子总数,也就是:“文档集”documents的“文章”总数;avgDl,表示“文档集”documents的平均“文章”长度;tf,即词频概率,表示指定词汇word在当前“文章”中出现过的频率,由指定词汇word在第i份“文章”documents[i]中出现的次数除以当前“文章”documents[i]的长度得到;参数k、b,一般地,分别取0.625、0.75;IDFScore(word),表示指定词汇word在整篇文章中的普遍重要性,其计算公式如下:
其中,WordFequencyInDocuments(word)表示在“文档集”documents中出现过指定词word的“文章”总数。
3)基于Word2Vec词向量与TextRank的摘要算法。关于Word2Vec词向量模型,其一,它是一个由Google开发者Tomas Mikolov等人所研发的基于NNLM的简化版神经网络语言模型。其二,它包含Skip-Gram(跳词)模型与CBOW(连续词袋)模型,前者是通过周围词预测中间词汇,而后者是通过中间词汇预测周围词;据学者研究证实,Skip-Gram在各方指标更为优异。其三,它能够将任一词汇转换为一维固定长度的数学向量。利用数学向量可直接运算的优势,进而计算任意两个词汇的余弦相似度作为两词汇的语义相似度。因此,对于句子与的相似度如下:
对于句子与的相似度如下:
其中,AVG(Si),表示句子Sj的句子级词向量,它由句子Si内的n个Word2Vec词汇词向量平均求和所得。其计算公式如下:
其中,Wi,是句子内的第i个词汇的一维词向量,由Word2Vec的Skip-Gram模型生成。形如:词汇“家”,查询经过Word2Vec训练后的模型,可得到一份指定长度为N的一维行向量[0.4,0.46,0.24,0.54,0.1324,…,0.46],利用词向量和余弦相似度公式,可实现任意两词汇的语义相似度或语义距离的计算
4)融合共现词汇、Word2Vec与TextRank的摘要算法。这一算法系本概要***中新提出的算法。基本思想是:融合共现词汇在文本中对高频词汇的统计优势和Word2Vec词向量在语义表征上的独特优势,计算两句子的关联度,即值,以此优化摘要算法效果。因此,关联度Similarity计算公式如下:
其中,CoWordsScore(Si,Sj),表示两句子的共现词汇得分,其计算公式如下:
CoWordsScore(Si,Sj)=[log(|{Wk|Wk∈Si&Wk∈Sj}|+1)+1]
此处的Wk表示两句中共同出现的词汇,即“共现词汇”。
而AVG(Si),表示句子Sj的句子级词向量,它由句子Si内的n个Word2Vec词汇词向量平均求和所得。其计算公式如下:
其中,Wi,是句子内的第i个词汇的一维词向量,由Word2Vec的Skip-Gram模型生成。
至此,四种单文档自动摘要算法即叙述完毕。
如图2所示,本发明实施例提供的采用多策略自动生成摘要的网络新闻概要方法,具体包括:
S101,多新闻网站多领域的数据采集。
S102,自动生成文章摘要。
S103,生成基于新闻文摘的新闻简讯。
S104,阅读分析。
步骤S101多新闻网站多领域的数据采集中,多新闻网站多领域的数据采集主要解决如何将互联网中各新闻网站新闻源数据在反爬虫机制下成功下载、解析、并统一地存储至数据库的问题。
具体包括:
1)新闻领域分类归一化:针对多新闻网站,统一不同网站的新闻文章的分类标准。
2)新闻数据的结构归一化:针对多新闻网站,统一不同网站新闻数据的数据结构。便于网络爬虫进行统一解析与存储。
3)多网站多领域爬虫设计:使用模板方法这一设计模式,借用Jsoup、selenium等底层网络请求工具,将网络爬虫需要针对不同新闻网站时所需要完成的新闻文章、新闻作者、新闻评论数据的解析、存储任务进行程序逻辑设计;此外,在采集新闻文章时,需提前预配置当前网站当前爬行方法的所属领域,即预设文章的所属分类。
所述爬虫分为五大模块:下载类模块、解析类模块、存储类模块、爬虫调度模块、业务实现模块。
爬行的具体流程包括:
(1)定时采集文章链接任务,基本流程包括:
1)任务读取网站网址。
2)下载领域网站网址。
3)解析网页为一份文章链接集合。
4)设置文章链接为待解析状态。
5)存储文章链接集合。在存储前,向数据库查询是否已存在该文章链接,若无,则存储。
(2)定时采集文章数据,基本流程包括:
1)任务启动,并查询一条数据库中待解析状态的文章链接。查询得到该链接以后,设置其状态为解析中,整个过程启用数据库事务,以防止多线程的采集任务读取到脏数据。
2)下载并解析文章链接对应的一篇文章。
3)待解析文章网页完成时,设置当前文章链接的状态为解析完成。
步骤S102进一步包括:
待数据采集模块解析一篇网络新闻后,便向文本分析模块输入该篇新闻文章。然后,在由多种摘要生成策略下,文本分析模块输出分别输出多种摘要算法生成的文摘。之后,存储将不同摘要生成策略的文摘依次存储至数据库中。最后,当用户需要阅览新闻概要***的新闻简讯时,***将根据指定的摘要策略查询新闻简讯所需的文摘。在这一过程中,用户可自行选择某一摘要策略。
步骤S103生成基于新闻文摘的新闻简讯中,当用户需要阅览新闻时,按照如下流程生成经过聚合了多家新闻网站的新闻简讯列表,以供读者阅览;具体包括:
1)根据不同的排序规则,向数据库查询新闻文章数据。排序规则有如:按照发布日期降序表示最新的报道、按照文章评论数表示最热门的新闻报道、按照新闻领域分组排序、按照文章关键词分组排序等排序方式,这些排序规则可两两组合。
2)根据数据库查询的文章,获得生成一条新闻简讯所需要的基本信息:新闻标题、新闻原文链接(URL)、新闻所属领域、新闻摘要、新闻发布者、发布日期、新闻关键词。
3)根据文章的原文链接(URL)向新闻原文中获取新闻报道的配图。如果原新闻报道中不存在配图,则:通过在搜索引擎图像库中搜索新闻文章标题分词后生成的若干关键词,选择第一张图像作为该条新闻的最佳配图。
4)最终,软件***终端的读者可直接阅读多份推送的新闻简讯,。其中,每条新闻简讯中包含:新闻标题、新闻原文链接(URL)、新闻所属领域、新闻摘要、新闻发布者、发布日期、新闻关键词、文章预览配图。当读者阅读至某一篇感兴趣的新闻报道时,可点击该条新闻简讯,跳转至新闻原文进行阅读。
至此,读者阅读聚合了多家新闻网站的新闻简讯服务构建完成。
步骤S104阅读分析中,每当读者所在计算机设备的光标滑过、或者点击过一份新闻简讯,便标记其为已阅读的新闻简讯。
通过这种方式实时记录、实时统计读者阅读的新闻内容,并向读者直接提供几类基于统计过去阅读内容的可视化分析服务;具体包括:
1)不同时间段的阅读文章数据。读者能够实时查看个人在过去不同时间里所阅读的文章篇数、摘要字数、原文总字数等阅读数据。
2)关键词词云。读者能够实时查看个人在过去时间段里已阅读的新闻报导所涉及的、排名前列的热门关键词。
3)领域分布。读者能够实时查看个人过去所阅读文章的行业类别分布。
通过以上的用户个性化的可视化分析服务,有助于读者了解本人在过去一段时间所主要发生的事情以及了解读者个人的阅读偏好,充分挖掘阅读活动本身存在的统计价值。
下面结合具体实施例对本发明作进一步的描述。
实施例
1、本发明的核心技术流程是多新闻网站多领域的数据采集、自动生成文章摘要、生成基于新闻文章的新闻简讯、阅读分析。下面本发明从软件***的目的与功能、核心技术流程进行描述。具体如下:
1.1软件***的目的与功能。
1.1.1本发明方法的主要目的是面向新闻阅读者,提供能够聚合多个新闻网站的多个新闻领域,以及采集读者近期感兴趣的新闻话题的相关新闻信息。通过分析每一篇网络新闻报导,自动生成含该报导的新闻摘要、新闻原文链接、文章关键词、新闻标题、新闻作者、发布日期、文章所属领域、新闻原文预览图等概要性信息的新闻简讯。读者通过浏览经过上述方法处理后自动生成的新闻简讯列表,快速了解一篇新闻的重要内容,大幅提高读者的阅读效率、缩减其阅读时间。
1.1.2发明的软件功能。
本发明能够提供的功能服务有:
(1)能够下载、解析并存储多家新闻网站的新闻数据。
(2)针对每一篇网络新闻,均能自动生成含有新闻摘要、新闻原文链接、文章关键词、新闻标题、新闻作者、发布日期、文章所属领域分类、新闻原文预览配图等概要性信息的新闻简讯。如果读者浏览到某一条感兴趣的新闻简讯时,也能够通过点击该新闻简讯的原文链接直接阅读新闻原文。
(3)能够向用户提供多种自动文摘策略进行自由选择。自动文摘策略,包括:基于共现词汇的TextRank摘要算法、基于Word2Vec的TextRank摘要算法、融合Word2Vec与共现词汇的TextRank摘要算法、基于BM25的TextRank摘要算法。
(4)满足用户对热门新闻事件、感兴趣的新闻话题的及时跟踪,提供专题监测服务。新闻阅读者可向软件***添加需要监测的关键词组。***通过关键词组搜寻相关报道给新闻阅读者。
(5)提供个性化的、基于统计读者以往阅读新闻内容的新闻可视化服务。满足新闻阅读者对以往阅读过的新闻内容在文章篇数、文章字数、文章热门关键词、文章所属领域分布的数据可视化分析,帮助读者了解自己在不同时间段的阅读偏好。
本发明可将***划分为如四大功能模块:数据采集、文本分析、新闻阅读、用户服务,各功能模块所能提供的信息服务如下表1所示。(注意你的字体和行间距要统一)
表1软件***各功能模块提供的信息服务项
数据采集模块,解决原始新闻数据的来源问题。
文本分析模块,实现对新闻文章的自动摘要生成、关键词提取。
新闻阅读模块,本质上是对采集、分析完成后的新闻数据进行应用,是本***的核心功能模块,主要包含以下四个功能:
1)面向用户,提供分行业领域阅读最新、最热的新闻简讯。新闻简讯包括了:文章所属领域、文章标题、文章关键词、文章摘要、新闻发布组织名称、文章发布时间等基本信息。如果新闻阅读者对某一新闻简讯感兴趣,可点击该简讯进行原文阅读。
2)面向用户,提供专题阅读新闻简讯服务,可实现用户对某些新闻事件的长期跟踪与阅读。一项专题基本信息包括:专题名称、专题所监测的关键词。每一条专题的配置都由用户个人定义,每位用户可设置的专题监测项数目有限制,比如:最多可设置5条专题监测项。除了将后者的“文章所属领域”信息替换为“专题监测名称”以外,专题监测的新闻简讯基本信息在分领域阅读的新闻简讯基本信息基本一致。
3)面向用户,提供基于用户历史阅读内容的阅读分析服务。通过向读者提供可视化的统计分析服务,展现其过去时间段中读者已阅读过的新闻报道的篇数、字数、所涉及的热门关键词、领域分布,帮助读者更加了解自身阅读偏好与兴趣。同时,也有助于充分挖掘阅读活动本身的价值与乐趣,促进全民爱好阅读。
4)面向用户,提供内容配置服务,包括摘要策略配置、专题监测管理。读者可自行选择不同的摘要生成策略。同时,满足用户自行添加、删除、编辑监测用户感兴趣的新闻话题事件,也就是专题监测服务。专题监测配置项中包括:专题名称、专题监测的关键词组两大数据项。用户一旦添加专题监测事件后,用户便可查看到专题事件中设置的关键词组相关的多条最新新闻简讯。
用户服务模块,解决不同读者对所提供的所有阅读服务的用户个性化设置的存储于区分。这一模块包括了:用户注册、用户登陆、退出、找回密码、修改密码、查看账户信息等常见软件***的用户服务功能。
1.2为了实现上述目标,核心技术流程主要包括:多新闻网站多领域的数据采集、自动生成文章摘要、生成基于新闻文摘的新闻简讯、阅读分析四大部分,具体执行流程如图3所示。
1.2.1多新闻网站多领域的数据采集
本子流程主要解决如何将互联网中各新闻网站新闻源数据在反爬虫机制下成功下载、解析、并统一地存储至数据库的问题。具体包括:
1)新闻领域分类归一化:针对多新闻网站,统一不同网站的新闻文章的分类标准。
2)新闻数据的结构归一化:针对多新闻网站,统一不同网站新闻数据的数据结构。便于网络爬虫进行统一解析与存储。
3)多网站多领域爬虫设计:使用模板方法这一设计模式,借用Jsoup、selenium等底层网络请求工具,将网络爬虫需要针对不同新闻网站时所需要完成的新闻文章、新闻作者、新闻评论数据的解析、存储任务进行程序逻辑设计;此外,在采集新闻文章时,需提前预配置当前网站当前爬行方法的所属领域,即预设文章的所属分类。
最终,完成多网站下新闻数据的采集任务。
1.2.1.1新闻领域分类归一化。
由于不同新闻网站,分类类目不同,将造成难以对新闻文章使用统一的分类标准进行自动归类的问题。
针对这一问题:面对不同网站的不同新闻分类,如何实现客观、***全面的新闻领域归一化的分类结果?传统的新闻领域的手工分类存在周期长、效率低、成本高、分类者在分类时主观性倾向强、分类片面化(不***不全面)等问题,这将难以适应新闻领域分类的客观需求,难以满足信息化时代和大数据时代的实际要求,更难以满足本***对新闻领域分类的迫切需要。因此,实现新闻领域分类类目的统一、标准化,是中文新闻信息分类的必经之路。
本发明进行了多网站新闻领域的分类的归一化处理。如下:
《中文新闻分类国家标准》中对中文新闻领域划分了一级分类、二级分类,三级分类。其中一级分类包含:医药卫生、传媒、教育、服务业与旅游业、文化与休闲娱乐、文学与艺术、体育、交通运输与邮政物流、信息产业、科学技术、能源与水利水务、环境与气象、矿业与工业、建筑业与房地产、商业贸易与海关、财政与金融、经济、农业农村、社会劳动与灾难事故、军事、外交与国际关系、司法与法律政治等22大类,二级分类包含:防务建设、军事变革、社会体制、灾难事故、农业、林业、畜牧业、区域经济、国际经济关系、企业、财政、金融、证券业、保险业、商品市场、房地产、工业、能源、电子计算机、通信设备、体育事业、文学、音乐、舞蹈、服务业、高等教育、传媒业、公共卫生等295个次级分类。三级分类数目更是超过300个。
国家标准的新闻分类数目非常繁多,而针对***的用户需求,仅需要至多16类及以下,方便用户直观观察、方便***对新闻领域的多领域新闻分布的可视化。故而,依据《中文新闻分类国家标准》中的新闻分类原则,在国家标准中原有的新闻分类基础上,进行新闻领域的更高层次的分类归纳。其分类原则如下:
1)科学性。采用新闻主题与学科相结合的立类方法,科学合理地设置各级类目,使分类体系具有主题的直接性和学科的科学性。
2)***性。类目采取从总到分、从一般到具体的层级分类方法,并根据新闻信息的本质特征或者属性予以***化,整个分类体系由主类表和复分表共同构成。
3)实用性。在保证分类体系科学性、逻辑性的同时,把一些新闻信息量大、社会广泛关注的内容跨越逻辑层次,作为一级类列出,以适应实际应用的需求。
4)简明性。对各类层次的划分,力求简单明了。采用复分方法对共性内容进行抽取,采用仿分手段指明细分结构,以压缩类目表的篇幅。
5)稳定性。在一、二级类目的设置上,充分考虑国计民生、社会发展息息相关的各个重要领域,结合新闻领域数十年分类工作中积累的经验,并借鉴国内外的相关标准,力求使其具有相对的稳定性。
6)可扩展性。根据新闻信息高度动态性的特点,采用开放性体系分类结构,为随着社会发展不断涌现的新事物预留类目空间,以便在分类体系相对稳定的前提下能够扩充和延续。
如图4所示,最终形成了包含15类新一级类目,原国家标准中的22类一级分类成为现二级类目,原二级分类成为现三级类目。其新一级类目表如下表2所示。
表2 POMS***新闻领域一二级分类表
序号 | 一级类名 | 二级类名 |
1 | 科技 | 信息产业、科学技术 |
2 | 教育 | 教育 |
3 | 文娱 | 服务业与旅游业、文化与休闲娱乐业、文学与艺术、体育 |
4 | 政治 | 政治 |
5 | 法律 | 法律与司法 |
6 | 国际 | 外交与国际关系 |
7 | 军事 | 军事 |
8 | 社会 | 社会劳动与灾难事故、农业与农村 |
9 | 财经 | 经济、财政金融、商业外贸与海关 |
10 | 建筑与房产 | 基本建设/建筑业与房地产 |
11 | 工业与制造 | 矿业与工业 |
12 | 环境与能源 | 能源与水利水务、环境与气象 |
13 | 交通与物流 | 交通运输与邮政物流 |
14 | 传媒 | 传媒业 |
15 | 医疗 | 医疗与卫生 |
1.2.1.2新闻数据的结构归一化。
解决完不同新闻网站统一分类类目的问题以后,又出现了新的问题:不同新闻网站,所能提供的新闻数据属性不尽相同,将造成网络爬虫下载新闻数据以后,难以用统一的数据结构存储新闻数据。如果不对新闻数据的数据结构统一化处理,会给后续的分析工作带来极大的挑战。因此,在爬虫解析前,需要提前设计抓取后解析的新闻数据的目标数据结构。
1)抽取新闻实体与关系。经过***的需求分析和总体设计,可找出核心的新闻结构数据,可分成:新闻文章链接、新闻文章、新闻作者、新闻领域四大数据实体。从四者关系上,一篇新闻文章与一条新闻文章链接一一对应,一对一关系。一个作者能够发布多篇文章,一对多关系。多篇新闻文章均属于某一主题,多对一关系。
2)字段分析。不同新闻网站所能提供的新闻字段信息存在共性与差异性,共性如:新闻文章的标题、发布日期、文章内容、新闻链接,新闻作者的名称、基本简介以及新闻领域。差异性如:新闻文章的阅读人数、评论人数、点赞人数、转发人数、发布设备,作者的所属行业、性别、法人主体、认证类型、所属地区、粉丝数等在不同网站仅能获取到部分字段信息。
因此,***对四项实体及关系在不同网站所会出现的所有字段类型信息均全部纳入其对应的实体结构中,最终根据不同网站所能提供字段进行定制化的解析和数据存储。
1.2.1.3多网站多领域爬虫设计。
不同新闻网站以及同一网站内不同新闻领域存在不同的页面布局,如何完成新闻数据统一的结构化解析是一个重要问题,采取以下方案进行解决。
1)模板方法
在阐述***爬虫具体设计前,先介绍软件设计模式中的一种模式“模板方法”。
模板方法模式在模板类中抽象出一道(模板)方法中定义程序算法流程的骨架,将某些步骤的具体实现延迟到其具体的子类中。使得子类可以在不改变算法结构的情况下,重新定义算法中某些步骤的具体实现。
2)***爬虫。
如果说新闻数据的结构化归一设计解决了爬虫的数据共性属性设计,也就是解决了数据解析与存储的格式问题的话,那么数据爬虫的模式设计,则解决了爬虫的共性行为设计。
其一,爬虫设计的原理基于设计模式----模板方法,抽取采集新闻时所需要的通用流程抽象为一道名为crawl的模板方法------爬行方法(crawl),在爬虫的模板抽象类(FieldSpider)的爬行方法(crawl)中调用其抽象类中的各内置类模块对象的方法,实现对新闻数据下载、解析、存储的所有爬虫行为,如:存储类模块、解析类模块、下载类模块。爬取某网站时,调用已经重写具体新闻网站的解析子类模块的具体解析方法和具体爬虫实现子类。
其二,爬虫分为三大模块:下载类模块、解析类模块、存储类模块、爬虫调度模块、业务实现模块。爬虫调度模块也就是上文提及的抽象模板类(FieldSpider),其内置另三大类模块的对象,实现其爬行数据时所需的下载、解析、存储行为。
其三,业务实现模块(business)中包含继承抽象模板爬虫类(FieldSpider)的业务爬虫类和继承数据解析的抽象类(Resolver)的业务解析类。
在本发明实施例中,爬行的具体流程。
为提高爬行效率,***为爬虫模块开启两类相互独立的定时执行任务,一类是:定时采集指定网站的指定领域的网址中的文章链接。另一类是:定时采集文章数据。
①定时采集文章链接任务。
其基本流程是:
1)任务读取网站网址。
2)下载领域网站网址。本阶段是一大技术难点,需要选择已设计的合适的爬行方案,绕过反爬机制,下载得到含新闻报道链接的网页。
3)解析网页为一份文章链接集合。
4)设置文章链接为待解析状态。
5)存储文章链接集合。在存储前,向数据库查询是否已存在该文章链接,若无,则存储。
文章链接解析完成。
②定时采集文章数据。
其基本流程是:
1)任务启动,并查询一条数据库中待解析状态的文章链接。查询得到该链接以后,设置其状态为解析中,整个过程启用数据库事务,以防止多线程的采集任务读取到脏数据。
2)下载并解析文章链接对应的一篇文章。本过程是爬虫实现的第二大技术难点,依旧是由于大多数网站反爬机制过强,易于识别爬虫行为,从而难以下载得到文章网页。本***实现本过程的通常解决过程是:
首先,通过浏览器和抓包工具,分析正常人类在浏览器上浏览该网站网页时的网络通信过程和前端程序执行过。其次,通过Jsoup或者ChromeDriver仿真模拟浏览器行为,至于何种时候选择Jsoup还是ChromeDriver,依据是何种工具易于“骗过”反爬机制,则选择该工具。
本***实现时,模拟网络请求的常见措施,有:
①通过线程延时,降低单位时间内的网页请求次数。②携带Cookie。③通过Java的JavaScript脚本执行引擎类(ScriptEngine)执行前端JavaScript函数,模拟网站网页在浏览器中的加密过程,获得加密结果,再在网络请求时携带该加密数据。④模拟鼠标滑动,获取难以通过分析JavaScript函数执行解密任务的数据。
其中,爬取搜狗新闻网站的微信文章数据便使用了策略①②③。
1.2.2自动生成文章摘要
上一子流程已经成功解决了新闻数据采集的问题,在本子流程中,主要解决自动生成文章摘要的问题。
在现有自动文摘技术发展还不充分、不成熟的情况下,设计能够面向用户提供多种策略,完成自动生成新闻文摘任务的文章摘要算法。因此,采用多策略自动生成摘要的网络新闻概要方法,其特征在于,所述网络新闻概要***根据指定的摘要策略查询新闻简讯所需的文摘中,摘要策略包括以下四种方法:
a)基于共现词汇与TextRank的经典摘要算法;
b)基于BM25与TextRank的摘要算法;
c)基于Word2Vec词向量与TextRank的摘要算法;
d)融合共现词汇、Word2Vec与TextRank的摘要算法;
在实际开发文本概要***时,可以此思路,根据不同摘要算法的特征和需要,设计更多摘要策略,可并不仅限于此四种。
上述四种摘要算法的基本思路、基本处理流程均一致:
1)文本预处理:
针对输入的一篇新闻文章,进行分句、分词,并清除停用词,生成二维数组格式的句子词汇矩阵;其中,停用词表采用百度停用词表;句子词汇矩阵的每一行代表一条句子;每一条句子以一维数组形式存在;矩阵内每一行句子内的元素是原文章对应句子内的某一词汇;
2)初始化TextRank图模型Graph:
图模型Graph的属性包括:表示句子节点的nodes、表示图模型中边关系的二维邻接矩阵edges、表示节点权重值TR的nodesWeight、经过分词后的句子词汇矩阵sentencesWords、阻尼系数d;初始化edges中每一条边关系的权重值为0,表示暂未建立节点间的边关系;初始化每一节点权重nodesWeight[i]的值为任意常数,取值1.0;
3)计算文本内任意两句子间的关联度得分,构建图模型的边关系edges[i][j];
其中,i、j分别表示文章中的第i条句子和第j条句子;计算出的得分即图模型中边edges[i][j]的权重值;
4)迭代更新图模型:
更新图模型Graph的句子Vi的节点权重nodesWeight[i],为TR(Vi)值;更新的计算公式如下:
其中,Similarity(Vi,Vj)表示句子Vi与句子Vj的关联度得分;Vi表示当前句子;TR(Vi)表示当前节点权重(重要性);d表示阻尼系数,一般默认取值为0.85;{TR(V1),TR(V2),…,TR(Vm)}表示指向当前句子节点Ti的所有节点对应的TR值,即所有的前继节点对应的TR值;
当迭代更新图模型内任一句子节点Vi第N次迭代运算所得权重值的与上一次迭代所得值的最大差值小于一个趋近于0的小数threshold时,迭代终止;小数阈值threshold设置为0.00000001;
5)提取摘要句子:
根据图模型的句子节点权重值nodesWeight[i]的大小,降序排序后,依次输出前N个句子,为该篇文章的自动文摘;
6)将多种自动文摘算法封装为一生成个自动文摘数据接口,提供文本计算服务。每当网络爬虫爬取下载一篇新闻文章后,便调用上述数据接口,将调用接口时指定的不同文摘算法策略,生成多个摘要算法对应的多份自动文摘;然后,分别存储其多份自动文摘至数据库中;最后,等待读者使用***服务时调取用户指定的文摘。
1.2.3生成基于新闻文摘的新闻简讯。
处理完上两大流程以后,已解决了生成一条新闻简讯所需要的所有数据项的问题。
当用户需要阅览新闻时,按照如下流程生成经过聚合了多家新闻网站的新闻简讯列表,以供读者阅览:
1)根据不同的排序规则,向数据库查询新闻文章数据。排序规则有如:按照发布日期降序表示最新的报道、按照文章评论数表示最热门的新闻报道、按照新闻领域分组排序、按照文章关键词分组排序等排序方式,这些排序规则可两两组合。
2)根据数据库查询的文章,获得生成一条新闻简讯所需要的基本信息:新闻标题、新闻原文链接(URL)、新闻所属领域、新闻摘要、新闻发布者、发布日期、新闻关键词。
3)根据文章的原文链接(URL)向新闻原文中获取新闻报道的配图。如果原新闻报道中不存在配图,则:通过在搜索引擎图像库中搜索新闻文章标题分词后生成的若干关键词,选择第一张图像作为该条新闻的最佳配图。
4)最终,软件***终端的读者可直接阅读多份推送的新闻简讯。其中,每条新闻简讯中包含:新闻标题、新闻原文链接(URL)、新闻所属领域、新闻摘要、新闻发布者、发布日期、新闻关键词、文章预览配图,效果如下图所示。当读者阅读至某一篇感兴趣的新闻报道时,可点击该条新闻简讯,跳转至新闻原文进行阅读。
至此,读者阅读聚合了多家新闻网站的新闻简讯服务构建完成。
1.2.4阅读分析。
每当读者所在计算机设备的光标滑过、或者点击过一份新闻简讯,便标记其为已阅读的新闻简讯。
通过这种方式实时记录、实时统计读者阅读的新闻内容,并向读者直接提供几类基于统计过去阅读内容的可视化分析服务。
1)不同时间段的阅读文章数据。读者能够实时查看个人在过去不同时间里所阅读的文章篇数、摘要字数、原文总字数等阅读数据。
2)关键词词云。读者能够实时查看个人在过去时间段里已阅读的新闻报导所涉及的、排名前列的热门关键词。
3)领域分布。读者能够实时查看个人过去所阅读文章的行业类别分布。
通过以上的用户个性化的可视化分析服务,有助于读者了解本人在过去一段时间所主要发生的事情以及了解读者个人的阅读偏好,充分挖掘阅读活动本身存在的统计价值。
实施例2
2、本发明从***设计与开发流程、***架构、功能模块与子***划分、数据服务子***的结构与功能、分析子***的结构与功能、应用子***的结构与功能六大方面展开描述。在描述三大子***的结构与功能时,分别从子***的程序模块构成、模块分析、子***所依赖的开发工具与环境三方面刻画对应的子***。
为方便后续的描述,暂定使用本套技术方案所实现的软件***名为“新闻速读”。
图6是本发明实施例提供的某用户阅读文章服务的可视化分析示意图。
2.1***设计与开发流程。
***的设计与开发过程,如下表3所示,仅供参考。
表3设计与开发流程
2.2***架构。
该***可分为数据服务子***、分析子***、应用子***三大子***,如图7所示。
子***责任分配方面。数据服务子***采集新闻数据、提供应用子***所需的新闻数据。分析子***构建词向量模型、分析新闻内容生成摘要和关键词等数据挖掘任务,并向应用子***提供文本数据挖掘能力。应用子***根据业务场景和功能需求,以友好的软件界面的形式展示新闻简讯、用户服务等信息服务。
子***间通信方面。三子***相互独立,分别分配不同的端口通信。对于数据服务子***,其一,通过HTTP传输协议抓取HTML格式为主的新闻数据。其二,通过TCP协议存储解析完成的数据至数据库中。其三,通过HTTP协议完全以JSON格式的数据为应用子***提供新闻数据和应用***所需的其他业务数据。对于应用子***,其一,与数据服务子***基于HTTP协议以JSON格式的数据通信外。其三,应用子***为***用户直接提供服务,通过HTML模板渲染引擎将数据服务子***的JSON数据嵌入至HTML静态网页中,并基于HTTP协议向用户终端设备发送HTML网页,实现读者与***的界面交互与展示。对于分析子***,其一,基于TCP协议向数据库请求新闻数据,并将新闻文本挖掘后生成的数据再存入数据库中。其二,基于HTTP协议,向数据服务***提供JSON格式的文本挖掘数据。
从Web工程的角度来看,三套***实践了以NodeJs为前端渲染服务容器,基于Django的WSGI服务容器和基于SpringBoot的ApacheTomcat服务容器作为后端的前后端分离理念。
2.3功能模块与子***划分
三大子***与四大功能模块的对应关系。数据服务子***作为后端向应用子***提供对用户模块、数据采集模块、新闻阅读模块的***业务逻辑方面的数据处理。文本分析子***,同样作为后端,向数据服务子***提供文本分析模块的业务逻辑处理。应用子***作为前端***,整合数据服务子***所能提供的所有数据业务服务,实现应用场景的最终落地,如图8所示。
三***设计与分离的原因。其一,由于前后端分离的模式具有时***模块高内聚低耦合、开发者方便分离调试等好处。因此,作为后端的数据服务子***、分析子***与前端的应用子***实现前后端完全分离,前后端***间通过JSON数据通信。前端***渲染从数据服务子***和分析子***获得的JSON数据至静态页面,再根据用户请求,控制用户URL路由。
其二,由于不同语言具备的不同的先发优势,尤其开发者在技术上亦具备可行。Python具有Numpy、matplot、tensorflow、scipy、gensim等众多在科学研究和机器学习领域,尤其是本***所涉及的文本数据挖掘领域丰富的第三方库,有利于开发者快速、便捷地、专注于实践算法。而Java更具有健壮稳健的特性,在高并发、Web服务等领域具备强大的软件生态、第三方库,有利于快速实现Web服务和网络数据爬行等要求。Nodejs非阻塞的异步执行、事件驱动、模板渲染等优势有利于整合其他***,最终为用户提供直接的信息服务。故而,选择这样的***设计。
综上所述,“新闻速读”***以分层体系结构为基础,以高内聚低耦合的模块化为指导方针,以开发者现有开发技术基础为前提下,建立三子***的功能模块和整体架构。
2.4数据服务子***结构与功能。
2.4.1模块构成。
如图9所示,数据服务子***由数据业务支持程序子模块(data)、网络爬虫子程序模块(spider)、工具程序子模块(util)三部分构成。其中,网络爬虫程序子模块(spider)与数据业务支持程序子模块(data)共同构成了文中所描述的“数据采集(功能)模块”的概念。数据业务支持程序子模块(data)同时还向应用子***提供新闻监测功能模块、用户功能模块提供所需业务数据。以JSON格式进行数据服务子***与应用子***的信息交互。
因此,data子模块成为数据服务子***所有程序子模块的“粘合剂”,乃至成为整个POMS***的核心程序模块。
data程序子模块提供对应用子***的数据业务支持,当应用子***中网页请求data的controller层中某一接口时,data将返回纯json格式的业务数据。data子模块同时对网络爬虫程序子模块(spider)提供操纵支持,如数据的最终存储、数据查询。
Spider程序子模块提供数据采集、数据解析、数据存储的定时执行服务。
Util程序子模块提供另两模块的底层工具支持,包含有如:日期转换、网络请求、数据库字段合法性检查、文件处理、控制台输出调试等诸多工具类。
2.4.2模块分析。
2.4.2.1数据业务支持程序子模块(data)
如图10所示,数据业务支持***程序子模块(data)由文章模块、作者模块、邮箱模块、URL模块、用户模块、领域模块、用户操作模块、词汇模块等模块组成,每一模块内按照上述“分层模型”的原则进行业务责任分配,数据业务支持程序子模块的内部构成如图11所示。
2.4.2.2网络爬虫程序子模块(spider)。
如图12所示,网络爬虫***子模块(spider)由FieldSpider类、下载模块(download)、解析模块(resolve)、存储模块(store)、具体业务处理模块(business)所组成。由FieldSpider的业务实现类负责具体的定时调度,执行数据采集、数据解析和数据存储等任务,网络爬虫程序子模块内部构成如图13所示。
2.4.2.3工具程序子模块(util)。
如图14所示,工具***子模块(util)由编码处理子模块(code)、网络请求子模块(request)、过滤器子模块(filter)、集合处理子模块(collection)、spring工具子模块(spring)、日期转换子模块(datetime)、控制台调试输出子模块(print)、文件操作工具子模块(file)组成,工具程序子模块的内部构成如图15所示。
2.4.3分层结构。
本发明分析的分层结构仅指数据服务子***中数据业务支持子模块(data)的分层模型,关于子***的其它特征描述将在后续中将会描述。
如图16所示,分层结构从繁杂的***任务中分离成为用户视图、业务逻辑、数据持久化等几大结构层次,将***组织成分层结构,每一层包含指定的责任与功能,而每一层为紧邻的上一层提供服务,从而杜绝了模块与模块之间混乱不堪的程序逻辑。最终实现业务逻辑与表现逻辑高内聚低耦合的软件设计目标。
子***的分层结构是在基于J2EE的框架体系下,采用开源件SpringMVC、Spring、Hibernate和整合框架SpringBoot实现。
2.4.3.1拦截层。
由过滤器、Servlet等组件组成,具有面向切面编程的程序设计思想,它的优点有:其一,降低项目业务代码对一些频繁的非业务逻辑操作、全局公有业务逻辑进行统一处理,例如:数据请求参数完整性、数据请求的参数封装、登陆校验、日志记录等。其二,也提高了软件的可维护性、可重用、可扩展性。负责对所有的请求进行过滤分类分流处理。本发明中,除了SpringBoot框架自带的拦截组件外,还有全局登陆校验过滤器LoginFilter、跨域处理过滤器CosFilter、统一字符编码处理过滤器CharacterFilter。
2.4.3.2路由/视图控制层。
对通过拦截层的数据请求进行调度处理,依据请求类型和请求参数,调用相应的业务逻辑模块,根据业务逻辑层的响应实体数据、数值结果,调度不同的视图,从而达到控制用户视图的效果。本发明中,UserController等均属于本层。
2.4.3.3业务层。
为控制层所需要的服务做业务逻辑处理。本发明中,UserService、AuthorityService等均属于本层。
2.4.3.4数据库访问层。
又称“数据库访问对象层(Database Access Object Layer)”、“持久层”,顾名思义,对象映射到表,并通过操纵Java实体对象来实现操纵数据库表的数据操纵。
2.4.4开发工具与环境。
表4开发工具与环境
2.5分析子***的结构与功能。
2.5.1模块构成。
在新闻速读***中,分析子***为应用子***提供两大类数据接口:摘要生成和词向量查询。也就是说,分析子***的主要职责是实现不同策略下,对文本的摘要生成和词向量模型的构建。因此,其***子模块构成较为简单,如图17所示,分为:工具包(util)***子模块、算法(algorithm)***子模块、数据服务(service)子模块,以及提供URL路由服务的路由(函数)模块(urls.py)和视图控制(函数)模块(view.py)。
2.5.2模块分析。
分析子***仅提供两类数据接口:摘要数据接口和词向量接口,返回的数据格式均为JSON,请求方为应用子***。需要注意的是,分析子***的工具程序子模块(util)与数据服务子***的工具程序子模块(util)分属于不同子***,并非同一模块。
如图18所示,工具程序子模块(util),提供对文件操作、数据库操作、自然语言处理常用操作、HTTP请求参数解析、HTTP请求处理后的不同的响应结果等通用操作的封装,提高***程序的复用性,为算法程序子模块(algorithm)实现提供支持。数据服务程序子模块(service)为分析子***提供对调度不同文本挖掘算法业务的封装,为视图控制模块类(view.py)提供支持,分析子***的内部构成如图19所示。
2.5.3开发工具与环境。
表5开发工具与环境
2.6应用子***的结构与功能。
2.6.1模块构成。
应用子***整合数据服务子***的所有数据接口,实现对业务的展示。当用户在软件界面中请求某一软件服务时,NodeJs服务器调用数据服务子***的业务数据接口获得业务数据,并其数据通过模板渲染引擎嵌入HTML静态模板中,最后返回渲染完成的网页界面给用户持有的终端设备,最终实现与用户的人机交互。
2.6.2模块分析。
如图20所示,应用子***整合数据服务子***和分析子***,其中包括了工具模块(util)、业务服务模块(service)、路由控制模块(routes)、视图模块(views)和静态资源模块(public),最终由Server类模块启动服务所有资源,向***用户提供服务,应用子***的内部构成如图21所示。
Util模块提供封装了统一的外部数据请求的工具类RequestUtil。
Service模块提供封装了数据服务子***所提供的数据服务,例如:UserService类。
Routes模块提供应用子***,乃至整个POMS***的用户URL路由,发挥经典分层结构中的“控制器”、“控制层”的作用。
Views模块提供静态html文件,为路由模块渲染数据提供模板。由于使用的模板渲染引擎是ejs,所以界面文件的后缀名并非传统的html后缀,而是ejs后缀。
Public模块提供访问网页时所需要加载的一切静态资源,包括:图片、css文件和js文件。
2.6.3开发工具与环境。
表6开发工具与环境
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种采用多策略自动生成摘要的网络新闻概要方法,其特征在于,所述采用多策略自动生成摘要的网络新闻概要方法包括:
步骤一,多新闻网站多领域的数据采集;包括:
1)新闻领域分类归一化:对多新闻网站,统一不同网站的新闻文章的分类标准;
2)新闻数据的结构归一化:对多新闻网站,统一不同网站新闻数据的数据结构;进行网络爬虫进行统一解析与存储;
3)多网站多领域爬虫设计:使用模板并借用Jsoup、selenium底层网络请求工具,将网络爬虫需要针对不同新闻网站时所需要完成的新闻文章、新闻作者、新闻评论数据的解析、存储任务进行程序逻辑设计;在采集新闻文章时,提前预配置当前网站当前爬行方法的所属领域;
所述网络爬虫的方法包括:定时采集文章链接任务、定时采集文章数据;
所述定时采集文章链接任务的方法包括:
a)任务读取网站网址;
b)下载领域网站网址;
c)解析网页为一份文章链接集合;
d)设置文章链接为待解析状态;
e)存储文章链接集合;存储前,向数据库查询是否已存在该文章链接,若无,则存储;
所述定时采集文章数据的方法包括:
i)任务启动,并查询一条数据库中待解析状态的文章链接;查询得到该链接以后,设置状态为解析中,启用数据库事务,对多线程的采集任务读取到脏数据进行处理;
ii)下载并解析文章链接对应的一篇文章;
iii)待解析文章网页完成时,设置当前文章链接的状态为解析完成;
步骤二,采用多种摘要生成策略,自动生成指定策略的文章摘要;具体包括:
待数据采集模块解析一篇网络新闻后,便向文本分析模块输入该新闻文章;然后在由多种摘要生成策略下,文本分析模块输出分别输出多种摘要算法生成的文摘;将不同摘要生成策略的文摘依次存储至数据库中;当用户阅览网络新闻概要***的新闻简讯时,网络新闻概要***根据指定的摘要策略查询新闻简讯所需的文摘;
所述网络新闻概要***根据指定的摘要策略查询新闻简讯所需的文摘中,摘要策略包括以下四种方法:
a)基于共现词汇与TextRank的经典摘要算法;
b)基于BM25与TextRank的摘要算法;
c)基于Word2Vec词向量与TextRank的摘要算法;
d)融合共现词汇、Word2Vec与TextRank的摘要算法;
基于共现词汇与TextRank的经典摘要算法具体包括:
1)文本预处理:
针对输入的一篇新闻文章,进行分句、分词,并清除停用词,生成二维数组格式的句子词汇矩阵;其中,停用词表采用百度停用词表;句子词汇矩阵的每一行代表一条句子;每一条句子以一维数组形式存在;矩阵内每一行句子内的元素是原文章对应句子内的某一词汇;
2)初始化TextRank图模型Graph:
图模型Graph的属性包括:表示句子节点的nodes、表示图模型中边关系的二维邻接矩阵edges、表示节点权重值TR的nodesWeight、经过分词后的句子词汇矩阵sentencesWords、阻尼系数d;初始化edges中每一条边关系的权重值为0,表示暂未建立节点间的边关系;初始化每一节点权重nodesWeight[i]的值为任意常数,取值1.0;
3)计算文本内任意两句子间的关联度得分,构建图模型的边关系edges[i][j];
其中,i、j分别表示文章中的第i条句子和第j条句子;计算出的得分即图模型中边edges[i][j]的权重值;
4)迭代更新图模型:
更新图模型Graph的句子Vi的节点权重nodesWeight[i],为TR(Vi)值;更新的计算公式如下:
其中,Similarity(Vi,Vj)表示句子Vi与句子Vj的关联度得分;Vi表示当前句子;TR(Vi)表示当前节点权重;d表示阻尼系数,一般默认取值为0.85;{TR(V1),TR(V2),…,TR(Vm)}表示指向当前句子节点Ti的所有节点对应的TR值,即所有的前继节点对应的TR值;
当迭代更新图模型内任一句子节点Vi第N次迭代运算所得权重值的与上一次迭代所得值的最大差值小于一个趋近于0的小数threshold时,迭代终止;小数阈值threshold设置为0.00000001;
5)提取摘要句子:
根据图模型的句子节点权重值nodesWeight[i]的大小,降序排序后,依次输出前N个句子,为该文章的自动文摘;
6)将多种自动文摘算法封装为一生成个自动文摘数据接口,提供文本计算服务;每当网络爬虫爬取下载一篇新闻文章后,便调用上述数据接口,将调用接口时指定的不同文摘算法策略,生成多个摘要算法对应的多份自动文摘;然后,分别存储其多份自动文摘至数据库中;最后,等待读者使用***服务时调取用户指定策略的文摘;
所述四种方法仅在计算文本内任意两句子的关联度Similarity(Vi,Vj)不同,具体包括:
Ⅰ)基于共现词汇与TextRank的经典摘要算法;
其中:Wk,即句子与句子中的同时出现共现词汇;|Vi|,表示句子Vi的词汇数;
Ⅱ)基于BM25与TextRank的摘要算法:
Similairity(Vi,Vj)=∑BM25Score(Wk),Wk∈Vi&Wk∈Vj
其中,Wk,表示两句子的共现词汇;BM25Score(word),表示词汇word在文档集documents中的BM25得分;文档集documents,表示将当前一篇含有多条句子的新闻文章视为一份文档集,一条句子即视为一篇”文章”,那么,一整篇新闻文章则被视为多份“文章”的集合,BM25的计算公式如下:
其中,|D|,表示当前新闻文章的句子总数,为文档集documents的文章总数;avgDl,表示文档集documents的平均文章长度;tf,即词频概率,表示指定词汇word在当前文章中出现过的频率,由指定词汇word在第i份文章documents[i]中出现的次数除以当前文章documents[i]的长度得到;参数k、b,分别取0.625、0.75;IDFScore(word),表示指定词汇word在整篇文章中的普遍重要性,计算公式如下:
其中,WordFequencyInDocuments(word)表示在文档集documents中出现过指定词word的文章总数;
Ⅲ)基于Word2Vec词向量与TextRank的摘要算法:Word2Vec词向量模型是基于NNLM的简化版神经网络语言模型;包含通过周围词预测中间词汇的Skip-Gram模型与通过中间词汇预测周围词的CROW模型,将任一词汇转换为一维固定长度的数学向量;利用数学向量直接运算的优势,计算任意两个词汇的余弦相似度作为两词汇的语义相似度;
对于句子与的相似度如下:
其中,AVG(Si),表示句子Si的句子级词向量,它由句子Si内的n个Word2Vec词汇词向量平均求和所得,计算公式如下:
其中,Wi,是句子内的第i个词汇的一维词向量,由Word2Vec的Skip-Gram模型生成;
Ⅳ)融合共现词汇、Word2Vec与TextRank的摘要算法:融合共现词汇在文本中对高频词汇的统计优势和Word2Vec词向量在语义表征上的独特优势,计算两句子的关联度,即值,以此优化摘要算法效果;
计算公式如下:
其中,CoWordsScore(Si,Sj),表示两句子的共现词汇得分,其计算公式如下:
CoWordsScore(Si,Sj)=[log(|{Wk|Wk∈Si&Wk∈Sj}|+1)+1]
此处的Wk表示两句中共同出现的词汇,即共现词汇;
而AVG(Si),表示句子Si的句子级词向量,它由句子Si内的n个Word2Vec词汇词向量平均求和所得,计算公式如下:
其中,Wi,是句子内的第i个词汇的一维词向量,由Word2Vec的Skip-Gram模型生成,所述词汇查询经过Word2Vec训练后的模型,得到一份指定长度为N的一维行向量[0.4,0.46,0.24,0.54,0.1324,…,0.46],利用词向量和余弦相似度公式,实现任意两词汇的语义相似度或语义距离的计算;
步骤三,生成基于新闻文摘的新闻简讯;
步骤四,阅读分析。
2.如权利要求1所述的采用多策略自动生成摘要的网络新闻概要方法,其特征在于,所述步骤三生成基于新闻文摘的新闻简讯的方法包括:
1)根据不同的排序规则,向数据库查询新闻文章数据;排序规则有如:按照发布日期降序表示最新的报道、按照文章评论数表示最热门的新闻报道、按照新闻领域分组排序、按照文章关键词分组排序的排序方式,排序规则可两两组合;
2)根据数据库查询的文章,获得生成一条新闻简讯所需要的基本信息:新闻标题、新闻原文链接、新闻所属领域、新闻摘要、新闻发布者、发布日期、新闻关键词;
3)根据文章的原文链接新闻原文中获取新闻报道的配图;如果原新闻报道中不存在配图,通过在搜索引擎图像库中搜索新闻文章标题分词后生成的若干关键词,选择第一张图像作为该条新闻的最佳配图;
4)最终,软件***终端的读者可直接阅读多份推送的新闻简讯,每条新闻简讯中包含:新闻标题、新闻原文链接、新闻所属领域、新闻摘要、新闻发布者、发布日期、新闻关键词、文章预览配图;
所述步骤四阅读分析的方法包括:
a)不同时间段的阅读文章数据,读者能够实时查看个人在过去不同时间里所阅读的文章篇数、摘要字数、原文总字数等阅读数据;
b)关键词词云,读者能够实时查看个人在过去时间段里已阅读的新闻报导所涉及的、排名前列的热门关键词;
c)领域分布,读者能够实时查看个人过去所阅读文章的行业类别分布。
3.一种执行权利要求1~2任意一项所述采用多策略自动生成摘要的网络新闻概要方法的采用多策略自动生成摘要的网络新闻概要***,其特征在于,所述采用多策略自动生成摘要的网络新闻概要***包括:
数据采集模块,用于采集原始新闻数据;
文本分析模块,用于实现对新闻文章的自动摘要生成、关键词提取;
新闻阅读模块,对采集、分析完成后的新闻数据进行分类查阅新闻简讯、查阅用户监测话题的新闻简讯、快速查询新闻、新闻摘要生成策略管理、新闻专题监测服务、可视化分析用户阅读过的新闻报道;
用户服务模块,为用户提供用户注册、用户登陆、退出、找回密码、修改密码、查看账户信息服务;
数据服务子***,用于采集新闻数据、提供应用子***所需的新闻数据;
分析子***,构建词向量模型、分析新闻内容生成摘要和关键词数据挖掘任务,并向应用子***提供挖掘的文本数据;
应用子***,通过软件界面的形式展示新闻简讯、用户服务信息服务。
4.如权利要求3所述的采用多策略自动生成摘要的网络新闻概要***,其特征在于,所述新闻阅读模块还用于提供分行业领域的新闻简讯的阅读,新闻简讯包括:文章所属领域、文章标题、文章关键词、文章摘要、新闻发布组织名称、文章发布时间基本信息;并提供专题阅读新闻简讯服务,实现用户对某些新闻事件的长期跟踪与阅读。
5.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-2任意一项所述的采用多策略自动生成摘要的网络新闻概要方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910868998.XA CN110597981B (zh) | 2019-09-16 | 2019-09-16 | 一种采用多策略自动生成摘要的网络新闻概要*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910868998.XA CN110597981B (zh) | 2019-09-16 | 2019-09-16 | 一种采用多策略自动生成摘要的网络新闻概要*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110597981A CN110597981A (zh) | 2019-12-20 |
CN110597981B true CN110597981B (zh) | 2021-07-20 |
Family
ID=68859659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910868998.XA Expired - Fee Related CN110597981B (zh) | 2019-09-16 | 2019-09-16 | 一种采用多策略自动生成摘要的网络新闻概要*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110597981B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111680482B (zh) * | 2020-05-07 | 2024-04-12 | 车智互联(北京)科技有限公司 | 一种标题图文生成方法及计算设备 |
CN111859887A (zh) * | 2020-07-21 | 2020-10-30 | 北京北斗天巡科技有限公司 | 一种基于深度学习的科技新闻自动写作*** |
CN112015890B (zh) * | 2020-09-07 | 2024-01-23 | 广东工业大学 | 电影剧本摘要的生成方法和装置 |
CN112560461A (zh) * | 2020-12-11 | 2021-03-26 | 北京百度网讯科技有限公司 | 新闻线索的生成方法、装置、电子设备及存储介质 |
CN114281981B (zh) * | 2021-12-22 | 2023-05-02 | 北京百度网讯科技有限公司 | 新闻简报的生成方法、装置和电子设备 |
CN114491206A (zh) * | 2022-01-04 | 2022-05-13 | 电子科技大学 | 一种用于新闻博客类网站的通用低代码爬虫方法及*** |
CN114996587B (zh) * | 2022-07-18 | 2022-10-25 | 浙江方正印务有限公司 | 一种数字报纸搜索及智能推荐与分享方法 |
CN115496062B (zh) * | 2022-11-10 | 2023-02-28 | 杭州费尔斯通科技有限公司 | 企业选址意愿识别方法、***、计算机设备以及存储介质 |
CN116414972B (zh) * | 2023-03-08 | 2024-02-20 | 浙江方正印务有限公司 | 一种资讯内容自动播报和生成简讯的方法 |
CN117094291B (zh) * | 2023-10-19 | 2024-01-19 | 济南伊特网络信息有限公司 | 基于智能写作的自动新闻生成*** |
CN117391082B (zh) * | 2023-12-11 | 2024-02-13 | 中水北方勘测设计研究有限责任公司 | 一种长篇工程设计报告中综合说明自动生成方法及*** |
CN118069833A (zh) * | 2024-04-17 | 2024-05-24 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 层次化摘要的生成方法、装置、设备及可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9881082B2 (en) * | 2016-06-20 | 2018-01-30 | International Business Machines Corporation | System and method for automatic, unsupervised contextualized content summarization of single and multiple documents |
CN110020189A (zh) * | 2018-06-29 | 2019-07-16 | 武汉掌游科技有限公司 | 一种基于中文相似性计算的文章推荐方法 |
CN110147439A (zh) * | 2018-07-18 | 2019-08-20 | 中山大学 | 一种基于大数据处理技术的新闻事件检测方法及*** |
CN109241277B (zh) * | 2018-07-18 | 2022-05-17 | 北京航天云路有限公司 | 基于新闻关键词的文本向量加权的方法及*** |
CN109800350A (zh) * | 2018-12-21 | 2019-05-24 | 中国电子科技集团公司信息科学研究院 | 一种个性化新闻推荐方法及***、存储介质 |
CN109684642B (zh) * | 2018-12-26 | 2023-01-13 | 重庆电信***集成有限公司 | 一种结合页面解析规则和nlp文本向量化的摘要提取方法 |
CN109960756B (zh) * | 2019-03-19 | 2021-04-09 | 国家计算机网络与信息安全管理中心 | 新闻事件信息归纳方法 |
-
2019
- 2019-09-16 CN CN201910868998.XA patent/CN110597981B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN110597981A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597981B (zh) | 一种采用多策略自动生成摘要的网络新闻概要*** | |
Gozhyj et al. | Uniform Method of Operative Content Management in Web Systems. | |
Korobchinsky et al. | Peculiarities of content forming and analysis in internet newspaper covering music news | |
CN109543086A (zh) | 一种面向多数据源的网络数据采集与展示方法 | |
Rusyn et al. | The virtual library system design and development | |
Lin et al. | Finding topic-level experts in scholarly networks | |
Das et al. | A CV parser model using entity extraction process and big data tools | |
CN110245816B (zh) | 基于浏览器历史记录的用户工作效率可视评估方法 | |
Zhou et al. | Enriching user search experience by mining social streams with heuristic stones and associative ripples | |
CN115757689A (zh) | 一种信息查询***、方法及设备 | |
WO2015121854A1 (en) | Web-based influence system and method | |
Zhang et al. | An approach of service discovery based on service goal clustering | |
Xu et al. | Research on Tibetan hot words, sensitive words tracking and public opinion classification | |
Li et al. | Research on hot news discovery model based on user interest and topic discovery | |
Ma et al. | Api prober–a tool for analyzing web api features and clustering web apis | |
Pascal Filho et al. | A MapReduce-based Method for Achieving Active Technological Surveillance in Big Data Environments | |
KR102434880B1 (ko) | 멀티미디어 플랫폼 기반 지식 공유 서비스 제공 시스템 | |
Kumar et al. | A study on web mining classification and approaches | |
Chung et al. | Web-based business intelligence systems: a review and case studies | |
Mora-Arciniegas et al. | Semantic Architecture for the Extraction, Storage, Processing and Visualization of Internet Sources Through the Use of Scrapy and Crawler Techniques | |
Kaur et al. | Smart focused web crawler for hidden web | |
Choudhary et al. | Adaptive Query Recommendation Techniques for Log Files Mining to Analysis User’s Session Pattern | |
Lai et al. | A University Portrait System Incorporating Academic Social Network | |
Cabrera et al. | Extracting the Main Path of Historic Events from Wikipedia | |
Zosimov et al. | Enhancing Readability in Custom Templates for Displaying Semantically Marked Information |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210720 |