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

文档识别方法、工程词库构建方法、电子设备及存储介质

文献发布时间:2023-06-19 13:26:15


文档识别方法、工程词库构建方法、电子设备及存储介质

技术领域

本申请实施例涉及通信技术领域,尤其涉及一种文档识别方法、工程词库构建方法、电子设备及存储介质。

背景技术

目前,建筑工程领域是数据量最大、业务规模最大的大数据行业,但同样是当前各行业中最没有数据的行业。建筑工程项目往往具有投资额大、建设周期长、不确定因素多、风险大、参与人员多等特征。

目前对建筑行业的工程文档的识别通常通过光学字符识别(Optical CharacterRecognition,OCR)实现。而工程文档通常专业性较强,且专业词汇较多,因此,通过上述OCR方式对工程文档进行识别,准确率较低。

发明内容

本申请实施例提供了一种文档识别方法、工程词库构建方法、电子设备及存储介质,以提供一种对工程文档进行识别的方式,由此可以提高文档识别的准确率。

第一方面,本申请实施例提供了一种文档识别方法,包括:

获取待识别图像;

对所述待识别图像进行文字识别;

基于预设工程词库,对识别获得的文字进行分词;

基于所述预设工程词库,对分词获得的词组进行替换。

其中一种可能的实现方式中,获取待识别图像之后,还包括:

对所述待识别图像进行预处理。

其中一种可能的实现方式中,预处理包括去印章、去水印或图像矫正中的一种或多种。

其中一种可能的实现方式中,基于预设工程词库,对识别获得的文字进行分词包括:

基于预设工程词库,对所述待识别图像中的每条语句的文字进行分词,得到与所述语句对应的多个候选词组集合;其中,每个所述候选词组集合包括多个词组,每个所述候选词组集合对应一个置信度;

基于所述置信度,在与每条语句对应的多个所述候选词组集合中确定与所述语句对应的词组集合。

其中一种可能的实现方式中,基于所述预设工程词库,对分词获得的词组进行替换包括:

计算每个所述词组集合中的每个词组的上下文语义向量;

基于每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量,对分词获得的词组进行替换。

其中一种可能的实现方式中,基于每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量,对分词获得的词组进行替换包括:

计算每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量之间的相似度,基于所述相似度对分词获得的词组进行替换。

其中一种可能的实现方式中,基于每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量,对分词获得的词组进行替换包括:

计算每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量之间的相似度以及编辑距离,基于所述相似度及所述编辑距离对分词获得的词组进行替换。

其中一种可能的实现方式中,计算每个所述词组集合中的每个词组的上下文语义向量包括:

获取每个所述词组集合的置信度;

基于所述置信度确定第一词组集合,其中,所述第一词组集合包括多个置信度低于预设第一阈值的词组集合;

计算所述第一词组集合中每个所述词组集合的上下文语义向量。

本申请实施例还提供了一种工程词库构建方法,包括:

获取多个工程文档;

对每个所述工程文档进行识别,并对识别获得的文字进行分词;

对首个工程文档中的由分词获得的词组进行筛选,得到第一工程词组集合,其中,所述第一工程词组集合包括一个或多个工程词组,所述工程词组用于构建工程词库;

基于所述第一工程词组集合,对剩余工程文档中的由分词获得的词组进行筛选,获得一个或多个工程词组。

其中一种可能的实现方式中,还包括:

对每个所述工程文档进行标注,其中,所述标注用于标识文档类别、文档名称及正文位置。

其中一种可能的实现方式中,对首个工程文档中的由分词获得的词组进行筛选包括:

计算每个所述词组的权重;

基于所述权重,在所述词组中进行筛选。

其中一种可能的实现方式中,还包括:

基于所述词组所处的标注位置对所述权重进行更新,其中,所述词组所处的标注位置包括文档类别、文档名称或正文中的一个或多个。

其中一种可能的实现方式中,还包括:

基于剩余工程文档中的词组筛选获得的工程词组,对所述第一工程词组集合进行更新。

