掌桥专利:专业的专利平台
掌桥专利
首页

文本分类方法、装置和电子设备

文献发布时间:2023-06-19 10:08:35


文本分类方法、装置和电子设备

技术领域

本公开涉及人工智能技术领域,更具体地,涉及一种文本分类方法、装置和电子设备。

背景技术

随着信息技术的不断发展,人工智能技术越来越普及,智能分类作为人工智能技术的重要组成也越来越受到重视。

在应用智能分类的场景中,需要对文本信息进行分类以便基于分类结果进行业务处理。例如,在记账场景中,需要基于文本信息确定交易的类型,以便将交易金额计入对应的交易类型中,提升用户确定不同的交易类型各自的金额占比的便捷度。记账所依赖的文本信息来自各家银行机构以及第三方交易平台等,行业内并没有统一标准及规范术语,仅通过简单的关键字匹配等方式实现账目分类,命中率较低。为了提升命中率,相关技术可以采用深度学习技术从文本信息中学习到高层属性类别或特征,以发现数据的特征分布表示,提高文本分类的命中率。

在实现本公开构思的过程中,申请人发现相关技术至少存在如下问题:基于深度学习技术的文本分类模型,其构建及调参过程较复杂,模型训练异常消耗资源,并且需要海量训练数据以提升其针对多种场景的命中率。

发明内容

有鉴于此,本公开提供了一种有助于改善模型训练异常消耗资源,并且需要海量训练数据的问题的文本分类方法、装置和电子设备。

本公开的一个方面提供了一种文本分类方法,该方法包括:获取输入文本,输入文本是针对指定场景的,指定场景具有对应的文本结构信息;响应于输入文本,获取与输入文本对应的结构化文本信息,结构化文本信息包括输入文本的关键信息和与文本结构信息对应的文本信息;以及利用文本分类模型处理结构化文本信息,确定输入文本的类别。

本公开的一个方面提供了一种文本分类装置,包括:输入文本获取模块、输入文本响应模块和分类模块。其中,输入文本获取模块用于获取输入文本,输入文本是针对指定场景的,指定场景具有对应的文本结构信息;输入文本响应模块用于响应于输入文本,获取与输入文本对应的结构化文本信息,结构化文本信息包括输入文本的关键信息和与文本结构信息对应的文本信息;以及分类模块用于利用文本分类模型处理结构化文本信息,确定输入文本的类别。

本公开的另一方面提供了一种电子设备,包括一个或多个处理器以及存储装置,其中,存储装置用于存储可执行指令,可执行指令在被处理器执行时,实现如上所述的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,计算机程序包括计算机可执行指令,指令在被执行时用于实现如上所述的方法。

本公开实施例提供的文本分类方法、装置和电子设备,获取了输入文本的关键信息和与针对指定场景的文本结构信息对应的文本信息,由于文本结构信息对应的文本信息可以表征针对指定场景的文本信息的数据特点和共性特征,可以较好地表达针对指定场景的输入文本的语义信息。基于该文本结构信息对应的文本信息结合关键信息进行文本分类时,可以在不降低分类命中率的基础上,有效降低模型训练消耗的计算资源、时间资源等。此外,由于针对指定场景的训练数据的质量较高,有助于降低所需训练数据的数据量。

本公开实施例提供的文本分类方法、装置和电子设备,文本分类模型是基于在大语义库下预训练的来自变换器的双向编码器表征量(Bidirectional EncoderRepresentations from Transformers,简称BERT)模型(也称为预训练模型)基础上,依据测试数据进行微调(fine-tuning),使得文本分类模型可以更快地收敛,同样有助于降低模型训练消耗的计算资源、时间资源等。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的文本分类方法、装置和电子设备的应用场景;

图2示意性示出了根据本公开另一实施例的文本分类方法、装置和电子设备的应用场景;

图3示意性示出了根据本公开实施例的可以应用文本分类方法、装置和电子设备的示例性系统架构;

图4示意性示出了根据本公开实施例的文本分类方法的流程图;

图5示意性示出了根据本公开实施例的账目信息示意图;

图6示意性示出了根据本公开实施例的交互界面的示意图;

图7示意性示出了根据本公开另一实施例的交互界面的示意图;

图8示意性示出了根据本公开另一实施例的交互界面的示意图;

图9示意性示出了根据本公开实施例的分类结果的示意图;

