基于模板自动生成新闻的系统和方法
【专利摘要】基于模板自动生成新闻的系统和方法,新闻事件日志库、新闻文章模板库、规则库组成该系统的数据库,新闻事件日志库通过选定事件日志与统计数据生成器连接,统计数据生成器分别与模板选择器、自然语言生成进行交互,自然语言生成与年报生成模块进行交互,统计数据生成器与模板选择器相交互,新闻文章模板库、模板选择器与年报生成模块相连接,年报生成模块与数据库进行连接。其实现方法的具体步骤阐述如下,建立年报日志库:建立模板库:建立规则库、选择模板、建立统计数据库、自然语言生成、年报生成;与现有技术相比,在新闻写作行业减轻了双手的劳动量,同时也提高了新闻报道的效率,为新闻发展提供了里程碑性的改革。
【专利说明】
基于模板自动生成新闻的系统和方法
技术领域
[0001]本发明涉及数据挖掘、数据分析、机器学习和自然语言生成领域,设计并实现了一种基于模板自动生成新闻的系统和方法。
【背景技术】
[0002]近年来,人们对财金年报的关注日益增涨,但是随着公司业务的不同,关注者者数目也有很大的不同。例如:一个世界级的公司,如google,有百万的关注者(通过电视,广播,报纸和网络等关注运营情况),但一个地区性的企业,关注者可能就只有成百人。
[0003]随着经济的发展,生活的进步,人类对企业的关注越来越多,对企业的了解需求也也来越大,所以市场也愿意投入更大的财力去收集、组织传播年报的数据和报道年报。由于观众群庞大,喜好不同,若基于观众群传播信息,收集和传播年报信息是一个巨大的工程。
[0004]许多公司尝试依赖本公司的某个部门人员去缩减收集和报道年报信息的开支。在通常情况下,公司相关员工会根据相关需求做一些统计,记录,书写年报,并发布。这样的一个流程,相对不需要投入太多财力,却很难提供令人满意的结果。一方面,公司员工通常是按照部门的规定书写年报,相对来说给出的是一个官方的书面报告,不能保证报告一系列完整的、详细的数据信息;另一方面提供和传播的年报信息往往很单一,关注者不能更好的进行统计分析出更有价值的结果;最后,在打印发布关于年报信息期刊时,因为财力,时间的耗费,对年报报道是不频繁,不及时的。
[0005]网络时代的来临开拓了一个新的途径,给特定的用户提供了一种廉价的,即时接受信息的途径。例如http://www.huagu.com/网站是一个财经网站对企业年报进行报道的系统。该网站为兴趣爱好者提供国内企业年报的信息。该网站上面的信息仅来源于志愿者的上传,需要志愿者将年报的信息提交给网站管理员,由网站管理员发布。当信息还没有提交给管理员或是管理员没有发布时,在网站上是不可获取的。此外,有些年报的统计数据也是不可获取的,因为没有相关企业信息的详细的描写或演讲信息。对于这类信息,感兴趣的观众群必须依赖如当地的电视,报纸等传统媒体报告。然而传统媒体也只会抽出一些闲事时间报道年报或是介绍公司情况。
[0006]因此,对于企业(或是有小的观众群、需要分析统计数据进行报告的企业)的收集、分析,即时的、廉价的向观众发布报告成为一个必须满足的需求。这个系统不仅可以向观众提供一个统计报告,同时可以向观众提供一个对企业进行详细说明的报告,同时保证报告具有信息量和娱乐性。
[0007]总的来说,本发明提供了一个基于模板自动生成年报事件的系统。系统包括一个年报记录的日志库,根据日志生成统计数据的方法,一个数据库和多样化的模板库,每个模板至少包含一个特有的规则。进一步来说,该系统包含根据统计信息的一个规则判别候选模板是否匹配年报的方法;从候选模板中选择一个模板的方法以及使用选定的模板自动生成一个完整的年报报道并记录企业的方法。
[0008]换一种说法,本发明提供了一个基于模板自动生成年报的描述报告的方法。方法包括在年报日志中按照预定格式生成年报记录,根据年报记录生成统计信息,根据统计信息匹配多个模板的多个规则并从中选择至少一个模板;事实上,不止一个模板满足条件,所以该方法包括从候选模板中选出最可能的一个,并根据预选择的数据,在选定的模板中插入统计数据信息和事件记录,生成一个年报报告并发布出去。
【发明内容】
[0009]本发明的目的是提出一个基于模板自动生成年报系统的方法,以达到较高的年报发布效率,提高年报发布的准确率与更新率。
[0010]为实现上述目的,本发明采用的技术方案为一种基于模板自动生成年报的系统,该系统包括新闻事件日志库、新闻文章模板库、规则库、统计数据生成器、模板选择器、自然语言生成、年报生成模块;
[0011 ]新闻事件日志库、新闻文章模板库、规则库组成该系统的数据库,新闻事件日志库通过选定事件日志与统计数据生成器连接,统计数据生成器分别与模板选择器、自然语言生成进行交互,自然语言生成与年报生成模块进行交互,统计数据生成器与模板选择器相交互,新闻文章模板库、模板选择器与年报生成模块相连接,年报生成模块与数据库进行连接。
[0012]基于上述系统,具体步骤阐述如下:
[0013](I)建立年报日志库:当爬虫抓取到新的年报信息时,建立年报日志库。年报日志库是指年报的记录,所属年报的记录为公司、营业收入、净利润、每股收益信息。即对数据进行一个简单的清洗整理,按照相应格式存储在数据库中。
[0014](2)建立模板库:差异化处理各领域的新闻报告内容版式;年报和体育新闻,在内容表达和版面排列方面大不相同,经过专家讨论进行领域的划分,在模板库中会建立很多对应不同领域的模板,同一领域亦建立多个模板,以保证新闻报道的新颖性和灵活可创造性。将建立的模板与专家进行讨论,进行不断地修改、订正,以保证可以覆盖领域信息的各个范围,从而更好地表达信息。建立模板的过程中要根据不同的应用建立不同标准的模板,以满足不同情况的应用。
[0015](3)建立规则库:在建立模板的过程中,与领域专业讨论模板中信息内容插入的规贝1J,以便区别于不同的模板同时准确的匹配信息,生成准确的对应文本。规则对应于每个模板,同时为了保证在选择模板的过程中,保证模板的唯一性,为不同模板建立的规则设置权值,依据规则所携带的信息的重要性设置权重值。计算环比增长率,是一个比较重要的信息,在设置插入环比增长率的规则时,赋予较大的权重值。
[0016](4)选择模板:使用模板选择器根据以下步骤选择匹配数据信息的模板,并且根据年报数据生成年报报告。第一步根据年报日志记录和模板自身关联的规则进行过滤选择,得到至少一个候选模板;第二步,根据统计信息数据对候选模板进行二次筛选并进行权值计算,计算出权值最大的模板作为最后选择使用的模板。
[0017](5)建立统计数据库:统计数据库是指根据日志数据库分析数据得到一个统计结果,或是分析结果。如通过比较两年中同一个月的营业额得出同比增长率;通过分析一年中相邻两个月的营业额,计算出环比增长率。统计数据库的信息是经过进一步挖掘的信息,是通过分析获取更加有用、新鲜的信息。
[0018](6)自然语言生成:经过模板选择后,确定候选模板及需要表达的信息,通过自然语言生成将需要表达的信息表达出来。此系统中自然语言生成基于模板生成模式生成信息。
[0019](7)年报生成:将自然语言生成的信息插入到候选的模板中生成年报,保存到数据库中。
[0020]本发明与现有技术相比,是一个技术上的飞跃,在新闻写作行业,虽然不能帮助人们彻底的解放双手,但在一定程度上,减轻了双手的劳动量,同时也提高了新闻报道的效率,为新闻发展提供了里程碑性的改革。
【附图说明】
[0021]图1为基于模板自动生成年报的系统集成图;
[0022]图2为基于模板自动生成年报的系统模块图;
[0023]图3a为基于模板自动生成年报的年报的日志库图;
[0024]图3b为基于模板自动生成年报的年报日志结构图;
[0025]图4为基于模板自动生成年报的年报的模板结构图;
[0026]图5为基于模板自动生成年报的年报生成流程图。
【具体实施方式】
[0027]以下选择几个多样化的样例进行详细的描述来对本发明加以说明。本发明提出了很多可以应用在广泛多样化内容中的发明性概念。以下具体事例只是纯粹说明使用本发明的具体方法,不限制本发明的使用范围。
[0028]请参阅图表所示,为基于模板自动生成新闻的系统和方法的流程图。
[0029]参考图1,集成系统通过使用块状图来介绍一个简单实例呈现本发明。集成年报信息系统通常可以用10来表明。集成年报信息系统包括web接口 12、数据库管理14、年报记录
11、发行商20、年报生成器18五个组件。简单来说,一份年报可以作为一个年报新闻进行报道,但是一个单独的总收入则作为一个事件来处理,以腾讯2015年第一季度年报为例。腾讯控股2015年第一季度业绩作为一个年报进行报道,而在年报中出现的总收入、经营盈利、期内盈利等等作为一个事件。事实上,我们通常把年报作为一个年报事件处理,因为本发明不仅仅应用在财金中,还应用在多个领域中,所以在年报中的具体记录都会作为一个简单的事件处理。
[0030]集成年报信息系统10通过接口与多个实体相连从而保证信息的输入和输出。例如:一个爬虫抓取3获取具体公司季度业绩的数据信息,然后通过年报记录11把这些信息存储入集成系统10 Jeb接口 12提供了2个接口包括证监会2接口和公司I接口,使证监会2和公司I可以进入系统10.例如:证监会可以向系统输入信息:公司、年度季度,期货清算。这些信息被系统10保存并传播给公司I;公司可以查询所在公司的年报,可以使用接口 12查询与他相关的信息如盈利信息;证监会2可以通过这些信息来监管公司。此外系统10是新闻出版商7和编辑5进行消息交流的接口,在下面的章节会更详细的介绍系统10怎么向关注者提供即时有效、廉价的新闻。
[0031]年报生成器18生成具有娱乐性和记叙性的报道。虽说本发明首先应用体现在年报文章生成中,也可以应用在想要生成叙事报告、摘要、文章集合等类似文本的其他内容事件中。
[0032]年报的关键信息一般是爬虫获取3使用年报记录器16记录传递给数据库管理员14存储到数据库58中。报告生成器18拿到存储的事件信息自动生成报告或文章给证监会2,公司I包括报社、新闻网、子公司、当地媒体(如报纸,广播,电视)使用。如图2所示,年报信息通过年报记录11以事件日志66的格式存储到数据库58中。
[0033]图3a展不了事件日志库66的信息格式模板。一个事件日志库66由一个事件日志102列表组成,其中包括各个领域的事件日志列表。图3表中展示了一个事件日志102的结构:一个方向标识字段104标明记录的内容方向,一个或多个域106a,106b等记录关于具体内容的信息。内容方向标识字段104是一个唯一标识符,领域的事件日志库66都存储在数据库58中;域106a,106b等提供用于生成年报报告的单个年报事件相关信息。在实例中,一个年报事件除了内容方向标识符字段还有有四个相关的字段,第一个域描述事件的类型;例如:域106a为年报事件类型,则年报事件中的106a域中记录的是具体财金中的一个分类(如年报等)。其他的事件类型可以包括股票,理财,宏观,数据库等;域106e是目标类型,记录了事件中的逻辑主体,如公司。域106e中的内容不包含具体公司的名称,只是标明涉及的逻辑实体类型;域106b是目标域,标明年报中相关的具体公司。域106e和域106b共同描述事件参与的实体。例如,一个财金新闻中,目标类型106e是公司,目标106d中包含的是对应一个具体公司的代码。例如106a中标明一个股票事件,106e中会标明一个公司,在106b中会标明一个和公司对应的代码。相关的实体在实际中可能是整个国家,如一个全民GDP等等,那么在106e中会标明是国家,106b中是与国家对应的代码。域106c是类型,这个字段标明年报事件中的一系列值是否可以直接获取。如净利润是可以直接获取的,在106c中设置为0,表示值可以直接获取,106d中放置具体的值。但是有些值是不可以直接获取的,环比增长率,需要挖掘数据进行分析计算得出,在106c中设置为I,在106d中放置挖掘计算的具体的值。
[0034]本发明使用在年报实例中,也适用在其他的领域中。例如:一个目标类型域可以用来对比两个公司的年报(如:对比腾讯和新浪2015年第一季度的收入,增长率等),或是一个时间,用来标明事件涉及的两个主体,如同比增长是一年中3月收入与第二年3月的收入比较。域106d还可以与其他的年报记录识别域结合起来,与领域标识字段104连接。这样,当有两份对同一公司的记录信息都很价值时,可以将两份记录联系在一起生成事件日志66。领域事件102包含事件日志66,其中领域事件和事件日志中的信息可以基于模板生成一个完整的描述性报告或文章。在很多情况下,可以通过增加历史信息来加深文章,如添加专题,企业排行等。从历史财金日志中可以生成统计数据,将年报与过去相关的特别事件结合生成统计数据信息,在查找历史背景时就可以快速查询到。
[0035]从模板库中选择一个模板,再将从事件日志中生成的具体信息插入到模板中生成年报,在下面详细介绍一下模板68。每一个模板都是对年报进行的预先定义描写。更准确的说,一个模板是一个预先写好的模拟年报报告,中间可以插入一些年报的具体数据。例如一个非常简单的模板:【时间】【公司名称】发布了【第几季度】年报,年收入为【收入额】,同比增长【增长率】,净利润【利润值】。这个模板非常简单仅用来解释,在实际中模板会提供更加详细的信息,会更具有娱乐性和叙述性。这个简单的例子演示模板是可以通用的,拥有属性值,其中年报规则信息包括公司名称,总收入,以用来生成一个实际的新闻报道。字段信息是由令牌生成的,这个会在下面的章节详细说明。
[0036]图2展示了一个系统中包含了很多个模板68,每个模板描述了不同类型的年报叙述模型(如运营年报,政府报告,财务报告等),可以通过修改来描述具体的年报。模板选择器72必须可以快速的选择一个模板68来准确的描述年报。对不同的年报需要不同的模板,一个运营年报的模板是不适合财金年报的,所以每一个模板都要与它可以描述的年报关联,模板选择器只会对那些符合年报类型的模板进行审查。
[0037]在图4中,将一个模板68划分为一系列领域,若干个规则域108为了判定模板是否满足条件从而适合生成报告,在后面的章节后更加详细的说明怎么用规则域来选择模板;标题域110是生成文章的标题;作者域112是一个文本区,标明提供该模板的作者名字;文本域114包含使用模板68生成的文章。这个文本域包含文本中的令牌,令牌用来标识要用具体年报信息(公司名称,总收入,净利润等)来替换的位置。
[0038]在下面的章节基于图5介绍生成年报的过程。这个过程是从爬虫抓取数据开始的,如图中120所示,当网络爬虫抓取到新的数据时,将数据进行清洗输入系统中,就开始根据数据选择模板,生成新闻报道。最终用户可以是新闻发布者如本地报纸通过发布接口 20请求一个新闻。如图5所示,一旦抓取到新的年报信息,如120所示,数据经过清洗后进入数据库58中的事件日志66,如122所示。统计数据生成器使用信息生成一系列年报统计数据(SP对比赛日志中的数据信息进行一个整理加工),如124所示。统计数据是一系列完整的年报统计数据信息,包含可以应用在很多年报中的统计数据,例如总收入,同环增长率,每股利益等,统计数据是根据年报的类型(运营,财金等)生成。在模板插入信息时,这些信息就可以直接插入而不需要参考历史数据进行处理加工。
[0039]在模板的选择过程中,会使用到令牌,令牌本质上是一个函数调用,可以从中获取信息,所以令牌也被认为是一个变量。例如,在一份年报中,同比增长率,定义同比增长率为35%为大增,那么可以表示为“和上一年同期相比较的增长率大于等于35%”,这个条件可以使用令牌:(【本期数】-【同期数】)/【同期数】*100%> = 35%;使用两个令牌来表示条件,第一个令牌表示本期数,这个令牌是由76自动生成的统计调用函数,用来返回本期数的具体值;第二个令牌表示同期数,令牌调用函数返回同期数的具体值。对返回的两个期数值做一个简单的计算,比较结果是否大于等于35%。正如下面所示,在模板中使用令牌来进行数据的匹配,当匹配成功后,选择模板后,将返回的值、文本字符串插入到适当的位置。年报统计数据生成124后,将第一个模板从数据库58中检索出来并载入,如126所示。每个模板自身关联有一到多个条件规则,比较年报统计数据信息和模板关联的规则,如128,确认模板是否满足统计数据信息,如130,若不满足条件,则丢弃模板,如132所示,否则把模板标记为候选模板,如133所示。在比较的过程中,每个规则的比较都会导致一个“否”和“是”的结果的产生,“否”表示不满足条件,“是”表示满足条件。模板库中有很多的模板满足条件,如134所示,所以我们会继续判断下一个模板,这样继续126—134之间的步骤,从而剔除所有不符合数据条件的模板继续往下筛选。对所有候选模板进行比较,会得到一个小的模板列表。这里面的每一个模板都可以精确的描述比赛。如图5中的150所示,为了消除歧义,确定一个唯一的模板,给每个模板所关联规则设置不同的权值,当经过二次审查后,剩余的只有一个模板的话,则直接作为最终模板使用,若是剩余多个模板,计算每个模板的权值,选择最大权值的模板作为最终模板使用,若是没有模板满足数据信息,则选择默认模板作为最终模板使用。
[0040]例如:一个终端用户想要一份关于阿里的最近年报,基于美国通用会计准则GAAP,2015财年阿里营收达122.93亿美元(约762.04亿元),同期实现净利润39.23亿美元(约243.20亿元)。一篇年报若只是给出了公司的总收入和净利润是不会满足用户的需求的,使用模板可以进行修改使得描述比赛时显得有趣又准确。一旦抓取到了具体公司的数据信息120,进行清洗并从数据库58中检索出相关的事件日志66,通过统计数据生成器生成统计数据124,如同比增长率,环比增长率,净利润等。加载模板库中的模板126与统计数据比较128,若模板满足统计数据规则,则标记为候选模板133,否则直接丢弃132,基本上是根据统计数据进行筛选,如一个示例:【时间】,【年份】-【企业名称】在第四季度年报中报道【企业名称】的营收为【营收额(第四季度)】,较【年份(本年的去年)】增长【增长率】。同期实现净利润【净利润额】,较【年份(本年的去年)】增长仅【增长率(增长率一般小于等于5%)】,增速明显放缓。模板附带的一个规则是增速放缓,则可以据此规则消除一大批模板。
[0041]显然,在上面的模板中,公司,时间,总营收,净利润等都已经知道,另外还要满足以下几个条件,用令牌表示:I,企业本年的总营收额比去年的总营收额要多,【企业总营收(本年第四季度)】>【企业总营收(去年)】;2,企业本年的净利润额比去年的净利润额要多,【企业净利润(本年第四季度)】>【企业净利润(去年)】;3,企业本年的总营收额的增长率大于等于30%,(【企业营收额(本年)】-【企业营收额(去年)】)/【企业营收额(去年)】*100%>= 30%; 4,企业本年的净利润的增长率小于等于5%,(【企业净利润(本年)】-【企业净利润(去年)】)/【企业净利润(去年)】*100%〈 = 5%。每一个令牌可以调用一个文本字符串,如【时间】,【增长率】等。使用令牌具有很大灵活性,可以为简单的模板修改更多的细节。
[0042]针对模板的设计上,有的模板所带规则很具体,如企业本年的净利润必须比去年的净利润多。这种具体的条件使得模板可以描述更多的细节,也会导致模板的限制使用,因为每一个模板依赖于每一个不同的规则,为了更好的描述年报,需要尽可能多的为模板设置不同的规则,需要一个庞大的模板库,在年报生成的过程中就会导致一定的系统响应延迟。
[0043]对于在经过筛选过后保留下来的候选模板,必须计算模板各自的权重和,如由用户反馈,评价某个模板很好用,很有趣等,可以为该模板加一个额外的权值;用户指定作者提供的模板候选,添加一个更大的权值等,这样在计算候选模板后会出现一个数字排序,选择最好的模板即可。
[0044]—旦模板选定,将会自动生成向用户呈现的年报。在年报的生成过程中,从标题字段110,作者112,文本域114都要进行审查,若发现其中含有令牌,则调用适当的函数,将返回的相关参数插入到适应的位置上,并从文本中删除标记,留下一个完整的年报。
[0045 ]在自动生成的文本中可以添加一些超链接,使用超文本传输协议(HTTP)提供快速访问年报本身的某部分,包括在其他年报中的引用。一些年报中可能会包含一些音视频,如发布会开场等,可以将这些日志存储到事件日志66中,设置一个超链接,用户可以点击超链接查看音视频。
[0046]在本发明中,自动生成的年报可能被存储到数据库58或一些其他的存储设备或介质上,但并不是存储所有生成的文章。对于一些重要年报可以选择存储或是根据用户请求的次数进行有选择的存储年报。
【主权项】
1.基于模板自动生成新闻的系统,其特征在于:该系统包括新闻事件日志库、新闻文章模板库、规则库、统计数据生成器、模板选择器、自然语言生成、年报生成模块; 新闻事件日志库、新闻文章模板库、规则库组成该系统的数据库,新闻事件日志库通过选定事件日志与统计数据生成器连接,统计数据生成器分别与模板选择器、自然语言生成进行交互,自然语言生成与年报生成模块进行交互,统计数据生成器与模板选择器相交互,新闻文章模板库、模板选择器与年报生成模块相连接,年报生成模块与数据库进行连接。2.利用权利要求1所述系统进行的基于模板自动生成新闻的方法,其特征在于:该方法具体步骤阐述如下, (1)建立年报日志库:当爬虫抓取到新的年报信息时,建立年报日志库;年报日志库是指年报的记录,所属年报的记录为公司、营业收入、净利润、每股收益信息;即对数据进行一个简单的清洗整理,按照相应格式存储在数据库中; (2)建立模板库:差异化处理各领域的新闻报告内容版式;年报和体育新闻,在内容表达和版面排列方面大不相同,经过专家讨论进行领域的划分,在模板库中会建立很多对应不同领域的模板,同一领域亦建立多个模板,以保证新闻报道的新颖性和灵活可创造性;将建立的模板与专家进行讨论,进行不断地修改、订正,以保证可以覆盖领域信息的各个范围,从而更好地表达信息;建立模板的过程中要根据不同的应用建立不同标准的模板,以满足不同情况的应用; (3)建立规则库:在建立模板的过程中,与领域专业讨论模板中信息内容插入的规则,以便区别于不同的模板同时准确的匹配信息,生成准确的对应文本;规则对应于每个模板,同时为了保证在选择模板的过程中,保证模板的唯一性,为不同模板建立的规则设置权值,依据规则所携带的信息的重要性设置权重值;计算环比增长率,是一个比较重要的信息,在设置插入环比增长率的规则时,赋予较大的权重值; (4)选择模板:使用模板选择器根据以下步骤选择匹配数据信息的模板,并且根据年报数据生成年报报告;第一步根据年报日志记录和模板自身关联的规则进行过滤选择,得到至少一个候选模板;第二步,根据统计信息数据对候选模板进行二次筛选并进行权值计算,计算出权值最大的模板作为最后选择使用的模板; (5)建立统计数据库:统计数据库是指根据日志数据库分析数据得到一个统计结果,或是分析结果;如通过比较两年中同一个月的营业额得出同比增长率;通过分析一年中相邻两个月的营业额,计算出环比增长率;统计数据库的信息是经过进一步挖掘的信息,是通过分析获取更加有用、新鲜的信息; (6)自然语言生成:经过模板选择后,确定候选模板及需要表达的信息,通过自然语言生成将需要表达的信息表达出来;此系统中自然语言生成基于模板生成模式生成信息; (7)年报生成:将自然语言生成的信息插入到候选的模板中生成年报,保存到数据库中。
【文档编号】G06F17/30GK106021389SQ201610312962
【公开日】2016年10月12日
【申请日】2016年5月12日
【发明人】吕锐, 曹学会, 龚隽鹏, 陈明祥, 熊立波, 钟盈炯, 林波, 刘爱民, 储达峰, 范瑛, 丁望, 瞿弋微, 王熠, 邢承磊, 石超, 张弛
【申请人】新华通讯社, 中国传媒大学