其中一种可能的实现方式中,基于所述第一工程词组集合,对剩余工程文档中的由分词获得的词组进行筛选,获得一个或多个工程词组包括:

计算所述第一工程词组集合中的词组的语义向量,以及剩余工程文档中的由分词获得的词组的上下文语义向量;

基于所述第一工程词组集合中的词组的语义向量与剩余工程文档中的由分词获得的词组的上下文语义向量之间的相似度,对剩余工程文档中的由分词获得的词组进行筛选,获得一个或多个工程词组。

第二方面,本申请实施例提供一种电子设备,包括:

存储器,上述存储器用于存储计算机程序代码,上述计算机程序代码包括指令,当上述电子设备从上述存储器中读取上述指令,以使得上述电子设备执行以下步骤:

获取待识别图像;

对所述待识别图像进行文字识别;

基于预设工程词库,对识别获得的文字进行分词;

基于所述预设工程词库,对分词获得的词组进行替换。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行的步骤之后,还执行以下步骤:

对所述待识别图像进行预处理。

其中一种可能的实现方式中,预处理包括去印章、去水印或图像矫正中的一种或多种。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行基于预设工程词库,对识别获得的文字进行分词的步骤包括:

基于预设工程词库,对所述待识别图像中的每条语句的文字进行分词,得到与所述语句对应的多个候选词组集合;其中,每个所述候选词组集合包括多个词组,每个所述候选词组集合对应一个置信度;

基于所述置信度,在与每条语句对应的多个所述候选词组集合中确定与所述语句对应的词组集合。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述预设工程词库,对分词获得的词组进行替换的步骤包括:

计算每个所述词组集合中的每个词组的上下文语义向量;

基于每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量,对分词获得的词组进行替换。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行基于每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量,对分词获得的词组进行替换的步骤包括:

计算每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量之间的相似度,基于所述相似度对分词获得的词组进行替换。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行基于每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量,对分词获得的词组进行替换的步骤包括:

计算每个所述词组的上下文语义向量及所述预设工程词库中的词组的语义向量之间的相似度以及编辑距离,基于所述相似度及所述编辑距离对分词获得的词组进行替换。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行计算每个所述词组集合中的每个词组的上下文语义向量的步骤包括:

获取每个所述词组集合的置信度;

基于所述置信度确定第一词组集合,其中,所述第一词组集合包括多个置信度低于预设第一阈值的词组集合;

计算所述第一词组集合中每个所述词组集合的上下文语义向量。

本申请实施例还提供一种电子设备,包括:

存储器,上述存储器用于存储计算机程序代码,上述计算机程序代码包括指令,当上述电子设备从上述存储器中读取上述指令,以使得上述电子设备执行以下步骤:

获取多个工程文档;

对每个所述工程文档进行识别,并对识别获得的文字进行分词;

对首个工程文档中的由分词获得的词组进行筛选,得到第一工程词组集合,其中,所述第一工程词组集合包括一个或多个工程词组,所述工程词组用于构建工程词库;

基于所述第一工程词组集合,对剩余工程文档中的由分词获得的词组进行筛选,获得一个或多个工程词组。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备还执行以下步骤:

对每个所述工程文档进行标注,其中,所述标注用于标识文档类别、文档名称及正文位置。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行对首个工程文档中的由分词获得的词组进行筛选的步骤包括:

计算每个所述词组的权重;

基于所述权重,在所述词组中进行筛选。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备还执行以下步骤:

基于所述词组所处的标注位置对所述权重进行更新,其中,所述词组所处的标注位置包括文档类别、文档名称或正文中的一个或多个。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备还执行以下步骤:

基于剩余工程文档中的词组筛选获得的工程词组,对所述第一工程词组集合进行更新。

其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述第一工程词组集合,对剩余工程文档中的由分词获得的词组进行筛选,获得一个或多个工程词组的步骤包括:

计算所述第一工程词组集合中的词组的语义向量,以及剩余工程文档中的由分词获得的词组的上下文语义向量;