图10示意性示出了根据本公开实施例的文本分类装置的方框图;

图11示意性示出了根据本公开实施例的文本分类装置的逻辑图;以及

图12示意性示出了根据本公开实施例的电子设备的方框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。一个或多个实施例在没有这些具体细节的情况下也可以被实施。在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。

为了便于理解本公开的技术方案,首先对自然语言处理模型进行说明。自然语言处理领域近几年来最令人激动的发展就是预训练语言模型,包括基于循环神经网络(Rerrent Neural Network,简称RNN)的语言向量模型(Embeddings from LanguageModel,简称ELMo)、通用语言模型微调(Universal Language Model Fine-tuning forText Classification,简称ULMFiT)、基于机器翻译(Transformer)模型的OpenAI(Generative Pre-Training,简称GPT)、Google BERT以及进行参数共享的轻量级BERT模型(简称ALBERT模型)等。预训练模型的成功实践经验使得可以从海量的无标注的文本中学习到潜在的语义信息,无需为下游的神经语言程序学(Neuro-linguistic Programming,简称NLP)任务标注大量的训练语料。预训练语言模型的出现也宣告了NLP领域研究的新范式,即通过大量无监督语料进行语言模型预训练,再使用少量的标注领域语料进行微调来完成不同的下游NLP任务,例如:序列标注、文本分类等。同样的也可以利用预训练模型产生的隐藏层向量直接进行无监督的训练,例如:文本分类等。

近期Google AI团队提出的预训练模型BERT,刷新了自然语言理解任务的榜单,被誉为近年来自然语言处理领域最重大的进展之一。其网络结构是利用Transformer构造了一个12层的双向编码(Encoder)网络。

BERT等预训练模型训练时所需的计算量是非常巨大的。Google在BERT论文中指出其训练BERT large(相对于BERT base模型具有更多的模型参数)模型在16台服务器上使用了64张TPU计算卡进行了100万次迭代。这样的计算量对于一般公司利用GPU进行训练所需的计算资源提出了较高的要求。同时,BERT等预训练模型因为有较深的网络结构和庞大的参数规模,因此在进行训练是需要消耗大量的资源,并且在执行预测等任务时面临着挑战,一般难以满足上线的时延要求。基于此,本公开实施例提供了一种文本分类方法,以此来降低模型训练所消耗的资源,并且有助于获取更好的效果和更快的推理速度。

本公开的实施例提供了一种文本分类方法、装置和电子设备。该文本分类方法包括结构化文本获取过程和文本分类过程。在结构化文本获取过程中,首先,获取输入文本,输入文本是针对指定场景的,指定场景具有对应的文本结构信息,然后,响应于输入文本,获取与输入文本对应的结构化文本信息,结构化文本信息包括输入文本的关键信息和与文本结构信息对应的文本信息。在完成结构化文本获取过程之后,进入文本分类过程,利用文本分类模型处理结构化文本信息,确定输入文本的类别。

图1示意性示出了根据本公开实施例的文本分类方法、装置和电子设备的应用场景。

如图1所示,如今人们的资产管理观念越来越强,市面上涌现了多款记账类型的产品,比如随手记、鲨鱼记账等。这些记账产品均为用户提供了手工记账、批量记账的功能,允许用户手动修改账目类型,账户类型等参数。

记账是一个比较频繁的用户行为,而目前很多记账产品都需要用户大量的手动操作,自动化水平较低,导致用户很难坚持记账。目前的记账类产品主要有三类:第一类,无法获取用户的账务信息,只提供了手动记账;第二类,根据自身平台获取了用户的账单信息,但未对用户的账单信息进行分类,还需要用户手动修改账目参数;第三类,仅通过简单的关键字匹配实现账目分类,命中率较低,大部分账目还是需要用户手动修改。为了至少部分解决上述问题,本公开实施例提供了一种可以在较少资源消耗的前提下准确地对输入文本进行分类的方案。

图1中自动对账目信息进行分类,以确定各账目的类别,进而可以对各账目进行归类,以便于用户查看各类别的使用金额、在中使用金额中的占比等信息,帮助用户优化资金支出占比。此外,用户还可以进一步查询给类别资金支出的明细。需要说明的是,图1中所示的类别仅为示例性举例,还可以包括更多类别或更少类别。

图2示意性示出了根据本公开另一实施例的文本分类方法、装置和电子设备的应用场景。

