用户报告生成方法、装置、存储介质和终端设备与流程

文档序号:15399788发布日期:2018-09-11 17:12阅读:184来源:国知局

本申请实施例涉及计算机技术,尤其涉及一种用户报告生成方法、装置、存储介质和终端设备。



背景技术:

用户有时候想要了解一个自己不熟悉的领域的信息时,需要通过搜索引擎进行查询,但是由于互联网的信息量十分巨大,而且用户对该领域并不熟悉,无法做到针对性的检索,所以用户在进行了海量的搜索后,也可能无法得到其所需要的信息。



技术实现要素:

本申请实施例提供一种用户报告生成方法、装置、存储介质和终端设备,可以根据用户输入的信息得到针对用户的报告。

第一方面,本申请实施例提供了一种用户报告生成方法,包括:

根据用户的输入信息确定对应的预设报告模板信息,以及根据所述输入信息确定所述预设报告模板信息中的变量信息的变量值;其中,所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息;

遍历所述预设报告模板信息中的字符串信息,并根据所述变量值确定所有字符串信息对应的字符串值;

将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。

进一步地,所述根据用户的输入信息确定对应的预设报告模板信息之后,还包括:

根据所述用户的输入信息发送对应的交互信息给用户;

相应地,根据所述输入信息确定所述预设报告模板信息中的变量信息的变量值包括:

接收用户根据所述交互信息反馈的输入信息;

根据所述反馈的输入信息确定所述预设报告模板信息中的变量信息的变量值。

进一步地,在遍历所述预设报告模板信息中的字符串信息之前,还包括:

判断是否符合预设输出条件;

如果是,则在根据所述反馈的输入信息确定所述预设报告模板信息中的变量信息的变量值之后,执行所述遍历所述预设报告模板信息中的字符串信息的操作;

如果否,则在接收用户根据所述交互信息反馈的输入信息之后,根据所述反馈的输入信息更新所述预设报告模板信息,并返回执行所述根据所述用户的输入信息发送对应的交互信息给用户的操作。

进一步地,所述判断是否符合预设输出条件包括:

判断最后发送给用户的交互信息是否为预设节点。

进一步地,所述字符串信息包括中缀表达式的运算公式;相应地,根据所述变量值确定所有字符串信息对应的字符串值包括:

将所述字符串信息中的变量信息替换为相应的变量值;其中,所述中缀表达式的运算公式包括至少一个的变量信息;

将所述中缀表达式的运算公式转换为后缀表达式的字符数组;

根据所述字符数组进行运算以得到所述字符串信息对应的字符串值。

进一步地,所述字符串信息包括函数表达式的运算公式;相应地,根据所述变量值确定所有字符串信息对应的字符串值包括:

将所述字符串信息中的变量信息替换为相应的变量值;其中,所述函数表达式的运算公式包括至少一个的变量信息;

将所述函数表达式的运算公式转换为中缀表达式的运算公式;

将所述中缀表达式的运算公式转换为后缀表达式的字符数组;

根据所述字符数组进行运算以得到所述字符串信息对应的字符串值。

进一步地,将所述中缀表达式的运算公式转换为后缀表达式的字符数组包括:

将所述中缀表达式的运算公式中的数值和运算符进行分离,转换为字符分离数组;

遍历所述字符分离数组,并对所述字符分离数组所包括的字符依次判断并进行分类处理;

如果是数值,则将所述数值存储至后缀表达式暂存数组中;

如果是左括弧,则将所述左括弧存入运算栈中;

如果是右括弧,则将运算栈中栈顶至最靠近栈顶的左括弧之前的运算符存储至所述后缀表达式暂存数组中;

如果是其他运算符,则判断所述其他运算符的运算优先级是否低于所述运算栈的栈顶的预存运算符;

如果所述其他运算符的运算优先级高于或等于所述栈顶的预存运算符,则将所述其他运算符存入运算栈中;

如果所述其他运算符的运算优先级低于所述栈顶的预存运算符,则将所述栈顶的预存运算符存储至后缀表达式暂存数组中,并将所述其他运算符存入运算栈中;

直到所述字符分离数组的所有字符均被分类处理,将运算栈中的预存运算符存入后缀表达式暂存数组中,并生成后缀表达式的字符数组。