基于所述第一工程词组集合中的词组的语义向量与剩余工程文档中的由分词获得的词组的上下文语义向量之间的相似度,对剩余工程文档中的由分词获得的词组进行筛选,获得一个或多个工程词组。

第三方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。

第四方面,本申请实施例提供一种计算机程序,当上述计算机程序被计算机执行时,用于执行第一方面所述的方法。

在一种可能的设计中,第四方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。

附图说明

图1为本申请实施例提供的文档识别方法的流程示意图;

图2为本申请实施例提供的图像矫正效果示意图;

图3为本申请实施例提供的工程词库构建方法的流程示意图;

图4为本申请实施例提供的电子设备的硬件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

目前,建筑工程领域是数据量最大、业务规模最大的大数据行业,但同样是当前各行业中最没有数据的行业。建筑工程项目往往具有投资额大、建设周期长、不确定因素多、风险大、参与人员多等特征。

目前对建筑行业的工程文档的识别通常通过光学字符识别(Optical CharacterRecognition,OCR)实现。而工程文档通常专业性较强,且专业词汇较多,因此,通过上述OCR方式对工程文档进行识别,准确率较低。

基于上述问题,本申请实施例提出了一种文档识别方法,使用OCR技术并结合工程领域词库实现对工程文档的识别,由此可以提高工程文档的识别的准确率。

现结合图1和图2对本申请实施例提供的文档识别方法进行说明。

如图1所示为本申请实施例提供的文档识别方法一个实施例的流程示意图,包括:

步骤101,获取待识别图像,对该待识别文档进行预处理,得到预处理图像。

具体地,上述待识别图像可以是工程文档纸件经过扫描后获得的图像,也可以是对工程文档纸件经过拍照后获得的图像,本申请实施例对上述待识别图像的获取的方式不做特殊限定。

上述预处理可以包括去印章、去水印以及图像矫正等处理。

在具体实现时,上述去印章的方式可以通过利用印章的颜色(例如,通常印章的颜色为红色或蓝色)特征以及印章的形状特征(例如,通常印章的形状为圆形或方形),对上述待识别图像中的印章进行定位,当对印章进行定位后,可以获得与上述印章对应的区域,并可以去除在上述印章区域内的像素,由此可以实现去印章的效果,进而可以有利于对整个待识别图像的识别,避免印章对识别带来的干扰。

此外,上述去水印的方式可以是根据水印图片定位上述待识别图像中的水印内容,并可以去除上述待识别图像中与水印图片对应的像素,由此可以实现去水印的效果,进而可以有利于对整个待识别图像的识别,避免水印对识别带来的干扰。

进一步地,由于上述待识别图像中的文字内容可能发生倾斜,示例性的,由于在对工程文档纸件进行拍照或者扫描时,上述工程文档纸件摆放位置不正,会导致拍照或者扫描获得的电子文档中的文字内容发生倾斜,由此会导致后续对待识别图像中的文字的识别带来影响,进而影响待识别图像的内容识别的准确度。因此,还可以对上述待识别图像进行图像矫正,上述图像矫正可以是对上述待识别图像中的文字的方向(例如,该方向可以包括行方向及列方向)进行矫正,其中,上述图像矫正可以是通过边缘投影法对上述待识别图像进行矫正。图2为图像矫正的示意图,如图2所示,页面200为待识别图像进行图像矫正前的图像,参考页面200,页面200中的文字的行方向在页面200中不是水平方向,页面200中的文字的列方向在页面200中也不是垂直方向,由此会影响到对文字的识别。当通过图像矫正后,可以得到页面201,参考页面201,页面201中的文字方向得到矫正,页面201中的文字的行方向在页面200中呈水平方向,页面201中的文字的列方向在页面201中层垂直方向。由此可以避免文字的倾斜给文字识别带来的影响。

步骤102,对预处理图像进行识别。

具体地,上述识别的方式可以通过OCR技术。可以理解的是,上述OCR为现有的文字识别技术,可以参考相关文献或专利,在此不再赘述。通过OCR技术对上述预处理图像进行识别,可以得到识别结果,其中,该识别结果可以包括对上述预处理图像进行识别得到的文字。需要说明的是,上述识别结果还可以包括文字的位置、文字的字体及文字的大小等信息。