如图2所示,例如,用户可以在手机等终端设备上安装应用(APP)或软件程序等以实现文本分类或记账功能。其中,文本分类过程可以是在终端设备本地实现(如通过本地软件程序实现)或者在云端实现(如本地APP与远程服务器端进行交互以确定文本所属的类别)。例如,用户可以在手机、笔记本电脑等终端设备上安装即时通讯程序,可以通过公众号小程序等获取文本的分类。例如,用户可以在手机、台式电脑等终端设备上安装网页浏览器等程序,以便于通过登录网站的方式来获取文本的分类。

图3示意性示出了根据本公开实施例的可以应用文本分类方法、装置和电子设备的示例性系统架构。需要注意的是,图3所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。需要说明的是,本公开实施例提供的文本分类方法、装置、系统和电子设备可用于人工智能领域在文本分类相关方面,也可用于除大数据领域之外的多种领域,如金融领域,本公开实施例提供的文本分类方法、装置、系统和电子设备的应用领域不做限定。

如图3所示,根据该实施例的系统架构300可以包括终端设备301、302、303,网络304和服务器305。网络304可以包括多个网关、集线器、网线等,用以在终端设备301、302、303和服务器305之间提供通信链路的介质。网络304可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备301、302、303通过网络304与其他终端设备和服务器305进行交互,以接收或发送信息等,如发送文本类别请求、接收处理结果等。终端设备301、302、303可以安装有各种通讯客户端应用,例如文本处理应用、语言处理应用、银行类应用、网页浏览器应用、搜索类应用、办公类应用、即时通信工具、邮箱客户端、社交平台软件等应用(仅为示例)。

终端设备301、302、303包括但不限于智能手机、虚拟现实设备、增强现实设备、平板电脑、膝上型便携计算机等等。

服务器305可以接收请求,例如接收来自终端设备301、302、303针对指定信息的分类请求等,服务器305可以从其它服务器(如信息平台、数据库服务器、云数据库等)或者自身获取所需的信息(如模型的拓扑结构、模型初始参数、训练数据、语料库、语音识别结果、图像识别结果等),进而基于这些获取的信息来构建、训练模型,以便于基于确定的模型向外提供如预测服务等。例如,服务器305可以为后台管理服务器、服务器集群等。后台管理服务器可以对接收到的服务请求、信息请求、模型更新指令等进行分析处理,并将处理结果(如请求的信息、处理的结果等)反馈给终端设备。

需要说明的是,本公开实施例所提供的文本分类方法一般可以由终端设备301、302、303或者服务器305执行。本公开实施例所提供的文本分类方法也可以由不同于服务器305且能够与终端设备301、302、303和/或服务器305通信的服务器或服务器集群执行。应该理解,终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图4示意性示出了根据本公开实施例的文本分类方法的流程图。

如图4所示,该文本分类方法包括操作S402~操作S406。

在操作S402,获取输入文本,输入文本是针对指定场景的,指定场景具有对应的文本结构信息。

在本实施例中,指定场景包括但不限于:记账、资源分配、信息预测等多种涉及文本分类的场景。为了便于理解本公开的实施例,以下以记账场景为例进行示例性说明。

其中,获取输入文本可以是应用(APP)等自动抓取的消息(如发生交易事件的应用推送的交易消息,或者短信等推送的交易消息等),也可以是响应于用户的操作指令抓取的消息。此外,输入文本可以是由用户输入的文本信息,输入文本可以是对用户输入的语音信息进行语音识别后得到的文本信息,输入文本可以是对用户输入的图片信息进行图像识别后得到的文本信息,在此不做限定。

图5示意性示出了根据本公开实施例的账目信息示意图。

如图5所示,账目信息包括:用户在2020-xx-xx 06:21:11时间点通过财付通进行了一笔支付,交易金额是200元等信息,这样可以对账目信息进行过滤,得到输入文本信息。例如,通过正则表达式匹配的方式去除长文本中的特殊字符及乱码。账目信息可以是银行卡的消费信息、其他购物平台的账单信息等数据形式。

在一个实施例中,文本结构信息可以是基于用户输入信息确定的,或者文本结构信息是基于预设规则从针对指定场景的多个输入文本中确定的。例如,用户可以基于经验设置文本结构信息,如对于记账场景,文本结构信息可以包括但不限于:“卡号”、“支出日期”、“收入日期”、“支出金额”、“收入金额”等。