第二方面,本申请实施例还提供了一种用户报告生成装置,包括:

模板变量确定模块,用于根据用户的输入信息确定对应的预设报告模板信息,以及根据所述输入信息确定所述预设报告模板信息中的变量信息的变量值;其中,所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息;

数值确定模块,用于遍历所述预设报告模板信息中的字符串信息,并根据所述变量值确定所有字符串信息对应的字符串值;

报告生成模块,用于将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。

第三方面,本申请实施例还提供了一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请任意实施例所述的用户报告生成方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请任意实施例所述的用户报告生成方法。

本申请实施例公开的一种用户报告生成方案,通过根据用户的输入信息确定对应的预设报告模板信息,以及根据所述输入信息确定所述预设报告模板信息中的变量信息的变量值;其中,所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息;遍历所述预设报告模板信息中的字符串信息,并根据所述变量值确定所有字符串信息对应的字符串值;将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。本申请实施例可以根据用户的输入信息生成和用户相对应的报告,用户可以通过报告了解到相应的信息。

附图说明

图1是本申请实施例一中的用户报告生成方法的流程图;

图2是本申请实施例二中的用户报告生成方法的流程图;

图3是本申请实施例三中的用户报告生成方法的流程图;

图4是本申请实施例四中的用户报告生成方法的流程图;

图5是本申请实施例四中的另一种用户报告生成方法的流程图;

图5a是本申请实施例四中对字符分离数组进行判断和分类的示意图一;

图5b是本申请实施例四中对字符分离数组进行判断和分类的示意图二;

图5c是本申请实施例四中对字符分离数组进行判断和分类的示意图三;

图5d是本申请实施例四中对字符分离数组进行判断和分类的示意图四;

图5e是本申请实施例四中对字符分离数组进行判断和分类的示意图五;

图5f是本申请实施例四中对字符分离数组进行判断和分类的示意图六;

图6是本申请实施例五中的用户报告生成装置的结构示意图;

图7是本申请实施例七中的一种终端设备的硬件结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。

实施例一

图1为本申请实施例一提供的用户报告生成方法的流程图,该方法可以由用户报告生成装置来执行,其中,该装置可以由软件和/或硬件实现,一般可以集成在硬件平台上,具体包括:

s101、根据用户的输入信息确定对应的预设报告模板信息,以及根据所述输入信息确定所述预设报告模板信息中的变量信息的变量值。

其中,输入信息包括用户输入的关键词信息,以及用户自身的信息。

用户想要了解某一个领域的信息,一般会输入相应的关键词信息进行检索。示例性地,以法律领域为例,用户想要了解婚姻法的相关信息,可以输入“婚姻法”作为关键词信息。另外,已婚的用户和未婚的用户想要了解的婚姻法的信息可能有所不同,所以需要再根据用户自身的信息进一步确定用户想要了解的信息,用户可以输入“婚姻法”和“已婚”作为输入信息,其中“婚姻法”为关键词信息,“已婚”为用户自身的信息。

需要说明的是,用户的输入信息还可以是在系统预先设置的可选项中进行选择。示例性地,系统预先设置的可选项中包括:“专利法”、“婚姻法”、“劳动法”和“民法”等多个不同领域的选项,用户可以通过输入装置在上述的可选项中进行选择,被选中的将会作为输入信息。

所述预设报告模板信息为相关的专业人员预先进行存储设置,示例性地,法律领域的预设报告模板信息为相关的法律人员预先进行存储设置。预设报告模板信息和输入信息有对应的映射关系,可以根据用户的输入信息以及所述映射关系确定对应的预设报告模板信息,不同的输入信息对应不同的预设报告模板信息。

所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息。

所述预设文本信息为和用户的输入信息相对应,以及可以形成报告的文字,所述变量信息和用户自身的信息相对应。示例性地,婚姻法对应的预设报告模板信息中包括的字符串信息中的变量信息可以是用户的年龄,用户可以通过输入用户的年龄来确定对应的变量信息的变量值。