步骤103,通过预设工程词库,对上述文字进行分词,得到分词组合,其中,每个分词组合包含多个词组。

具体地,上述词组可以通过自然语言处理(Natural Language Processing,NLP)模型对上述文字进行分词后获得。

需要说明的是,上述NLP为常用的自然语言处理模型,因此,当使用上述常用NLP模型进行分词后,可以获得常用的词组。在本申请实施例中,可以在上述常用NLP模型中添加预设工程词库,其中,该预设工程词库可以包括预设的工程词组,该预设的工程词组可以包括建筑工程行业的专用词组,由此可以使得上述添加预设工程词库后的NLP模型在进行分词时,可以根据建筑工程行业的特性进行分词,避免将属于建筑工程行业的专业词组被拆分,进而可以更准确的对上述工程文档进行识别。示例性的,以“工程管理”举例,当使用常用NLP模型对上述“工程管理”进行分词时,可以得到“工程”及“管理”两个词组,而“工程管理”在建筑行业为特定的专业用词,也就是说,上述预设工程词库包括“工程管理”这个专用词组,因此,当使用添加预设工程词库的NLP模型对“工程管理”进行分词时,可以得到“工程管理”这一个词组。

在上述分词过程中,可以基于语句的维度进行分词,例如,可以对上述预处理图像中的每句话进行分词,也就是说,一条语句可以对应一个分词组合。在具体实现时,上述确定与语句对应的分词组合的方式可以通过如下方式:当对任意一条语句进行分词时,可以获得与该语句对应的不同的分词组合,其中,该语句的不同的分词组合可以对应不同的置信度,每个分词组合的置信度用于表征每个分词组合的统计概率。其中,该统计概率可以是根据该分词组合中每个词组的先验概率获得。示例性的,以“我爱中国”这句话为例,其中,“我”字在日常生活中以一个字出现的先验概率为p1,“爱”字在日常生活中以一个字出现的先验概率为p2,“中国”在日常生活中以两个字出现的先验概率为p3,因此,通过统计上述先验概率p1、p2及p3,可以得到分词组合{我,爱,中国}的统计概率P(置信度)。在具体实现时,上述统计概率P可以通过加法得到,例如P=p1+p2+p3,上述统计概率P可以通过乘法得到,例如P=p1*p2*p3,本申请实施例对上述获得统计概率P的方式不做特殊限定。通过对一句话进行不同的分词组合,可以计算得到该句子中不同分词组合的统计概率P,也就是可以得到每句话对应的分词组合的置信度。可以理解的是,最高统计概率(也就是最大置信度)对应的是最合理的分词组合。以上述“我爱中国”为例,当通过分词以后,可以得到{我,爱,中国}、{我爱,中国}及{我,爱中国}等多个分词组合,若{我,爱,中国}这个分词组合的统计概率(置信度)最高,则说明{我,爱,中国}这个分词组合是最合理的,也就是说,“我爱中国”按照{我,爱,中国}这个组合进行分词是最合理的。当获取到任意一条语句的多个分词组合的置信度后,可以将最高置信度对应的分词组合作为该条语句的分词组合。

步骤104,计算分词组合中每个词组的上下文语义向量。

具体地,当获取到上述与处理图像中的每条语句对应的分词组合后,可以计算上述分词组合中每个词组的上下文语义向量。优选地,为了提高计算效率,也可以在上述多个分词组合中筛选部分分词组合。在具体实现时,上述筛选的方式可以是获取置信度低于预设第一阈值的分词组合。示例性的,以多条语句为例,语句A对应的分词组合、语句B对应的分词组合B、语句C对应的分词组合C及语句D对应的分词组合D。其中,分词组合A的置信度为96%,分词组合B的置信度为94%,分词组合C的置信度为93%,分词组合D的置信度为90%。可以理解的是,上述任意一个分词组合的置信度是所述语句中的置信度最高的。以语句A为例,语句A可能包含其他分词组合,但是其他分词组合的置信度都低于分词组合A的置信度96%,因此,取分词组合A作为语句A的分词组合。同样地,其他语句(例如语句B、语句C及语句D)的分词组合可以参考语句A的分词组合,在此不再赘述。若预设第一阈值为95%,由于分词组合B、分词组合C及分词组合D的置信度均低于预设第一阈值95%,则可以将分词组合B、分词组合C及分词组合D作为筛选后得到的分词组合。

