发明内容
本公开的目的在于提供一种基于数据分析的、可以实时检验发票真伪的发票检验方法、一种发票检验装置以及一种电子设备、存储介质。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供一种发票检验方法,所述方法包括:
接收一检验请求,并识别所述检验请求中待检验对象的格式;
在识别所述待检验对象为第一格式时,根据所述待检验对象查询预设黑名单并返回查询结果;和/或,
在识别所述待检验对象为第二格式时,提取所述待检验对象中第二信息,并对所述第二信息进行校验以生成校验结果。
本公开的一种示例性实施例中,所述第一格式为文本格式;所述在识别所述待检验对象为第一格式时,根据所述待检验对象查询预设黑名单并返回查询结果包括:
对所述待检验对象进行分词处理以获取关键词;
根据所述关键词查询所述预设黑名单以获取所述待检验对象的查询结果。
本公开的一种示例性实施例中,若所述查询结果为空,则根据所述关键词检索第一数据库以获取所述关键词对应目标企业的基本信息;
根据所述目标企业的基本信息检索第二数据库以获取所述目标企业的信用信息;
根据所述信用信息计算所述待检验对象为虚假发票的概率并生成提示信息。
本公开的一种示例性实施例中,所述信用信息包括所述目标企业的历史开具虚假发票比例、企业失信记录、企业行政处罚记录以及企业经营异常名录信息中的任一项或任意多项的组合;所述根据所述信用信息计算所述待检验对象为虚假发票的概率并生成提示信息包括:
利用下式计算所述待检验对象为虚假发票的概率:
W=a1*X+a2*L+a3*A+a4*J
其中,X为历史开具虚假发票比例、L为企业失信记录数量、A为企业行政处罚记录数量、J为企业经营异常名录信息;a1、a2、a3、a4分别为预设权重。
本公开的一种示例性实施例中,所述第二格式为图像格式;所述提取所述待检验对象中的第二信息,并对所述第二信息进行校验以生成校验结果包括:
识别所述第二格式的所述待检验对象并提取所述待检验对象中的第二信息;
利用基于标注样本训练过的发票信息鉴别模型,对所述待检验对象中的第二信息进行鉴别以确定所述待检验对象中的第二信息是否包括虚假信息。
本公开的一种示例性实施例中,所述标注样本包括已标记的虚假发票;所述方法还包括:
识别所述虚假发票的图像,并提取所述虚假发票的图像中的第二信息;
标记所述虚假发票的图像中的第二信息中的虚假信息,并生成训练样本集;
使用所述训练样本集训练机器学习模型以获取所述发票信息鉴别模型;
其中,所述第二信息包括:企业名称、税号、开票金额、数量、单价、科目、条码、编号、二维码以及印章中任意多项的组合。
本公开的一种示例性实施例中,所述方法还包括:
接收黑名单修改请求;其中,所述黑名单修改请求包括目标信息及修改凭证;
若所述修改凭证符合预设判断规则则将所述目标信息添加至所述黑名单。
根据本公开实施例的第二方面,提供一种发票检验装置,包括:
识别模块,用于接收一检验请求,并识别所述检验请求中待检验对象的格式;
第一检验模块,用于在识别所述待检验对象为第一格式时,根据所述待检验对象查询预设黑名单并返回查询结果;和/或,
第二识别模块,用于在识别所述待检验对象为第二格式时,提取所述待检验对象中第二信息,并对所述第二信息进行校验以生成校验结果。
根据本公开的第三方面,提供一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的发票检验方法。
根据本公开的第四方面,一种电子终端,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器被配置为执行上述任意一种发票检验方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开的一种实施例中,上述的发票检验方法,通过首先识别待检验对象的格式,并在第一个格式时向预设的黑名单查询,以及在第二格式时提取第二信息,并对第二信息进行校验,从而获取发票真伪的检验结果。从而实现对发票真伪的实时检验。进一步的,通过对不同类型数据使用不同的检验方法,可以对待开具的发票以及已经开具的发票分别进行检验,从而有效的保证发票检验结果的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施方式中首先提供了一种基于数据分析的发票检验方法。参考图1中所示,该方法可以包括以下步骤:
步骤S101,接收一检验请求,并识别所述检验请求中待检验对象的格式;
步骤S102,在识别所述待检验对象为第一格式时,根据所述待检验对象查询预设黑名单并返回查询结果;和/或,
步骤S103,在识别所述待检验对象为第二格式时,提取所述待检验对象中第二信息,并对所述第二信息进行校验以生成校验结果。
通过上述的发票检验交互方法,一方面,通过首先识别待检验对象的格式,能够对多种形式的发票进行验证。另外,通过在识别为第一个格式时向预设的黑名单查询,以及在第二格式时提取第二信息,并对第二信息进行校验,获取发票真伪的检验结果。从而实现对发票真伪的实时检验。另一方面,通过对不同类型数据使用不同的检验方法,从而有效的保证发票检验结果的准确性。
下面,将参考附图及实施例对本示例实施方式中的上述方法的各个步骤进行更详细的说明。
步骤S101,接收一检验请求,并识别所述检验请求中待检验对象的格式。
本示例实施方式中,可以在客户端提供一交互界面,使用户可以在该交互界面输入待检验对象,并向服务器端提交针对该待检验对象的检验请求。该交互界面可以是一项独立程序的人机交互界面,也可以是内嵌在其他程序内的交互界面,例如以微信小程序的形式呈现在终端。
对于服务器端来说,在接收到该检验请求后,可以首先对待检验对象的格式进行识别和判断。具体来说,待检验对象的格式可以是文本格式或图像格式。可以通过待检验对象的文件格式后缀对文件格式进行识别。
当然,在本公开的其他示例性实施例中,该待检验对象也可以是视频格式。此时,可以截取该视频中的一帧或多帧图像,并选取清晰度最高的待检验对象的图像。
步骤S102,在识别所述待检验对象为第一格式时,根据所述待检验对象查询预设黑名单并返回查询结果。
本示例实施方式中,上述的第一格式可以为文本格式。具体来说,在待检验对象为文本格式时,参考图2所示,上述的步骤S102可以包括:
步骤S1021,对所述待检验对象进行分词处理以获取关键词;
步骤S1022,根据所述关键词查询所述预设黑名单以获取所述待检验对象的查询结果。
具体来说,上述的文本可以是用于标识企业名称或编号的中文、英文、英文缩写以及数字中的任意一种或任意多种的组合。可以利用jieba分词或者其他分词工具对待检验对象进行分词处理,从而获取待检验对象对应目标企业的至少一个关键词。例如,在待检验对象为“广州小狐狸信息科技有限责任公司上海分公司”,则进行分词处理后可以获取其关键词为“小狐狸”、“小狐狸信息”等关键词。
上述的黑名单可以包括多个历史曾开具过虚假发票的企业的信息。通过利用该关键词在预设黑名单中进行检索,从而在开具发票之前或者在已开具发票之后,查询当前开具发票的企业是否在该黑名单中,从而可以获知该企业是否存在开具虚假发票的历史记录,进而为用户提供判断发票是否为虚假发票的依据。
举例来说,若用户提交的待检验对象为“大象科技有限责任公司北京分公司”。通过分词处理后可以获取关键词为“大象科技”或“大象”,此时便可以利用上述的关键词在黑名单中分别进行检索和匹配结果,并可以将各关键词的匹配结果合并从而生成查询结果。若检索后查询结果不为空,则说明该公司存在开具虚假发票的历史记录,则当前的发票存在是虚假发票的可能。从而帮助用户实现实时的对发票鉴别真伪做出初步判断。然后,用户还可以对待开具的发票或已经开具的发票进行进一步的校验。
基于上述内容,上述的步骤S102还可以包括:
步骤S1023-1,若所述查询结果为空,则根据所述关键词检索第一数据库以获取所述关键词对应的目标企业的基本信息;
本示例实施方式中,上述的第一数据库可以是官方的企业信息数据库。若在黑名单中的检索结果为空,则说明该企业不存在开具虚假发票的历史记录。此时便可以根据关键词在官方网站或检索平台查询并确定该关键词对应企业的详细信息。举例来说,企业的详细信息可以包括企业完整名称、纳税人识别号以及社会统一信用代码等。
步骤S1023-2,根据所述目标企业的基本信息检索第二数据库以获取所述目标企业的信用信息;
本示例实施方式中,上述的第二数据库可以是官方的企业信用信息数据库。在获取企业的基本信息后,便可以通过爬虫算法从官方平台或其他专业平台调拉取企业的信用信息。具体来说,上述的企业信用信息可以包括:目标企业的历史开具虚假发票比例、企业失信记录、企业行政处罚记录以及企业经营异常名录信息中的任一项或任意多项的组合。其中,企业的历史开具虚假发票比例可以根据企业开具发票的总数量和虚假发票的数量进行计算。
步骤S1023-3,根据所述信用信息计算所述待检验对象为虚假发票的概率并生成提示信息。
本示例实施方式中,在提取目标企业的信用信息后,便可以利用下式计算所述待检验对象为虚假发票的概率:
W=a1*X+a2*L+a3*A+a4*J
其中,W为开具虚假发票的概率;X为历史开具虚假发票比例、L为企业失信记录数量、A为企业行政处罚记录数量、J为企业经营异常名录信息;a1、a2、a3、a4分别为预设权重。
具体来说,上式中的权重值可以根据实际需求及具体情况进行配置。其中,对于企业的经营异常名录信息J,若企业在该名录中则可以置1,不在则置0。
通过在官方数据库中提取企业的信用信息,并根据信用信息计算目标企业开具虚假发票的可能性,从而可以计算当前发票为虚假发票的概率。为用户鉴别发票的真伪提供有效的数据依据。
基于上述内容,进一步的,在本示例实施方式中,在对文本格式的待检验对象返回查询结果后,上述的方法还可以包括:
步骤S103,在识别所述待检验对象为第二格式时,提取所述待检验对象中第二信息,并对所述第二信息进行校验以生成校验结果。
本示例实施方式中,上述的第二格式可以为图像格式,参考图3所示,具体来说,上述的步骤S103可以包括:
步骤S1031,识别所述第二格式的所述待检验对象并提取所述待检验对象中的第二信息;
步骤S1032,利用基于标注样本训练过的发票信息鉴别模型,对所述待检验对象中的第二信息进行鉴别以确定所述待检验对象中的第二信息是否包括虚假信息。
在用户提交的待检验对象为图片时,可以首先利用OCR技术(光学字符识别)对图片进行识别,从而提取出发票的多项信息。具体来说,上述的第二信息可以包括:企业名称、税号、开票金额、数量、单价、科目、条码、编号、二维码以及印章中任意多项的组合。在获取各项信息后,可以利用预设的发票信息鉴别模型对第二信息进行鉴别,并生成鉴别结果。对于利用光学字符识别技术识别并提取图像中的文字为常规技术,本公开在此不做特殊限定。
举例而言,上述的基于标注样本训练过的发票信息鉴别模型的训练过程可以包括:
步骤S1030-1,识别虚假发票的图像,并提取所述虚假发票的图像中的第二信息;
步骤S1030-2,标记所述虚假发票的图像中的第二信息中的虚假信息,并生成训练样本集;
步骤S1030-3,使用所述训练样本集训练机器学习模型以获取所述发票信息鉴别模型。
在训练模型前,可以采集已有的虚假发票图像,并利用光学字符识别技术识别并提取虚假发票的企业名称、税号、开票金额、数量、单价、科目、条码、编号、二维码以及印章等信息,并对其中的一项或多项虚假、错误信息进行标注,从而获取训练样本集。当然,在本公开的其他示例性实施例中,还可以收集部分已有的正常发票,将正常发票中的正确信息进行标记,同时加入训练样本。然后利用该训练样本集训练该机器学习模型,从而使该模型能够识别发票中的虚假、错误信息,进而实现对发票真伪的鉴别。
当然,在本公开的其他示例性实施例中,还可以收集部分已有的正常发票,将正常发票中的正确信息进行标记,同时加入训练样本。
基于上述内容,在本公开的其他示例性实施例中,在利用发票信息鉴别模型识别虚假信息时,也可以设置不同信息的置信度。例如,在识别发票中的上述第二信息中,有两项或者三项为虚假、错误信息时,便判断该发票为虚假发票。
此外,在本示例性实施例中,上述的发票检验方法还可以包括:
步骤S201,接收黑名单修改请求;其中,所述黑名单修改请求包括目标信息及修改凭证;
骤S202,若所述修改凭证符合预设判断规则则将所述目标信息添加至所述黑名单。
对于上述的开具虚假发票的企业黑名单,用户在被开具虚假发票后,可根据虚假发票的图像及对应的企业信息等凭证信息向服务器端提交更新企业黑名单的请求。服务器端在验证发票信息后,便可以对企业黑名单进行更新,将该企业的信息增加至黑名单中。
综上所述,本示例性实施方式中的上述方法,通过在接收到待检对象后便对其器格式进行识别,从而实现用户对发票的实时识别。另外,通过首先识别待检验对象的格式,并在不同格式时采用不同的发票验证过程,从而保证了发票检验结果的准确性和有效性。此外,本公开实施例所提供的方法,可以分别对图像格式或文本格式的待检验对象分别进行检验。或者,在待检验对象包含文本和图像时,可以同时对文本格式的待检验对象和图像格式的待检验对象进行查询及校验,进而提供更加准确的检验结果。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。另外,也易于理解的是,这些步骤可以是例如在多个模块/进程/线程中同步或异步执行。
进一步的,本示例实施方式中,还提供了一种基于数据分析的发票检验装置40。参考图4中所示,装置40可以包括:识别模块401、第一检验模块402、以及第二检验模块403。其中:
所述识别模块401可以用于接收一检验请求,并识别所述检验请求中待检验对象的格式。
所述第一检验模块402可以用于在识别所述待检验对象为第一格式时,根据所述待检验对象查询预设黑名单并返回查询结果;和/或,
所述第二识别模块403可以用于在识别所述待检验对象为第二格式时,提取所述待检验对象中第二信息,并对所述第二信息进行校验以生成校验结果。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现木公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本公开的示例性实施例中,还提供了一种能够实现上述发票检验方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图5来描述根据本发明的这种实施方式的电子设备600。图5显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤S101,接收一检验请求,并识别所述检验请求中待检验对象的格式;步骤S102,在识别所述待检验对象为第一格式时,根据所述待检验对象查询预设黑名单并返回查询结果;和/或,步骤S103,在识别所述待检验对象为第二格式时,提取所述待检验对象中第二信息,并对所述第二信息进行校验以生成校验结果。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。