在操作S404,响应于输入文本,获取与输入文本对应的结构化文本信息,结构化文本信息包括输入文本的关键信息和与文本结构信息对应的文本信息。

在本实施例中,可以在本地获取与输入文本对应的结构化文本信息。例如,可以在本地对输入文本进行处理,以获取结构化文本信息。此外,也可以在云端等远程获取与输入文本对应的结构化文本信息。例如,可以将输入文本发送给服务器端,由服务器端对输入文本进行处理,以获取结构化文本信息。

在一个实施例中,可以先确定文本结构信息以便确定与文本结构信息对应的文本信息。例如,指定场景与文本结构信息之间存在映射关系。相应地,文本结构信息通过如下方式确定:首先,获取场景信息,然后,基于场景信息和映射关系确定针对场景信息的文本结构信息。如由用户选取场景,然后由终端设备或服务器端基于场景和映射关系确定文本结构信息。

在一个实施例中,输入文本包括业务摘要文本,文本结构信息包括至少一个属性信息。

相应地,结构化文本信息通过如下方式确定:首先,基于正则表达式匹配的方式从输入文本中获取与属性信息相匹配的文本属性信息以及获取输入文本的关键信息。然后,拼接文本属性信息和输入文本的关键信息,获得结构化文本信息。

例如,指定场景是记账场景。文本结构信息包括:账号关联信息、交易类型、交易日期、交易金额、交易渠道中至少一种。输入文本的关键信息包括:业务摘要文本的标题、主题、副标题、业务标签或者备注信息中至少一种。如文本结构信息“卡号”、“支出/收入日期”、“支出/收入金额”等。如关键信息包括“摘要名”、业务标签“类别”等。

在操作S406,利用文本分类模型处理结构化文本信息,确定输入文本的类别。

在本实施例中,为了保证分类结果的准确度,并且减少需要进行人工标注的训练数据的数量,文本分类模型可以采用预训练模型,如BERT模型等。

在一个实施例中,利用文本分类模型处理结构化文本信息,确定输入文本的类别可以包括如下操作。

首先,获取结构化文本信息中各词的词向量,以确定结构化文本信息的指定维度向量。例如,采用Word2Vector方法,将词段中每个单词转化为维度为k的向量,并依据训练集中最长文本对词段长度进行补齐。例如,“尾号/6001/卡/快捷/支付/支出/上海/拉扎斯/200元”转化为一个9*k维向量之后补全至10*k维。

然后,基于预训练模型处理指定维度向量以确定结构化文本信息的类型。

例如,可以采用上下文敏感的预训练文本语义提取模型提取输入文本的语义信息,以便确定结构化文本信息的类型。如采用BERT模型来处理伴随文本中的下列上下文蕴含问题(contextual entailment question,简称CEQ)。这样可以有效减少模型训练对人工标注工作的依赖。

BERT模型的训练过程中包含了基于上下文的句子间的蕴含(entailment)关系的相关任务。因此,将上述CEQ送入BERT等深度网络模型后,其高层输出包含了对于蕴含关系的判断。

例如,可以将一对前提和假设句子分为三类:矛盾(contradiction)、中立(neutral)和蕴含(entailment)。例如,“一场有多名男子参加的足球比赛”意味着“有些男子正在参加一项运动”,而与“没有男子在图像中移动”相矛盾。上述CEQ的目标为预测前提和假设之间的关系,其既可以是蕴含关系也可以是矛盾关系。如果判断为高度蕴含关系,则表示未知类别与标题的语义一致。

此外,上述蕴含关系的判断可以引入参数进行控制,例如,在BERT模型中,我们可以将高层神经网络层输出的特征向量进行平均或最大池化,得到单一的特征向量,并通过额外的参数化网络层(如全连接层)来获得最终的蕴含关系的概率。

特别地,可以将CEQ的范围放宽到[0,1]之间,通过将其转换为置信度调制的二进制分类来预测前提和假设之间的关系。应当认识到,上述BERT模型仅仅是一个示例,本公开还可以采用其他合适的文本语义提取模型,这里不做限制。

在一个实施例中,还可以进一步基于文本分类结果执行相应的业务操作,如记账、资源分配等。例如,可以基于上述文本分类结果进行所需的业务操作,如在利用文本分类模型处理结构化文本信息以确定输入文本的类别之后,上述方法还可以包括如下操作:基于与文本结构信息对应的文本信息中至少部分信息和输入文本的类别更新记账信息。