接着,可以计算上述分词组合中每个词组的上下文语义向量。可以理解的是,上述计算上下文语义向量的分词组合可以是未经过筛选的分词组合,也可以是已经过筛选的分词组合。上述每个词组的上下文语义向量的计算可以通过如下方式,当计算任意一个词组的上下文语义向量时,可以获取该词组相邻的前后两个词组的语义向量,其中,上述语义向量可以通过基于Transformers的双向编码表示(Bidirectional EncoderRepresentations from Transformers,BERT)模型计算获得,可以理解的是,上述BERT模型仅为示例性说明,在具体实现时,也可以通过其他类型的神经网络模型计算语义向量,本申请实施例对上述计算语义向量的方式不做特殊限定。接着,可以将于该词组相邻的前后两个词组的语义向量的均值作为该词组的上下文语音向量。举例来说,与词组Y相邻的前一个词组为词组X,与词组Y相邻的后一个词组为词组Z,通过BERT模型计算获得词组X的语义向量为S1,通过BERT模型计算获得词组Z的语义向量为S2,则词组Y的上下文语义向量S=(S1+S2)/2。

需要说明的是,当任意一个词组不存在相邻的前一个词组或后一个词组时,该词组的上下文语义向量可以是与其相邻的前一个词组或后一个词组的语义向量的一半。举例来说,词组X为分词组合中第一个词组,因此,词组X不存在与其相邻的前一个词组,与词组X相邻的后一个词组为词组Y,若词组Y的语义向量为S1,则词组X的上下文语义向量S=S1/2。同样地,词组Z为分词组合中最后一个词组,因此,词组Z不存在与其相邻的后一个词组,与词组Z相邻的前一个词组为词组Y,若词组Y的语义向量为S1,则词组Z的上下文语义向量S=S1/2。

步骤105,基于上下文语义向量进行词组的替换。

具体地,当获取到词组的上下文语义向量后,可以将该词组的上下文语义向量与上述预设工程词库中的词组进行比较。若该词组的上下文语义向量与预设工程词库中的任意一个词组的语义向量接近,则可以用预设工程词库中的词组替换该词组。其中,上述判断该词组的上下文语义向量与预设工程词库中的任意一个词组的语义向量接近的方式可以是计算两个语义向量之间的相似度,例如,可以通过余弦相似度或欧式距离。本申请实施例对上述计算相似度的方式不做特殊限定。接着,若相似度高于预设第二阈值,则可以确定该词组的上下文语义向量与预设工程词库中的任意一个词组的语义向量接近;若相似度低于或等于预设第二阈值,则可以确定该词组的上下文语义向量与预设工程词库中的任意一个词组的语义向量不接近。示例性的,若词组M的上下文语义向量为S1,预设工程词库中存在一个词组N的语义向量为S2,且S1与S2的相似度为99%,假设预设第二阈值为98%,由于S1与S2的相似度99%大于预设第二阈值98%,则可以将词组N替换词组M。