所述字符串信息可以是嵌入在预设文本信息中的固定位置;示例性地,一个关于劳动法的预设报告模板信息为:“你好{{name}},根据你的年龄,我们计算出你所需要支付的赔偿金额为{{salary*(0.1+0.75)+salary*month}}”,其中,“name”和“salary*(0.1+0.75)+salary*month”为字符串信息,“你好,根据你的年龄,我们计算出你所需要支付的赔偿金额为”为预设文本信息。用户可以通过预设文本信息了解到对应的信息。

所述字符串信息可以包括两个变量信息,或者更多的变量信息;如上述示例,其中预设报告模板信息对应的是劳动法诉讼的赔偿金额,则需要获取用户的工资和工作时间等变量信息。如果字符串信息中包括两个或两个以上的变量信息时,字符串信息还包括运算符。

s102、遍历所述预设报告模板信息中的字符串信息,并根据所述变量值确定所有字符串信息对应的字符串值。

其中,可以通过正则表达式遍历所述预设报告模板信息中的字符串信息。

如果字符串信息中仅包括一个变量信息,则该变量信息对应的变量值即字符串信息的字符串值。如上述示例所示,字符串信息“name”的字符串值为用户输入的用户的姓名。

如果字符串信息中包括两个或两个以上的变量信息,则根据所述变量值以及运算符确定字符串信息对应的字符串值。如上述示例所示,字符串信息“salary*(0.1+0.75)+salary*month”对应的字符串值为根据用户输入的工资“salary”和工作时间“month”来进行计算的。

s103、将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。

将嵌入在预设文本信息中的固定位置的字符串信息替换为对应的字符串值,得到的即是包括字符串值的预设文本信息,由于字符串值为根据用户自身的信息所进行确定的,相应地最后得到的预设报告模板信息包括预设文本信息和字符串值,不仅包括和用户所想要了解的领域的文字信息,同时还包括和用户自身的信息所对应的数据,所生成的报告可以和用户自身的信息相对应,使用户能更清楚地获得到其想要了解的信息。

实施例二

图2为本申请实施例二提供的用户报告生成方法的流程图,在上述实施例的基础上,如图2所示,该方法具体包括如下步骤:

s111、根据用户的输入信息确定对应的预设报告模板信息,根据所述用户的输入信息发送对应的交互信息给用户。

其中,所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息。

所述用户的输入信息可包括用户输入的关键词信息,根据用户的输入信息确定对应的预设报告模板信息的具体实施方式可以参考上文的相关描述,在此不再赘述。

其中,所述交互信息可以是和所述输入信息对应的系统预设的信息,且用于引导用户反馈对应的输入信息的信息。交互信息可以是文字信息或可选项信息;根据用户的输入信息发送对应的交互信息给用户之后,用户可以根据交互信息反馈对应的输入信息。如果所述交互信息是文字信息,可以是用于引导用户进行反馈对应的输入信息的文字信息;如果所述交互信息是可选项信息,可以是系统预设的固定选项。

示例性地,根据用户的输入信息“婚姻法”确定对应的预设报告模板信息之后,想要进一步了解用户自身的信息,可以发送“请问您是否已婚”的文字信息给用户,用户可以根据该文字信息反馈“是”或“否”的输入信息;还可以发送“已婚”和“未婚”的可选项信息给用户,用户可以通过选择“已婚”或“未婚”作为反馈的输入信息。

s112、接收用户根据所述交互信息反馈的输入信息,根据所述反馈的输入信息确定所述预设报告模板信息中的变量信息的变量值。

所述反馈的输入信息包括用户自身的信息,根据所述反馈的输入信息确定所述预设报告模板信息中的变量信息的变量值的操作可以参考上文的相关描述,在此不再赘述。

s113、遍历所述预设报告模板信息中的字符串信息,并根据所述变量值确定所有字符串信息对应的字符串值。

s114、将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。

上述操作的具体实施方式可以参考上文的相关描述,在此不再赘述。

实施例三

图3为本申请实施例三提供的用户报告生成方法的流程图,在上述实施例的基础上,如图3所示,该方法具体包括如下步骤:

s120、根据用户的输入信息确定对应的预设报告模板信息。

s121、根据所述用户的输入信息发送对应的交互信息给用户。

其中,所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息。

s122、接收用户根据所述交互信息反馈的输入信息。

s123、根据所述反馈的输入信息确定所述预设报告模板信息中的变量信息的变量值。