图6示意性示出了根据本公开实施例的交互界面的示意图。

如图6所示,用户可以通过手动输入或用户确认应用自动录入记账信息的方式,使得终端设备确定输入文本。然后,应用可以基于用户确定的输入文本进行自动记账,如先对输入文本进行分类,然后基于输入文本的类别进行记账。其中,用户可以对记账信息、类别、金额、交易类型等进行手动修改。

图7示意性示出了根据本公开另一实施例的交互界面的示意图。

如图7所示,为了满足用户在不同场景下的使用需求,用户也可以通过语音交互的方式输入文本信息。例如,可以将用户输入的语音信息发送给远程的语音识别平台以得到与语音信息对应的文本信息,然后对文本信息进行处理以完成自动记账。

图8示意性示出了根据本公开另一实施例的交互界面的示意图。

如图8所示,当用户在实体店进行消费,如通过现金的方式进行支付时,应用可能无法得到电子账目信息。为了应对该场景,用户可以使用应用的拍摄功能对纸质的交易小票进行拍摄,然后,通过图像识别或文字识别的方式从图像中提取出输入文本,然后对文本信息进行处理以完成自动记账。

图9示意性示出了根据本公开实施例的分类结果的示意图。

如图9所示,图9的上半部分是针对输出分类结果的程序代码,下半部分包括输入文本、标签(Ground Truth)和对应的分类结果(Predict Result)及置信度(Confidence),可以看到分类结果:交通与标签信息和置信度的一致性较好。

以下对文本分类模型的训练过程进行示例性说明。

在一个实施例中,可以通过二次微调的方式对文本分类模型进行训练。例如,文本分类模型通过如下方式进行训练。

首先,基于针对指定场景的第一训练数据集合对文本分类模型进行第一次训练,得到模型参数集合。

然后,基于针对指定场景的第二训练数据集合对文本分类模型进行第二次训练,以微调模型参数集合。其中,第二训练数据集合可以是测试数据集合。

在一个实施例中,基于针对指定场景的第一训练数据集合对文本分类模型进行第一次训练,得到模型参数集合可以包括如下操作。

重复执行如下操作直至达到预设训练轮数,其中,针对每一个训练轮:首先,从第一训练数据集合中获取指定个数的训练数据,然后,将指定个数的训练数据以及指定个数的训练数据各自的标签信息输入文本分类模型,通过随机梯度下降算法更新文本分类模型的模型参数。

例如,结构化文本信息的各词的词向量及其对应的标签作为模型的输入,并每次从中抽取n个样本构建批(batch)。然后将batch中各标签转化为独热(one-hot)编码,如“2”转化为“0100000000000”。在进行模型训练之前,可以先配置预训练模型的超参数,例如:模型的学习率、迭代轮数等。接着,可以利用损失函数,如二分类交叉熵损失函数(BinaryCross Entropy Loss,简称BCE Loss),对第一训练数据集合行监督训练,并以学习率为lr的随机梯度下降(Stochastic Gradient Descent,简称SGD)算法更新模型参数,训练过程持续t个周期(epoch)。其中,n和t是大于或等于1的正整数。一个周期对应于至少一个批。

此外,在模型进行前向传播的时候还可以加入层Dropout,以便模型可以学习到更加鲁棒性的参数,增强模型的泛化能力。例如:原始模型的隐藏层为1/2/3/4/,加入层Dropout策略,假如失活比例(dropout rate)是0.5,每次前向传播时随机选择一半隐藏层进行计算,如隐藏层2/4。

在一个实施例中,为了减少针对训练数据的人工标注工作,文本结构信息包括至少一个属性信息,文本分类模型包括预训练模型。第一训练数据集合包括具有标签信息的历史业务数据集合以及扩展业务数据集合。

相应地,扩展业务数据集合通过如下方式确定:首先,利用随机数生成与至少一个属性信息对应的随机文本属性信息。然后,基于随机文本属性信息以及历史业务数据集合中历史业务数据的关键信息和标签信息生成扩展业务数据,以获取扩展业务数据集合。

在一个实施例中,基于针对指定场景的第二训练数据集合对文本分类模型进行第二次训练,以微调模型参数集合可以包括如下操作。

首先,基于至少两个测试数据集合分别对文本分类模型进行调试,以获取至少两个微调后的模型参数集合。