可选地,除了上述通过计算相似度进行词组的替换外,还可以通过计算相似度结合编辑距离确定是否进行词组的替换。其中,上述编辑距离可以包括字级别的编辑距离或拼音级别的编辑距离。上述字级别的编辑距离以字为维度计算编辑距离,上述字级别的编辑距离可以用于表征替换的字的个数。示例性的,以“高队”和“高坠”这两个词组为例,若将“高坠”替换“高队”,则只需将“坠”替换“队”即可,也就是说,只需替换一个字,即编辑距离为1。上述拼音级别的编辑距离以拼音为维度计算编辑距离,上述拼音级别的编辑距离可以用于表征替换的拼音中的字母的个数。示例性的,以“高队”和“高坠”这两个词组为例,“高队”的拼音为Gao Dui,“高坠”的拼音为Gao Zhui,若将“高坠”替换“高队”,则只需将“Zh”替换“D”即可,也就是说,只需替换2个字母,即编辑距离为2。优选地,上述拼音级别的编辑距离还可以用于表征替换的字母的个数占字母总数的比例。由于在使用拼音级别的编辑距离进行词组的替换时,若统计替换字母的总数计算编辑距离,通常替换字母的总数较大,会带来较大的误差,例如,当替换一个字时,若该字的拼音的字母较长,可能导致替换的字母较多,然而实际仅替换了一个字,编辑距离应该是较小的,然而从替换的字母总数来看,编辑距离较大,由此会带来较大的误差。而统计替换的字母的总数占字母总数的比例,得到的是相对的编辑距离,由此可以避免统计替换字母的总数带来的误差。示例性,以“高庄”和“高汤”为例,“高庄”的拼音为Gao Zhuang,“高汤”的拼音为Gao Tang,若将“高庄”替换“高汤”,则只需将“Zhu”替换“T”即可,也就是说,“Zhu”的字母总数占“Zhuang”的字母总数的比例为3/6=50%。

当获取到编辑距离(例如,字级别的编辑距离或拼音级别的编辑距离)后,可以将上述编辑距离与预设第三阈值进行比较,若上述编辑距离小于预设第三阈值,则可以确定编辑距离满足要求;若上述编辑距离大于或等于预设第三阈值,则可以确定编辑距离不满足要求。此时,若确定上述相似度和编辑距离同时满足要求,也就是说,相似度大于预设第二阈值,且编辑距离小于预设第三阈值,则可以进行词组的替换。由此可以完成整个工程文档电子文本(也就是待识别图像)的识别。

本申请实施例还提供了一种工程词库构建方法。

图3为上述工程词库构建方法一个实施例的流程示意图,包括:

步骤301,获取多个样本数据。

具体地,上述样本数据可以是工程文档纸件的图像,该图像可以通过对工程文档纸件进行扫描获得,该图像也可以对工程文档纸件进行拍照获得,本申请实施例对上述工程文档纸件的图像的获取方式不做特殊限定。

可以理解的是,一个样本数据可以是一个工程文档纸件的图像,因此,在本申请实施例中,可以获取多个样本数据,以便通过自学习的方式对上述工程词库进行构建。

步骤302,对每个样本数据进行文字识别。

具体地,可以对每个样本数据进行识别,也就是对每个工程文档纸件的图像进行识别,由此可以得到该图像中的文字。其中,上述文字识别的方式可以采用OCR技术。也可以通过其他识别方式,本申请实施例对上述文字识别的方式不做特殊限定。

步骤303,对每个样本数据进行标注。

具体地,上述标注可以包括对样本数据的文档类别、文档名称及正文位置进行标注。其中,上述文档类别可以用于表征该工程文档的类别,例如,该文档类别可以包括合同文件、经济文件、交底记录、工程技术文件及报审备案资料等类别。该文档名称可以用于表征该工程文档的文件名称。该正文位置可以用于表征正文在工程文档中的位置,例如,该正文位置可以包括起始位置及结束位置,该起始位置可以通过起始标识符标识,该结束位置可以通过结束标识符标识。

步骤304,对首个样本数据中的文字进行分词,得到词组。

具体地,可以在上述多个样本数据中任意获取一个样本数据作为首个样本数据,也就是任意获取一个工程文档纸件的图像,并可以对该图像中的文字进行分词,由此可以得到词组。其中,上述分词的方式可以通过NLP技术,也可以通过其他分词工具,本申请实施例对上述分词的方式不做特殊限定。

步骤305,计算每个词组的权重。