具体实施方式可以参考上文的相关描述,在此不再赘述。

s124、判断是否符合预设输出条件;如果是,则执行操作s126;如果否,则执行操作s125。

在符合预设输出条件时,便不再发送交互信息给用户,而是在接收到用户最后反馈的输入信息之后就可以输出用户报告,即执行遍历所述预设报告模板信息中的字符串信息的操作。

可选地,判断是否符合预设输出条件可以是:判断最后发送给用户的交互信息是否为预设节点。其中,所述交互信息为用于引导用户反馈对应的输入信息的信息,所述预设节点对应的交互信息可以是引导用户反馈了足以生成用户报告的输入信息的信息。

所述判断是否符合预设输出条件可以是:判断是否接收到报告生成指令,所述报告生成指令可以是用户触发,或者从后台服务器发送而来。或者,判断交互时间是否已到报告输出时间,所述交互时间可以是用户最初发送的输入信息的时间至当前时间的时间差值,在所述交互时间达到报告输出时间时,可以输出用户报告。具体的预设输出条件可以根据实际应用进行设置,本申请实施例在此不作限定。

s125、根据所述反馈的输入信息更新所述预设报告模板信息,并返回执行所述根据所述用户的输入信息发送对应的交互信息给用户的操作。

如果还未符合预设输出条件,即当前获取的用户的输入信息不足以生成用户报告,可以反馈执行根据所述用户的输入信息发送对应的交互信息给用户的操作,即再次发送用于引导用户反馈输入信息的交互信息给用户,进一步获取用户的输入信息,直到获取的用户的输入信息足以生成用户报告。

其中,预设报告模板信息包括一段或者多段的预设文本信息,其中还包括至少一个的字符串信息。

用户的一个输入信息可以是对应一段预设文本信息。所以在用户反馈了输入信息之后,可以确定所述反馈的输入信息所对应的预设文本信息,并将所述对应的预设文本添加至预设报告模板信息中,作为更新所述预设报告模板信息。示例性地,预设报告模板信息包括“我国《婚姻法》规定,法定结婚年龄,男不得早于二十二周岁,女不得早于二十周岁”,交互信息为“请问您的年龄是?”;用户根据所述交互信息反馈其年龄“22”后,和用户反馈的输入信息“22”相对应的预设文本信息包括“您已经达到法定年龄,可以结婚。”。

则将该预设文本信息添加至上述预设报告模板信息中,得到更新后的预设报告模板信息“我国《婚姻法》规定,法定结婚年龄,男不得早于二十二周岁,女不得早于二十周岁。您已经达到法定年龄,可以结婚。”

需要说明的是,用户的一个输入信息还可以对应至少一个的字符串信息,在用户反馈了输入信息之后,还可以将所述至少一个的字符串信息添加至预设报告模板信息中,更新所述预设报告模板信息。

s126、遍历所述预设报告模板信息中的字符串信息,并根据所述变量值确定所有字符串信息对应的字符串值。

s127、将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。

上述操作的具体实施方式可以参考上文的相关描述,在此不再赘述。

需要说明的是,所述判断是否符合预设输出条件的操作的执行顺序不限于图3中所示,可以根据所述预设输出条件的设置来调整该操作的执行顺序。只需要满足在根据所述反馈的输入信息确定所述预设报告模板信息中的变量信息的变量值之后,执行所述遍历所述预设报告模板信息中的字符串信息的操作,以及满足在接收用户根据所述交互信息反馈的输入信息之后,执行根据所述反馈的输入信息更新所述预设报告模板信息的操作即可。

实施例四

图4为本申请实施例四提供的用户报告生成方法的流程图,在上述实施例的基础上,对根据所述变量值确定所有字符串信息对应的字符串值的操作进行了优化,如图4所示,可选地,该方法具体包括:

s131、根据用户的输入信息确定对应的预设报告模板信息,以及根据所述输入信息确定所述预设报告模板信息中的变量信息的变量值。

其中,所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息。

具体实施方式可以参考上文的相关描述,在此不再赘述。

s132、遍历所述预设报告模板信息中的字符串信息。

其中,所述字符串信息包括中缀表达式的运算公式,和/或函数表达式的运算公式。