然后,从至少两个微调后的模型参数集合中选取最优的微调后的模型参数集合,其中,与最优的微调后的模型参数集合对应的文本分类模型的测试准确度最高。

本公开实施例提供的文本分类的方法,在进行文本分类模型训练的过程中,归纳总结针对指定场景中常见的数据特点,抽象出分类文本的共性特征,辅助深度学习训练样本的构建。得益于构建特征,可以快速通过随机梯度下降使网络参数收敛,以保证较快的训练速度。此外,文本分类模型是基于在大语义库下预训练的BERT模型基础上,依据第二训练数据集合进行微调(fine-tuning),因此可以更快地收敛。

本公开的另一方面提供了一种文本分类装置。

图10示意性示出了根据本公开实施例的文本分类装置的方框图。

如图10所示,该文本分类装置1000包括:输入文本获取模块1010、输入文本响应模块1020和分类模块1030。

其中,输入文本获取模块1010用于获取输入文本,输入文本是针对指定场景的,指定场景具有对应的文本结构信息。

输入文本响应模块1020用于响应于输入文本,获取与输入文本对应的结构化文本信息,结构化文本信息包括输入文本的关键信息和与文本结构信息对应的文本信息。

分类模块1030用于利用文本分类模型处理结构化文本信息,确定输入文本的类别。

图11示意性示出了根据本公开实施例的文本分类装置的逻辑图。

如图11所示,输入文本响应模块1020具体可以包括生产数据处理模块和长文本分词模块。分类模块1030具体可以包括词向量构建模块和业务摘要测试模块。

此外,文本分类装置1000还可以进一步包括以下至少一个模块:数据预处理模块、训练样本生成模块、文本分类器训练模块、评估样本生成模块和模型评估模块。

在一个实施例中,文本分类装置1000可以包括数据预处理模块、训练样本生成模块、评估样本生成模块、生产数据处理模块、长文本分词模块、词向量构建模块、文本分类器训练模块、模型评估模块和业务摘要测试模块。

例如,通过数据预处理模块收集输入文本,如已知业务摘要内容及其类别信息、未知业务摘要内容,作为样本生成的输入。

通过训练样本生成模块,依据已知业务摘要内容结合实际账目中的用户信息,构建长文本,并依据其类别信息构建样本的类别标签。

通过评估样本生成模块依据未知业务摘要结合实际账目中的用户信息,模拟生成需要进行智能分类的长文本。

生产数据处理模块依据真实生产中得到的账务信息,生成与训练测试样本具有相同结构的长文本。

长文本分词模块对训练长文本及测试长文本进行分词。

词向量构建模块将分词后的文本段转化为固定维度的词向量用以抽象文本的语义特征。

文本分类器训练模块旨在训练文本分类模型,该模块依据训练文本的词向量进行语义信息融合及分类,并以BCE Loss进行监督。

模型评估模块利用测试集对训练好的分类模型进行调试,以得到隐层参数及学习率,并最终训练得到调优模型。

业务摘要测试模块通过训练并调试好的文本分类模型,预测生产中的真实账务信息并对其进行分类实现智能记账。

以下分别对各模块进行示例性说明。

数据预处理模收集已知业务摘要内容及其类别信息、未知业务摘要内容。例如,已知业务摘要“上海拉扎斯”对应智能记账类别“餐饮”。随后,对于获取的摘要类别信息进行量化,将文本类别转化为对应数字标签,例如:将“餐饮”转化为“2”。具体可以共兼容12种智能分类类别包括,日用品、餐饮、交通、学习、水电费、娱乐、通讯、购物、医疗、礼物、薪资、还款。需要说明的是,具体的分类类别数可以根据用户需求进行设定,如可以包括更多类别或更少类别,在此不做限定。

训练样本生成模块以数据预处理模块收集的已知业务摘要内容,结合实际账目信息中包含的消费信息结构,构建训练长文本,即利用随机数生成信使文本所对应的“卡号”、“支出/收入日期”、“支出/收入金额”,结合业务摘要内容“摘要名”、业务标签“类别”,随机构建10000个长文本及其标签作为训练输入。例如,“您尾号62002013910601卡10月28日22:12快捷支出(上海拉扎斯)200元”,对应标签为“2”(即“餐饮”)。