具体地,当获取到当前样本数据的词组后,可以计算每个词组的权重。其中,该权重可以用于表征该词组与工程词库的相关程度,也就是说,相关程度越高,该词组越有可能记入工程词库中,由此构建工程词库。在具体实现时,上述权重可以通过关键词词频(Termfrequency,TF)及逆向文本频率(Inverse document frequency,IDF)计算获得,例如,上述权重可以是TF和IDF的乘积。

步骤306,基于每个词组的所处的标注位置更新权重。

具体地,上述标注位置可以是词组在工程文档中所处的位置,例如,该标注位置可以包括文档类别、文档名称及正文。接着,可以根据每个词组的所处的不同的标注位置更新上述权重。示例性的,若该词组位于文档名称中,则该词组的权重可以增加n*累计出现次数,其中,该累计出现次数可以通过统计该词组在工程文档中出现的次数获得。若该词组位于正文的预设第一位置中,例如,该预设第一位置包括起始100个字或末尾100个字,则该词组的权重可以增加m*累计出现次数,需要说明的是,上述正文的起始100个字或末尾100个字仅是示例性说明词组在正文中出现的位置,并不构成对本申请实施例的限定,在一些实施例中,也可以是其他数值。若该词组位于文档类别中或位于正文的预设第二位置中,例如,该预设第二位置包括除起始100个字和末尾100个字外的文字,则该词组的权重可以增加j*累计出现次数。其中,n>m>j>1。

步骤307,基于权重对该样本数据中的词组进行排序,并选取预设数量的词组。

具体地,当获取到上述步骤306中的样本数据中的每个词组的权重后,可以基于权重对词组进行排序,并可以选取权重最高的前k个词组作为第一候选词组集合。其中,上述数值k可以预设。

步骤308,在上述第一候选词组集合中选取词组作为工程词库的词组,并构建第二候选词组集合。

具体地,该第一候选词组集合可以提供给专家,以便专家在上述第一候选词组集合中挑选工程领域相关的词组,并可以将挑选的词组作为工程词库的词组,由此可以构建工程词库。可以理解的是,当专家在上述第一候选词组集合进行词组挑选后,还可以得到第二候选词组集合,其中,该第二候选词组集合可以包括一个或多个从上述第一候选词组集合中挑选得到的词组。

步骤309,计算第二候选词组集合中每个词组在一个或多个位置上的上下文语义向量。

具体地,上述第二候选词组集合可以包括一个或多个词组,因此,可以计算第二候选词组集合中每个词组在一个或多个位置上的上下文语义向量。在具体实现时,可以获取任意一个词组在工程文档中的所有位置,其中,上述位置的查找可以通过全文检索的方式,上述位置的总数可以是一个或多个。当确定该词组的任意一个位置后,可以计算该词组在该位置上的上下文语义向量,由此可以得到该词组对应的一个或多个位置的上下文语义向量。同样地,其他词组在一个或多个位置上的上下文语义向量获得方式可以参考上述方式,在此不再赘述。其中,上述上下文语义向量可以通过BERT模型计算获得。可以理解的是,上述上下文语义向量可以通过其他神经网络模型计算获得,本申请实施例对计算获得上述上下文语义向量的方式不做特殊限定。表1为第二候选词组集合中每个词组不同位置的上下文语义向量汇总表。

表1

步骤310,获取剩余样本数据,从剩余样本数据中获取词组,将该词组作为工程词库的词组,由此构建工程词库。

具体地,从上述步骤可以看出,上述步骤304-步骤308完成了一个样本数据的词组的选取,并将从该样本数据的选取的词组作为工程词库的词组。接着,可以从剩余样本数据中选取词组,并将从剩余样本数据中选取的词组作为工程词库的词组,由此可以完成工程词库的构建。