其中,所述中缀表达式的运算公式为通用的运算公式,中缀表达式的运算符位于运算数值之间。示例性地,如上文所述的字符串信息:“salary*(0.1+0.75)+salary*month”即是中缀表达式的运算公式,其中的运算符*和+位于运算数值之间。

所述函数表达式的运算公式为包括自定义函数的运算公式,自定义函数用于表示示例性地,字符串信息“date(end-start)+age”,其中,date()即自定义函数,用于表示开始时间start到结束时间end的年数。

中缀表达式和/或函数表达式符合人类的逻辑思维,由于预设报告模板信息是由专业人员提前进行设置,所以采用中缀表达式和/或函数表达式可以方便专业人员设置预设报告模板信息。

s133、将所述字符串信息中的变量信息替换为相应的变量值。其中,所述中缀表达式或函数表达式的运算公式包括至少一个的变量信息。

对于中缀表达式的运算式直接执行操作s134。

对于函数表达式的运算公式,在将所述函数表达式的运算公式转换为中缀表达式的运算公式之后执行操作s134。

其中,可以根据自定义函数预设对应的计算式,以及替换为相应变量值的变量信息来对自定义函数进行计算,得到函数计算数值,将函数表达式的运算公式中的自定义函数替换为函数计算数值,进而可以确定对应的中缀表达式。

示例性地,函数表达式的运算公式date(end-start)+age中包括自定义函数date(),该自定义函数date(end-start)对应的计算式为year(end)-year(start),示例性地,如果开始时间start为2015年10月到结束时间2017年4月,year(end)-year(start)对应为2017-2015,可以得到函数计算数值为2。如果用户输入的年龄变量值age为22,则字符串信息date(end-start)+age对应的中缀表达式的运算公式为2+22。

s134、将所述中缀表达式的运算公式转换为后缀表达式的字符数组。

所述后缀表达式为不包括括弧、运算符放在运算数值的后面、且按照运算符出现的顺序,从左向右进行运算的运算表达式。相应地,后缀式的从左向右进行运算的运算方式,符合计算机的计算运行方式。而对于中缀表达式,计算机进行计算遇到运算符时,需要向后扫描下一位运算数值才能完成计算。

s135、根据所述字符数组进行运算以得到所述字符串信息对应的字符串值。

其中,根据所述后缀表达式的字符数组进行运算,具体可以是:

从左向右遍历字符数组,判断字符数组中的字符;

如果字符是数值,则将所述数值入栈;

如果字符是运算符,则将栈顶的两个数值出栈,并根据所述运算符对所述两个数值进行运算得到的运算值,并将该运算值入栈;

直到所有字符均被运算得到最终运算值,即所述字符串信息对应的字符串值。

其中,栈(stack)是一种运算受限的线性表,从线性表的一端插入字符称为入栈,从线性表的一端输出字符称为出栈。最新入栈的字符被放置在栈的栈顶,栈顶的字符如果出栈,其原先相邻的字符成为栈顶元素。

本申请实施例通过将中缀表达式的运算公式转换为后缀表达式的字符数组,可以方便计算机的运算,进一步提高用户报告生成的效率。

s136、将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。

具体实施方式可以参考上文的相关描述,在此不再赘述。

作为本申请实施例的另一种实施方式,如图5所示,所述将所述中缀表达式的运算公式转换为后缀表达式的字符数组的操作,可以通过下述方式实施:

s141、将所述中缀表达式的运算公式中的数值和运算符进行分离,转换为字符分离数组。

其中,中缀表达式为经过将所述字符串信息中的变量信息替换为相应的变量值的操作,所以中缀表达式中仅包括数值和运算符,将数值和运算符进行分离,转换为字符分离数组。示例性地,对中缀表达式“5000*(0.1+0.75)+5000*12”中的数值和运算符进行分离,转换为字符分离数组为:“5000,*,(,0.1,+,0.75,),+,5000,*,12”。

s142、遍历所述字符分离数组,并对所述字符分离数组所包括的字符依次判断并进行分类处理。

s143、如果是数值,则将所述数值存储至后缀表达式暂存数组中;如果是左括弧,则将所述左括弧存入运算栈中;如果是右括弧,则将运算栈中栈顶至最靠近栈顶的左括弧之前的运算符存储至所述后缀表达式暂存数组中。