测试样本生成模块以数据预处理模块收集的未知业务摘要内容,结合实际账目信息中包含的消费信息构建评估长文本,即利用随机数生成信使文本所对应的“卡号”、“支出/收入日期”、“支出/收入金额”,结合业务摘要内容“摘要名”、业务标签“类别”,随机构建10000个长文本及其标签作为训练输入。例如,“您尾号6001卡10月28日22:12快捷支出(上海拉扎斯有限责任公司)200元”,对应标签为“2”(即“餐饮”)。

生产数据处理模块该模块利用生产中真实账目信息中“交易卡号”、“交易时间”、“交易场所”及“交易金额”构建与训练测试样本具有相同结构的长文本。例如,附图7所示真实账目可转换为长文本“您尾号7452卡10月28日22:12快捷支出(财付通-京东商城平台商户)79元”。

长文本模块对训练及测试长文本进行分词。输入文本首先通过正则表达式匹配的方式去除长文本中的特殊字符及乱码,之后利用终止符及中文分词算法对长文本进行分词,得到长文本的词段,例如,“您尾号6001卡10月28日22:12快捷支出(上海拉扎斯)200元”将转化为“尾号/6001/卡/快捷/支付/支出/上海/拉扎斯/200元”。

词向量构建模块将分词后的文本段转化为固定维度的词向量用以抽象文本的语义特征。使长文本分词模块的得到的长文本的词段作为输入,采用Word2Vector方法,将词段中每个单词转化为维度为k的向量,并依据训练集中最长文本对词段长度进行补齐,例如“尾号/6001/卡/快捷/支付/支出/上海/拉扎斯/200元”,首先转化为一个9*k维向量之后补全至10*k维。

文本分类器训练模块,词向量构建模块中各训练集中长文本转化好的词向量及其对应的标签作为输入,并每次从中抽取n个样本构建batch。之后,将batch中各标签转化为one-hot编码,如“2”转化为“0100000000000”。随后,我们利用BCE Loss对训练集进行监督训练,并以学习率为lr的随机梯度下降(Stochastic Gradient Descent,简称SGD)算法更新模型参数,训练过程持续t个epoch。

模型评估模块利用测试集对采用不同超参数训练好的分类模型进行调试,并选取分类准确率最高的模型作为最终训练得到调优模型。调优参数包括词向量维度k,训练epoch数n,训练batch数b,学习率lr。依据本数据得到的调优模型参数如下,词向量维度200,epoch数100,batch数1000,学习率0.01。

业务摘要测试模块通过训练并调试好的文本分类模型,预测生产中的真实账务信息并进行分类实现智能记账。利用生产数据处理模块构建的长文本输入至长文本分词模块及词向量构建模块。随后将得到词向量之后输入至模型评估模块的得到的调优模型进行测试,得到最终长文本的智能分类类别,并转化为对应文本,作为最终输出。

本公开实施例提供的文本分类方法,基于用户的账务信息,采用自然语言处理算法,实现用户行为预测完成自动记账的方法,有助于改善现有记账产品自动化程度低,账目分类命中率低的缺点。

需要说明的是,装置部分和系统部分的实施例中各模块等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再一一赘述。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,输入文本获取模块1010、输入文本响应模块1020和分类模块1030中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,输入文本获取模块1010、输入文本响应模块1020和分类模块1030中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,输入文本获取模块1010、输入文本响应模块1020和分类模块1030中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

本公开的另一方面提供了一种电子设备。

图12示意性示出了根据本公开实施例的电子设备的方框图。图12示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图12所示,根据本公开实施例的电子设备1200包括处理器1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。处理器1201例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1201还可以包括用于缓存用途的板载存储器。处理器1201可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 1203中,存储有电子设备1200操作所需的各种程序和数据。处理器1201、ROM 1202以及RAM 1203通过总线1204彼此通讯连接。处理器1201通过执行ROM 1202和/或RAM 1203中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM 1202和RAM 1203以外的一个或多个存储器中。处理器1201也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,电子设备1200还可以包括输入/输出(I/O)接口1205,输入/输出(I/O)接口1205也连接至总线1204。电子设备1200还可以包括连接至I/O接口1205的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被处理器1201执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1202和/或RAM 1203和/或ROM 1202和RAM1203以外的一个或多个存储器。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

相关技术
  • 基于文本摘要的文本分类方法、装置、电子设备及介质
  • 一种短文本分类方法、装置及电子设备
技术分类

06120112437154