在具体实现时,在从剩余样本数据中选取词组时,可以依次获取剩余样本数据中的每一个样本数据。以上述剩余样本数据中的任意一个样本数据(为说明方便,下文将上述步骤304中处理的样本数据称为“第一样本数据”,并将本步骤310中处理的样本数据称为“第二样本数据”)为例,当该第二样本数据经过步骤301-步骤304的文字识别及分词后,可以获得该第二样本数据的第一词组集合。接着,可以将该第二样本数据的第一词组集合中的词组与上述第一样本数据的第二候选词组集合中的词组进行比较,由此可以得到第二词组集合,该第二词组集合可以通过在上述第二样本数据的第一词组集合中选取与上述第一样本数据的第二候选词组集合中不同的词组获得。接着,可以获取上述第二词组集合中的每个词组在第二样本数据中的一个或多个位置,并可以计算第二词组集合中的每个词组在第二样本数据中的一个或多个位置上的上下文语义向量。若该第二词组集合中的任意一个词组在第二样本数据中的任意一个位置上的上下文语义向量与表1中的其中一个上下文语义向量接近,则可以将该词组作为工程文档的词组,并可以将该词组在当前位置上的上下文语义向量记录在上述表1中,由此对上述表1进行更新。可以理解的是,剩余的样本数据在进行上下文语义向量比较时,可以将剩余样本数据中的词组的上下文语义向量与更新后的表1中的上下文语义向量进行比较。此外,上述确定两个上下文语义向量是否接近的方式可以是计算两个上下文语义向量的余弦相似度或欧式距离,若两个上下文语义向量的余弦相似度或欧式距离高于预设第四阈值,则可以确定两个上下文语义向量接近。可以理解的是,上述计算余弦相似度或欧式距离仅是示例性说明确定两个上下文语义向量是否接近的方式,并不构成对本申请实施例的限定,在一些实施例中,还可以通过其他方式确定两个上下文语义向量是否接近。

接着,可以参考上述第二样本数据的方式,依次对剩余的样本数据进行处理,直到在剩余的样本数据中的任意一个样本数据中无法挑选出词组作为工程词库的词组为止。

此外,在实际应用场景中,有可能在一篇样本数据中找不到合适的词组作为工程词库的词组,但是,并不说明在下一个样本数据中也找不到合适的词组作为工程词库的词组。因此,为了避免上述这种遗漏样本的场景,优选地,还可以设置结束构建工程词库的条件,示例性的,可以检测连续的多个样本数据(例如10个),若在连续的多个样本数据中无法挑选出词组作为工程词库的词组,则构建工程词库的任务结束,也就是说,工程词库的构建完成。

下面结合图4进一步介绍本申请以下实施例中提供的示例性电子设备。图4示出了电子设备400的结构示意图,该电子设备400可以用于执行上述文档识别方法或工程词库构建方法。

上述电子设备400可以包括:至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:上述存储器存储有可被上述处理器执行的程序指令,处理器调用上述程序指令能够执行本申请图1-图3所示实施例提供的方法。

图4示出了适用于实现本申请实施方式的示例性电子设备400的框图。图4显示的电子设备400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图4所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:一个或者多个处理器410,存储器420,连接不同系统组件(包括存储器420和处理器410)的通信总线440以及通信接口430。

通信总线440表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。

电子设备400典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器420可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read Only Memory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read Only Memory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与通信总线440相连。存储器420可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。

具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器420中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本申请所描述的实施例中的功能和/或方法。

电子设备400也可以与一个或多个外部设备(例如键盘、指向设备、显示器等)通信,还可与一个或者多个使得用户能与该电子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过通信接口430进行。并且,电子设备400还可以通过网络适配器(图4中未示出)与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信,上述网络适配器可以通过通信总线440与电子设备的其它模块通信。应当明白,尽管图4中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Drives;以下简称:RAID)系统、磁带驱动器以及数据备份存储系统等。

处理器410通过运行存储在存储器420中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例提供的方法。

可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备400的结构限定。在本申请另一些实施例中,电子设备400也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。

可以理解的是,上述电子设备400等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。

本申请实施例可以根据上述方法示例对上述电子设备400等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 文档识别方法、工程词库构建方法、电子设备及存储介质
  • 文档标题树的构建方法、装置、电子设备及存储介质
技术分类

06120113677901