其中,所述后缀表达式暂存数组和运算栈均为栈。在将运算栈中栈顶至最靠近栈顶的左括弧之前的运算符存储至所述后缀表达式暂存数组后,所述右括弧和最靠近栈顶的左括弧相抵消。

s144、如果是其他运算符,则判断所述其他运算符的运算优先级是否低于所述运算栈的栈顶的预存运算符。

所述其他运算符为除了左括弧和右括弧之外的运算符。

s145、如果所述其他运算符的运算优先级高于或等于所述栈顶的预存运算符,则将所述其他运算符存入运算栈中。

s146、如果所述其他运算符的运算优先级低于所述栈顶的预存运算符,则将所述栈顶的预存运算符存储至后缀表达式暂存数组中,并将所述其他运算符存入运算栈中。只要保证运算栈的栈顶的预存运算符的运算优先级不低于运算栈中其他的预存运算符。

以上述示例的字符分离数组为例,对“5000,*,(,0.1,+,0.75,),+,5000,*,12”中的字符进行依次判断和进行分类处理;对于数值5000,存储至后缀表达式暂存数组中,对于运算符*存储至运算栈中,对于左括弧(存储至运算栈中,对于数值0.1存储至后缀表达式暂存数组中,此时的后缀表达式暂存数组和运算栈,如图5a所示。

然后是其他运算符+,判断其他运算符+,和所述运算栈的栈顶的预存运算符(的运算优先级,由于+的运算优先级不低于(,所以将其他运算符+也存储至运算栈中;然后对于数值0.75存储至后缀式暂存数组中,如图5b所示。

然后是右括弧),将运算栈的栈顶元素至左括弧之前的元素存储至后缀表达式暂存数组中,相应地,右括弧和左括弧相抵消,如图5c所示。

然后其他运算符+,判断其他运算符+和所述栈顶的预存运算符*的运算优先级,由于+的运算优先级低于*,所以将预存运算符*存储至后缀表达式暂存数组中,然后将其他运算符+存储至运算栈中,如图5d所示。

然后对接下来的字符5000、*和12进行判断和处理,得到的最终的后缀表达式暂存数组和运算栈如图5e所示。此时,所述字符分离数组的所有字符均被分类处理。

s147、直到所述字符分离数组的所有字符均被分类处理,将运算栈中的预存运算符存入后缀表达式暂存数组中,并生成后缀表达式的字符数组。

将运算栈中的预存运算符依次出栈并存入后缀表达式暂存数组中,得到的后缀表达式暂存数组,如图5f所示。将该后缀表达式暂存数组作为后缀表达式的字符数组,最终的到的后缀表达式的字符数组为“5000,0.1,0.75,+,*,5000*,12,*,+”。

通过将中缀表达式的运算公式转换为后缀表达式的字符数组,可以方便计算机的运算,进一步提高用户报告生成的效率。

实施例五

图6为本申请实施例五提供的用户报告生成装置的结构示意图,该装置可以由软件和/或硬件实现,一般可以集成在硬件平台上。如图6所示,所述用户报告生成装置包括:

模板变量确定模块201,用于根据用户的输入信息确定对应的预设报告模板信息,以及根据所述输入信息确定所述预设报告模板信息中的变量信息的变量值;其中,所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息;

数值确定模块202,用于遍历所述预设报告模板信息中的字符串信息,并根据所述变量值确定所有字符串信息对应的字符串值;

报告生成模块203,用于将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。

本申请实施例公开的一种用户报告生成装置,通过根据用户的输入信息确定对应的预设报告模板信息,以及根据所述输入信息确定所述预设报告模板信息中的变量信息的变量值;其中,所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息;遍历所述预设报告模板信息中的字符串信息,并根据所述变量值确定所有字符串信息对应的字符串值;将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。本申请实施例可以根据用户的输入信息生成和用户相对应的报告,用户可以通过报告了解到相应的信息。

可选地,还包括:

交互模块,用于在根据用户的输入信息确定对应的预设报告模板信息之后,根据所述用户的输入信息发送对应的交互信息给用户;

相应地,模板变量确定模块具体用于:

接收用户根据所述交互信息反馈的输入信息;根据所述反馈的输入信息确定所述预设报告模板信息中的变量信息的变量值。

可选地,还包括:

判断模块,用于在遍历所述预设报告模板信息中的字符串信息之前,判断是否符合预设输出条件;

如果是,则在根据所述反馈的输入信息确定所述预设报告模板信息中的变量信息的变量值之后,执行所述遍历所述预设报告模板信息中的字符串信息的操作;

如果否,则在接收用户根据所述交互信息反馈的输入信息之后,根据所述反馈的输入信息更新所述预设报告模板信息,并返回执行所述根据所述用户的输入信息发送对应的交互信息给用户的操作。

可选地,所述判断模块具体用于:

判断最后发送给用户的交互信息是否为预设节点。

可选地,所述字符串信息包括中缀表达式的运算公式;

相应地,数值确定模块具体包括:

变量替换模块,用于将所述字符串信息中的变量信息替换为相应的变量值;其中,所述中缀表达式的运算公式包括至少一个的变量信息;

后缀式转换模块,用于将所述中缀表达式的运算公式转换为后缀表达式的字符数组;

运算模块,用于根据所述字符数组进行运算以得到所述字符串信息对应的字符串值。

可选地,所述字符串信息包括函数表达式的运算公式;

相应地,数值确定模块具体包括:

变量替换模块,用于将所述字符串信息中的变量信息替换为相应的变量值;其中,所述函数表达式的运算公式包括至少一个的变量信息;

中缀式转换模块,用于将所述函数表达式的运算公式转换为中缀表达式的运算公式;

后缀式转换模块,用于将所述中缀表达式的运算公式转换为后缀表达式的字符数组;

运算模块,用于根据所述字符数组进行运算以得到所述字符串信息对应的字符串值。

可选地,后缀式转换模块具体用于:

将所述中缀表达式的运算公式中的数值和运算符进行分离,转换为字符分离数组;

遍历所述字符分离数组,并对所述字符分离数组所包括的字符依次判断并进行分类处理;

如果是数值,则将所述数值存储至后缀表达式暂存数组中;

如果是左括弧,则将所述左括弧存入运算栈中;

如果是右括弧,则将运算栈中栈顶至最靠近栈顶的左括弧之前的运算符存储至所述后缀表达式暂存数组中;

如果是其他运算符,则判断所述其他运算符的运算优先级是否低于所述运算栈的栈顶的预存运算符;

如果所述其他运算符的运算优先级高于或等于所述栈顶的预存运算符,则将所述其他运算符存入运算栈中;

如果所述其他运算符的运算优先级低于所述栈顶的预存运算符,则将所述栈顶的预存运算符存储至后缀表达式暂存数组中,并将所述其他运算符存入运算栈中;

直到所述字符分离数组的所有字符均被分类处理,将运算栈中的预存运算符存入后缀表达式暂存数组中,并生成后缀表达式的字符数组。

实施例六

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行用户报告生成方法,该方法包括:

根据用户的输入信息确定对应的预设报告模板信息,以及根据所述输入信息确定所述预设报告模板信息中的变量信息的变量值;其中,所述预设报告模板信息中包括预设文本信息以及至少一个的字符串信息,每个字符串信息中包括至少一个的变量信息;

遍历所述预设报告模板信息中的字符串信息,并根据所述变量值确定所有字符串信息对应的字符串值;

将所述预设报告模板信息中的字符串信息替换为对应的字符串值,以生成报告。

可选的,该计算机可执行指令在由计算机处理器执行时还可以用于执行本申请任意实施例所提供的用户报告生成方法。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

实施例七

如图7所示,为本申请实施例七提供的一种终端设备的硬件结构示意图,如图7所示,该终端设备包括:

一个或多个处理器410,图7中以一个处理器410为例;

存储器420;

所述终端设备还可以包括:输入装置430和输出装置440。

所述终端设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图7中以通过总线连接为例。

存储器420作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的一种用户报告生成方法对应的程序指令/模块(例如,附图6所示的模板变量确定模块201、数值确定模块202和报告生成模块203)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行终端设备的各种功能应用以及数据处理,即实现上述方法实施例的一种用户报告生成方法。

存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。

注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1