CN116049213A - 表格文档的关键词检索方法及电子设备 - Google Patents
表格文档的关键词检索方法及电子设备 Download PDFInfo
- Publication number
- CN116049213A CN116049213A CN202211515994.1A CN202211515994A CN116049213A CN 116049213 A CN116049213 A CN 116049213A CN 202211515994 A CN202211515994 A CN 202211515994A CN 116049213 A CN116049213 A CN 116049213A
- Authority
- CN
- China
- Prior art keywords
- column
- virtual
- semantic
- text
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种表格文档的关键词检索方法及电子设备,该方法包括:对表格文档进行解析,得到包含位置信息和文本内容的多个候选文字块;根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列;针对每个虚拟列,根据虚拟列中候选文字块的文本内容,确定虚拟列的列语义标签;根据待查询关键词包含的查询字段以及每个虚拟列的列语义标签,筛选出列语义标签与查询字段相同的虚拟列,构成语义匹配组;根据待查询关键词包含的查询内容,从语义匹配组包含的虚拟列中检索得到与查询内容匹配的有效文字块。该方案成本低、效率高,并且通过语义理解,降低误召回率的同时提升精准率。
Description
技术领域
本申请涉及自然语言处理技术领域,特别涉及一种表格文档的关键词检索方法及电子设备。
背景技术
为了从文档中检索出待查询的内容,现有模式需要先对非结构化的文档(如PDF、图片等文档)进行单独的解析或处理,从而实现数据结构化,之后基于结构化数据实现关键词的查询功能。代表性流程:
1.准备项目数据进行标注;
2.训练端到端的数据结构化模型(如表格识别和提取模型);
3.根据结构化的识别结果进行数据存储(关系、对象或图谱数据库);
4.从数据存储设备中进行关键词的匹配。
在结构化过程中,为了应对复杂版式和不同类型的表格文档,需要准备多种不同类型表格文档的训练样本数据,训练出适用于多种类型表格文档的数据结构化模型,故数据结构化成本居高不下,实施周期长。
发明内容
本申请实施例提供了一种表格文档的关键词检索方法,用以降低成本,提高效率。
本申请实施例提供的一种表格文档的关键词检索方法,包括:
对表格文档进行解析,得到包含位置信息和文本内容的多个候选文字块;
根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列;
针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签;
根据待查询关键词包含的查询字段以及每个虚拟列的列语义标签,筛选出列语义标签与所述查询字段相同的虚拟列,构成语义匹配组;
根据所述待查询关键词包含的查询内容,从所述语义匹配组包含的虚拟列中检索得到与所述查询内容匹配的有效文字块。
在一实施例中,所述根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签,包括:
对所述候选文字块的文本内容进行聚类处理,得到多个分类结果;
根据所述分类结果,确定出所述虚拟列的列语义标签。
在一实施例中,所述根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列,包括:
根据每个候选文字块的位置信息,构建包含所有候选文字块的外接矩形,确定所述外接矩形的边界坐标;
根据每个候选文字块的位置信息,确定候选文字块的平均宽度;
根据所述外接矩形的边界坐标,将所述外接矩形按照所述平均宽度划分为多个虚拟列,得到每个虚拟列的边界范围;
根据每个候选文字块的中心位置以及每个虚拟列的边界范围,确定每个虚拟列包含的候选文字块。
在一实施例中,所述根据每个候选文字块的中心位置以及每个虚拟列的边界范围,确定每个虚拟列包含的候选文字块,包括:
针对每个文字块,若所述文字块的x轴中心位置位于任一虚拟列的边界范围内,确定所述虚拟列包含所述文字块。
在一实施例中,所述针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,将所述虚拟列中候选文字块的文本内容进行规则匹配,确定所述虚拟列的列语义标签。
在一实施例中,所述虚拟列中候选文字块的文本内容包括第一数量列的文本内容,所述列语义标签包括所述第一数量的标签;
其中,所述列语义标签包括:序号、设备名称、生产厂商、规格型号、价格和发票中的一项或多项标签。
在一实施例中,所述针对任一虚拟列,将所述虚拟列中候选文字块的文本内容进行规则匹配,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,若所述虚拟列中任一候选文字块的文本内容符合指定列语义标签对应配置的表头规则,确定所述虚拟列的列语义标签为所述指定列语义标签。
在一实施例中,所述针对任一虚拟列,将所述虚拟列中候选文字块的文本内容进行规则匹配,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,若所述虚拟列中超过预设比例的候选文字块的文本内容符合指定列语义标签对应配置的列数据规则,确定所述虚拟列的列语义标签为所述指定列语义标签。
在一实施例中,所述针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,将所述虚拟列中候选文字块的文本内容作为已训练的列语义标签抽取模型的输入,得到所述列语义标签抽取模型输出的所述虚拟列的列语义标签。
在一实施例中,所述针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,将所述虚拟列中候选文字块的文本内容进行规则匹配,确定所述虚拟列的列语义标签;
若无法通过规则匹配确定所述虚拟列的列语义标签,将所述虚拟列中候选文字块的文本内容作为已训练的列语义标签抽取模型的输入,得到所述列语义标签抽取模型输出的所述虚拟列的列语义标签;
若无法通过所述列语义标签抽取模型确定所述虚拟列的列语义标签,且邻近列的列中心坐标与所述虚拟列的列中心坐标相差小于阈值,将所述邻近列的列语义标签作为所述虚拟列的列语义标签。
在一实施例中,所述根据所述待查询关键词包含的查询内容,从所述语义匹配组包含的虚拟列中检索得到与所述查询内容匹配的有效文字块,包括:
根据所述待查询关键词包含的查询内容,将所述查询内容拆分成多个子关键词;
针对所述语义匹配组包含的虚拟列中的每个目标文字块,确定所述目标文字块的文本内容与每个子关键词之间的相似度;
根据所述目标文字块的文本内容与每个子关键词之间的相似度,确定所述目标文字块与所述查询内容之间的匹配度;
根据所述语义匹配组包含的虚拟列中的每个目标文字块与所述查询内容之间的匹配度,从所有目标文字块中筛选出所述匹配度大于预设值的有效文字块。
在一实施例中,所述确定所述目标文字块的文本内容与每个子关键词之间的相似度,包括:
使用jaccard或dice相似度函数,确定所述目标文字块的文本内容与每个子关键词之间的相似度;
所述根据所述目标文字块的文本内容与每个子关键词之间的相似度,确定所述目标文字块与所述查询内容之间的匹配度,包括:
使用置信度算法,根据所述目标文字块的文本内容与每个子关键词之间的相似度,确定所述目标文字块与所述查询内容之间的匹配度。
其中,所述置信度算法定义:
confidence(Q.val,O)=max(sim(Q1,O),sim(Q2,O),……sim(QN,O))。
其中,confidence(Q.val,O)表示查询内容与目标文字块之间的匹配度,max()表示逗号间隔的若干值取最大值,sim(QN,O)表示子关键词QN与目标文字块O之间的相似度。
本申请实施例还提供了一种表格文档的关键词检索装置该装置包括:
文档解析模块,用于对表格文档进行解析,得到包含位置信息和文本内容的多个候选文字块;
虚拟列划分模块,用于根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列;
列标签确定模块,用于针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签;
匹配组筛选模块,用于根据待查询关键词包含的查询字段以及每个虚拟列的列语义标签,筛选出列语义标签与所述查询字段相同的虚拟列,构成语义匹配组;
内容检索模块,用于根据所述待查询关键词包含的查询内容,从所述语义匹配组包含的虚拟列中检索得到与所述查询内容匹配的有效文字块。
本申请实施例还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述表格文档的关键词检索方法。
本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述表格文档的关键词检索方法。
本申请上述实施例提供的技术方案,通过对表格文档进行解析,得到包含位置信息和文本内容的多个候选文字块,根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列,并通过提取虚拟列的列语义标签,先筛选出列语义标签与查询字段相同的虚拟列,再从筛选出的虚拟列中检索出与查询内容匹配的有效文字块,可以解决训练结构化模型的成本高的问题,提高效率,并且通过语义理解,降低误召回率的同时提升精准率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的电子设备的结构示意图;
图2是本申请实施例提供的一种表格文档的关键词检索方法的流程示意图;
图3是图2对应实施例中步骤S220的细节流程图;
图4是本申请实施例提供的对每一列进行列语义标签标注的原理示意图;
图5是图2对应实施例中步骤S250的细节流程图;
图6是本申请实施例提供的从表格文档中解析出的候选文字块的示意图;
图7是本申请实施例提供的在表格文档中划分出虚拟列的示意图;
图8是本申请实施例提供的有效文字块的检索结果示意图;
图9是本申请实施例提供的一种表格文档的关键词检索装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
机器流程自动化(Robotic Process Automation,RPA)技术可以模拟员工在日常工作中通过键盘、鼠标对计算机的操作,可以代替人类执行登录系统、操作软件、读写数据、下载文件、读取邮件等操作。以自动化机器人作为企业的虚拟劳动力,可以将员工从重复、低价值的工作中解放出来,将精力投入到高附加值的工作上,从而可以使企业在数字化智能化转型的同时又做到降低成本、增加效益。
RPA是一种使用软件机器人取代业务流程中的人工任务,并且像人一样与计算机的前端系统进行交互,因此RPA可以看作是一种运行在个人PC机或服务器中的软件型程序机器人,通过模仿用户在电脑上进行的操作来替代人类自动重复这些操作,例如检索邮件、下载附件、登录系统、数据加工分析等活动,快速、准确、可靠。虽然和传统的物理机器人一样都是通过设定的具体规则来解决人类工作中速度和准确度的问题,但是传统的物理机器人是软硬件结合的机器人,需要在特定的硬件支持下配合软件才能执行工作;而RPA机器人是纯软件层面的,只要安装了相应的软件,就可以部署到任意一台PC机和服务器中来完成规定的工作。
也就是说,RPA是一种利用“数字员工”代替人进行业务操作的一种方式及其相关的技术。本质上RPA是通过软件自动化技术,模拟人实现计算机上系统、软件、网页和文档等对象的无人化操作,获取业务信息、执行业务动作,最终实现流程自动化处理、人力成本节约和处理效率提升。从描述可知,为了实现RPA,需要先从文档或屏幕中找到待操作的目标内容,才能自动对这些内容进行操作。故基于输入的关键词,在表格文档中进行关键词的检索成为实现RPA所关注的技术之一。
图1是本申请实施例提供的电子设备的结构示意图。该电子设备100可以用于执行本申请实施例提供的表格文档的关键词检索方法。如图1所示,该电子设备100包括:一个或多个处理器102、一个或多个存储处理器可执行指令的存储器104。其中,所述处理器102被配置为执行本申请下述实施例提供的表格文档的关键词检索方法。
所述处理器102可以是网关,也可以为智能终端,或者是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备100中的其它组件的数据进行处理,还可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的表格文档的关键词检索方法。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
在一实施例中,图1示电子设备100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备100也可以具有其他组件和结构。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置110可以采集对象的图像,并且将所采集的图像存储在所述存储器104中以供其它组件使用。示例性地,该数据采集装置110可以为摄像头。
在一实施例中,用于实现本申请实施例的表格文档的关键词检索方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器102、存储器104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。
在一实施例中,用于实现本申请实施例的表格文档的关键词检索方法的示例电子设备100可以被实现为诸如智能手机、平板电脑、服务器、台式电脑、车载设备等智能终端。
图2是本申请实施例提供的一种表格文档的关键词检索方法的流程示意图。如图2所示,该方法包括以下步骤S210-步骤S250。
步骤S210:对表格文档进行解析,得到包含位置信息和文本内容的多个候选文字块。
其中,表格文档可以是包含表格的非结构化文档,例如PDF(Portable DocumentFormat,便携文件格式)文档、图片文档。对表格文档进行解析可以采用第三方解析工具,例如PDF解析器或OCR(Optical Character Recognition,光学字符识别)工具实现。候选文字块是指表格文档中每个字符串的最小外接矩形框,可以记为O。
位置信息可以是每个字符串的最小外接矩形框的左上角坐标和右下角坐标。举例来说,任一候选文字块的位置信息可以表示为[O.x0,O.y0,O.x1,O.y1],(O.x0,O.y0)表示左上角坐标,(O.x1,O.y1)表示右下角坐标,整个表格文档的左上角为原点。文本内容是指候选文字块包含的具体字符内容,可能是一串数字或一串文字。
步骤S220:根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列。
其中,虚拟列不是表格文档中实际的列。当表格文档的宽度是A,候选文字块的平均宽度是B时,可以将表格文档划分为A/B个区域,每个区域即为一个虚拟列,处于该虚拟列中的候选文字块被划分到该虚拟列。
在一实施例中,如图3所示,上述步骤S220具体包括:步骤S221-步骤S224。
步骤S221:根据每个候选文字块的位置信息,构建包含所有候选文字块的外接矩形,确定所述外接矩形的边界坐标。
其中,外接矩形可以包围所有候选文字块,外接矩形的边界坐标可以包括外接矩形的左上顶点坐标(A.x0,A.y0)和右下顶点坐标(A.x1,A.y1)。
步骤S222:根据每个候选文字块的位置信息,确定候选文字块的平均宽度。
具体的,可以根据每个候选文字块的位置信息,先计算出每个候选文字块的宽度,然后计算得到所有候选文字块的平均宽度。其中,每个候选文字块的宽度是指每个候选文字块在x轴方向上的长度。平均宽度是所有候选文字块的宽度的平均值,可以记为B。
步骤S223:根据所述外接矩形的边界坐标,将所述外接矩形按照所述平均宽度划分为多个虚拟列,得到每个虚拟列的边界范围。
具体的,A.x1-A.x0可以表示外接矩形的宽度,将外接矩形按照候选文字块的平均宽度B的大小划分为(A.x1-A.x0)/B个区域(如不能整除则添加一个区域),每一个区域即为虚拟列,记为C。一个虚拟列的边界范围是指该虚拟列的最左侧x轴坐标(记为C.x0)和最右侧x轴坐标(记为C.x1)。
步骤S224:根据每个候选文字块的中心位置以及每个虚拟列的边界范围,确定每个虚拟列包含的候选文字块。
如果任一候选文字块的中心位置在某个虚拟列的边界范围内,则可以认为该候选文字块位于该虚拟列中,即该虚拟列包含该候选文字块。
具体的,对于任一候选文字块,可以取该候选文字块的x轴中心位置:(O.x0+O.x1)/2,记为O.x_center。若该候选文字块的x轴中心位置位于任一虚拟列的边界范围内,即O.x_center大于C.x0并且O.x_center小于C.x1,确定该虚拟列包含该候选文字块。通过遍历所有候选文字块,可以得到包含多个候选文字块O的虚拟列C,记为OC。
在一实施例中,可以将虚拟列C中所有候选文字块的O.x_center(即x轴中心位置)的平均值,作为该虚拟列的列中心坐标,记为OC-Center。
步骤S230:针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签。
其中,虚拟列的列语义标签用于表征虚拟列中所有候选文字块的语义信息。
在一实施例中,可以先收集表格文档的列语义标签,并对不同的列语义标签(如:设备名称,生产厂商)等进行相关规则(如下文的表头规则、列数据规则)的配置。在实际应用时,针对任一虚拟列,将所述虚拟列中候选文字块的文本内容进行规则匹配,确定所述虚拟列的列语义标签。
在一实施例中,可以先收集多个表格文档的候选文字块的文本内容,对该候选文字块的文本内容进行聚类处理,从而可以得到多类分类结果,可以基于该分类结果确定出各虚拟列的列语义标签。
可选地,可以针对每一分类结果确定出一个列语义标签。例如,候选文字块的文本内容聚类后被划分成三类,则可以确定出三个列语义标签;候选文字块的文本内容聚类后被划分成五类,则可以确定出五个列语义标签。示例性地,列语义标签可以选用所属分类中出现频率最高的词汇,也可以在所属分类下随机选择一个词汇,还可以分别以不同的数值表示,还可以选用所属分类中位于聚类中心的词汇等。当然,根据实际需求的不同,也可以选择其它字符串作为各虚拟列的列语义标签,只要满足各个虚拟列的列语义标签不同即可。
示例性地,其中用于聚类的候选文字块的文本内容的数量可以按需设置,例如,可以准备几百个、几千个表格文档,从中提取出候选文字块的文本内容用于聚类。
在一实施例中,也可以接收用户针对表格文档输入的各个虚拟列的列语义标签。
规则匹配包括表头规则的匹配和列数据规则的匹配。表头规则的匹配可靠性更高,所以可以先进行表头规则的匹配,如果匹配不成功,再进行列数据规则的匹配。如果表头规则匹配成功,则可以不再进行列数据规则的匹配。其中,表头规则是指表头需要符合的关键词或表达式。列数据规则是指列数据(除了表头部分)需要符合的表达式。举例来说,列语义标签“价格”对应配置的表头规则是“^.*价格|总价|购入原值|金额|评估净值.*$”;列数据规则为“((\d{1,3},)+\d{3}|\d+)(.\d{1,2})”。
在一实施例中,针对任一虚拟列,若所述虚拟列中任一候选文字块的文本内容符合指定列语义标签对应配置的表头规则,确定所述虚拟列的列语义标签为所述指定列语义标签。
举例来说,如果某个虚拟列中某个候选文字块的文本内容是“总价”,由于列语义标签“价格”对应配置的表头规则是“^.*价格|总价|购入原值|金额|评估净值.*$”,则认为该文本内容符合“价格”这个指定列语义标签对应的配置的表头规则,该虚拟列的列语义标签为“价格”。
由于有些表格文档不存在表头或者OCR识别错误,导致无法与表头规则进行匹配,因此在无法通过表头规则匹配到列语义标签时,还可以进行列数据规则的匹配。具体如下:针对任一虚拟列,若所述虚拟列中超过预设比例的候选文字块的文本内容符合指定列语义标签对应配置的列数据规则,确定所述虚拟列的列语义标签为所述指定列语义标签。
其中,预设比例可以是2/3。举例来说,如果某个虚拟列中超过2/3的候选文字块的文本内容符合“价格”这个指定列语义标签对应配置的列数据规则,则该虚拟列的列语义标签为“价格”。
除了上述通过规则匹配确定列语义标签的方式,在另一实施例中,还可以:针对任一虚拟列,将所述虚拟列中候选文字块的文本内容作为已训练的列语义标签抽取模型的输入,得到所述列语义标签抽取模型输出的所述虚拟列的列语义标签。
其中,列语义标签抽取模型可以提前通过标注语料训练得到。如图4所示,第一列可以标注其列语义标签为“序号”,第二列可以标注其列语义标签为“设备名称”,第三列可以标注其列语义标签为“生产厂商”,第四列可以标注其列语义标签为“规格型号”,第五列标注为“价格”,第六列标注为“发票”……具体的,可以将每一列的文本内容为输入,标注的列语义标签为输出,进行机器学习,训练得到列语义标签抽取模型。其中,列语义标签抽取模型可以是基于预训练模型(如Bert)的分类模型算法。
在实际应用时,针对某个虚拟列,可以将该虚拟列中所有候选文字块的文本内容进行顺序拼接后,输入列语义标签抽取模型,列语义标签抽取模型的输出即为该虚拟列的列语义标签。
在一实施例中,针对任一虚拟列,可以先通过上述规则匹配的方式确定所述虚拟列的列语义标签,若无法通过规则匹配确定所述虚拟列的列语义标签,再通过上述列语义标签抽取模型确定虚拟列的列语义标签;若无法通过列语义标签抽取模型确定虚拟列的列语义标签,且邻近列的列中心坐标与所述虚拟列的列中心坐标相差小于阈值,将所述邻近列的列语义标签作为所述虚拟列的列语义标签。
其中,邻近列是相对某个虚拟列而言的,一个虚拟列的邻近列是指与该虚拟列相邻的其他虚拟列。举例来说,假设从左到右依次是第一个虚拟列,第二个虚拟列,第三个虚拟列,第四个虚拟列……则第三个虚拟列的邻近列是指第二个虚拟列和第四个虚拟列。
其中,列中心坐标可以是该虚拟列中所有候选文字块的O.x_center(即x轴中心位置)的平均值。当某个虚拟列的邻近列存在列语义标签,且邻近列的列中心坐标与该虚拟列的列中心坐标相差小于阈值(例如,阈值可以是候选文字块的平均宽度B/3),则可以将此邻近列的列语义标签作为该虚拟列的列语义标签。通过上述过程,即可确定每个虚拟列的列语义标签。
步骤S240:根据待查询关键词包含的查询字段以及每个虚拟列的列语义标签,筛选出列语义标签与所述查询字段相同的虚拟列,构成语义匹配组。
其中,待查询关键词Q的格式为“查询字段=查询内容”,即待查询关键词包括查询字段和查询内容。举例来说,待查询关键词可以是“设备名称=注塑机”。其中,每一个Q的查询字段,记为Q.tag,其取值范围即为列语义标签。每一个Q的查询内容记为Q.val。
其中,语义匹配组包括列语义标签与查询字段相同的虚拟列。具体的,可以将每一个虚拟列OC的列语义标签记为OC.tag。将OC.tag与Q.tag相同的虚拟列OC划分到一个组(即语义匹配组),一次查询可以有多个待查询关键词,一次查询中的Q.tag不重复,所以最终得到一个或多个语义匹配组,一个语义匹配组内包含一个Q和一个或多个OC,语义匹配组可以记为MG。
步骤S250:根据所述待查询关键词包含的查询内容,从所述语义匹配组包含的虚拟列中检索得到与所述查询内容匹配的有效文字块。
其中,有效文字块是指从语义匹配组包含的虚拟列中检索得到的文本内容与查询内容匹配的候选文字块。
在一实施例中,如图5所示,上述步骤S250具体包括:步骤S251-步骤S254。
步骤S251:根据所述待查询关键词包含的查询内容,将所述查询内容拆分成多个子关键词。
对于语义匹配组MG中的查询内容Q.val,可以进行分词,例如使用ngram算法(n元语言模型)将查询内容拆分成多个片段,每个片段可以称为子关键词。
步骤S252:针对所述语义匹配组包含的虚拟列中的每个目标文字块,确定所述目标文字块的文本内容与每个子关键词之间的相似度。
其中,目标文字块是指语义匹配组中虚拟列包含的候选文字块,为进行区分,称为目标文字块。针对每个目标文字块,可以通过计算该目标文字块分别与每一个子关键词之间的相似度。其中,相似度的计算可以基于jaccard、dice等相似度函数。举例来说,假设子关键词有Q1,Q2……QN,则可以计算出Q1与目标文字块O之间的相似度,Q2与目标文字块O之间的相似度……QN与目标文字块O之间的相似度。
步骤S253:根据所述目标文字块的文本内容与每个子关键词之间的相似度,确定所述目标文字块与所述查询内容之间的匹配度。
具体的,可以通过置信度算法确定目标文字块与所述查询内容之间的匹配度。置信度算法定义:
confidence(Q.val,O)=max(sim(Q1,O),sim(Q2,O),……sim(QN,O))。
其中,confidence(Q.val,O)表示查询内容与目标文字块之间的匹配度,max()表示逗号间隔的若干值取最大值,sim(QN,O)表示子关键词QN与目标文字块O之间的相似度。故目标文字块与所述查询内容之间的匹配度可以是目标文字块的文本内容与每个子关键词之间的相似度的最大值。
步骤S254:根据所述语义匹配组包含的虚拟列中的每个目标文字块与所述查询内容之间的匹配度,从所有目标文字块中筛选出所述匹配度大于预设值的有效文字块。
其中,有效文字块是指从语义匹配组包含的虚拟列中的所有目标文字块中筛选出的,与查询内容之间的匹配度大于预设值的目标文字块。假设一次查询有多个待查询关键词,一次查询中的Q.tag不重复,所以最终得到多个语义匹配组,则最终检索结果,可以是从每一个语义匹配组中筛选出的有效文字块。
本申请上述实施例提供的技术方案,通过对表格文档进行解析,得到包含位置信息和文本内容的多个候选文字块,根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列;针对每个虚拟列,根据虚拟列中候选文字块的文本内容,确定虚拟列的列语义标签;根据待查询关键词包含的查询字段以及每个虚拟列的列语义标签,筛选出列语义标签与查询字段相同的虚拟列,构成语义匹配组;进而根据待查询关键词包含的查询内容,从语义匹配组包含的虚拟列中检索得到与查询内容匹配的有效文字块。该方案通过提取虚拟列的列语义标签,先筛选出列语义标签与查询字段相同的虚拟列,再从筛选出的虚拟列中检索出与查询内容匹配的有效文字块,可以解决训练结构化模型的成本高的问题,提高效率,并且通过语义理解,降低误召回率的同时提升精准率。
下面以一个具体实施例,说明本申请实施例提供的表格文档的关键词检索方法的具体过程。
步骤1:接收待查询关键词:“型号=MA3600/2250G”,“价格=360000”和表格文档;
步骤2:对表格文档进行解析,得到包含位置信息和文本内容的多个候选文字块,如图6所示。
步骤3:根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列。如图7所示,列1,列2,列3……列15表示15个虚拟列。第一个候选文字块“序号”中的分割线代表该候选文字块的x轴中心位置,第二个候选文字块“品名”中的分割线代表“品名”这个候选文字块的x轴中心位置,以此类推。
步骤4:定义如下规则,格式为:$列语义[$表达式列表(逗号间隔)]。
(1)表头规则:序号[序号],设备名[品名|设备名称?],型号[型号],数量[数量],价格[.*(总价|价格)],发票号[发票编?号],供应商[供(应|货)商];
(2)列数据规则:序号[\d+],数量[\d+],价格[((\d{1,3},)+\d{3}|\d+)(.\d{1,2})],发票号[\d{8}],供应商[.*有限公司];
根据上述规则,针对每个虚拟列,根据虚拟列中候选文字块的文本内容,通过规则匹配,确定该虚拟列的列语义标签。具体的,可以得到如下各个虚拟列的列语义标签:列1=序号,列3=设备名,列5=型号,列7=数量,列9=价格,列10=价格,列12=发票号,列14=供应商。
步骤5:由于部分虚拟列无法与规则进行匹配,故有部分虚拟列的语义标签缺失,对于这些虚拟列可以通过列语义标签抽取模型确定列语义标签。举例:如将MA12000II/8400MA3600/2250G...等文本内容作为模型输入,模型将会输出这些文本内容最有可能的分类标签(即列语义标签),如型号。
步骤6:若无法通过规则匹配和列语义标签抽取模型确定某个虚拟列的列语义标签,根据该虚拟列的邻近列的列语义标签,若邻近列的列中心坐标与所述虚拟列的列中心坐标相差小于阈值,将所述邻近列的列语义标签作为所述虚拟列的列语义标签。假设列11无法确定列语义标签,列11的中心与列12的中心偏差小于阈值,可以将列12的列语义标签“发票号”作为列11的列语义标签。
步骤7:通过上述步骤可以得到列5的列语义标签为“型号”,列9的列语义标签为“价格”,由于待查询关键词为“型号=MA3600/2250G,价格=360000”,因此先通过查询字段与列语义标签的匹配,再通过查询内容的匹配,可以得到如图8所示的检索结果。
如果没有列语义标签的支持,可能会由于阈值关系误触到其他不相干的列数据,尤其是数字字母类型的查询内容,本申请先通过列语义标签的匹配,可以降低误召回率,提高精准率。非结构化文档版式相对复杂,采用端到端的模型训练方法成本高,效率低;而采用基于OCR识别结果的相关匹配方法可以显著减少系统构建时间和复杂度,但是往往可能缺少对列信息的感知和理解。本申请可以在后者的基础上提供语义理解,降低误召回率的同时提升精准率。进一步,本申请实施例提供的方案可以兼容各种版式的文档和图片,具有广泛的应用场景。
下述为本申请装置实施例,可以用于执行本申请上述表格文档的关键词检索方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请表格文档的关键词检索方法实施例。
图9为本申请一实施例示出的一种表格文档的关键词检索装置的框图。如图9所示,该装置包括:
文档解析模块910,用于对表格文档进行解析,得到包含位置信息和文本内容的多个候选文字块;
虚拟列划分模块920,用于根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列;
列标签确定模块930,用于针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签;
匹配组筛选模块940,用于根据待查询关键词包含的查询字段以及每个虚拟列的列语义标签,筛选出列语义标签与所述查询字段相同的虚拟列,构成语义匹配组;
内容检索模块950,用于根据所述待查询关键词包含的查询内容,从所述语义匹配组包含的虚拟列中检索得到与所述查询内容匹配的有效文字块。
上述装置中各个模块的功能和作用的实现过程具体详见上述表格文档的关键词检索方法中对应步骤的实现过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (13)
1.一种表格文档的关键词检索方法,其特征在于,包括:
对表格文档进行解析,得到包含位置信息和文本内容的多个候选文字块;
根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列;
针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签;
根据待查询关键词包含的查询字段以及每个虚拟列的列语义标签,筛选出列语义标签与所述查询字段相同的虚拟列,构成语义匹配组;
根据所述待查询关键词包含的查询内容,从所述语义匹配组包含的虚拟列中检索得到与所述查询内容匹配的有效文字块。
2.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签,包括:
对所述候选文字块的文本内容进行聚类处理,得到多个分类结果;
根据所述分类结果,确定出所述虚拟列的列语义标签。
3.根据权利要求1所述的方法,其特征在于,所述根据每个候选文字块的位置信息,将所有候选文字块划分成多个虚拟列,包括:
根据每个候选文字块的位置信息,构建包含所有候选文字块的外接矩形,确定所述外接矩形的边界坐标;
根据每个候选文字块的位置信息,确定候选文字块的平均宽度;
根据所述外接矩形的边界坐标,将所述外接矩形按照所述平均宽度划分为多个虚拟列,得到每个虚拟列的边界范围;
根据每个候选文字块的中心位置以及每个虚拟列的边界范围,确定每个虚拟列包含的候选文字块。
4.根据权利要求3所述的方法,其特征在于,所述根据每个候选文字块的中心位置以及每个虚拟列的边界范围,确定每个虚拟列包含的候选文字块,包括:
针对每个文字块,若所述文字块的x轴中心位置位于任一虚拟列的边界范围内,确定所述虚拟列包含所述文字块。
5.根据权利要求1所述的方法,其特征在于,所述针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,将所述虚拟列中候选文字块的文本内容进行规则匹配,确定所述虚拟列的列语义标签。
6.根据权利要求5所述的方法,其特征在于,所述针对任一虚拟列,将所述虚拟列中候选文字块的文本内容进行规则匹配,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,若所述虚拟列中任一候选文字块的文本内容符合指定列语义标签对应配置的表头规则,确定所述虚拟列的列语义标签为所述指定列语义标签。
7.根据权利要求5所述的方法,其特征在于,所述针对任一虚拟列,将所述虚拟列中候选文字块的文本内容进行规则匹配,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,若所述虚拟列中超过预设比例的候选文字块的文本内容符合指定列语义标签对应配置的列数据规则,确定所述虚拟列的列语义标签为所述指定列语义标签。
8.根据权利要求1所述的方法,其特征在于,所述针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,将所述虚拟列中候选文字块的文本内容作为已训练的列语义标签抽取模型的输入,得到所述列语义标签抽取模型输出的所述虚拟列的列语义标签。
9.根据权利要求8所述的方法,其特征在于,所述虚拟列中候选文字块的文本内容包括第一数量列的文本内容,所述列语义标签包括所述第一数量的标签;
其中,所述列语义标签包括:序号、设备名称、生产厂商、规格型号、价格和发票中的一项或多项标签。
10.根据权利要求1所述的方法,其特征在于,所述针对每个虚拟列,根据所述虚拟列中候选文字块的文本内容,确定所述虚拟列的列语义标签,包括:
针对任一虚拟列,将所述虚拟列中候选文字块的文本内容进行规则匹配,确定所述虚拟列的列语义标签;
若无法通过规则匹配确定所述虚拟列的列语义标签,将所述虚拟列中候选文字块的文本内容作为已训练的列语义标签抽取模型的输入,得到所述列语义标签抽取模型输出的所述虚拟列的列语义标签;
若无法通过所述列语义标签抽取模型确定所述虚拟列的列语义标签,且邻近列的列中心坐标与所述虚拟列的列中心坐标相差小于阈值,将所述邻近列的列语义标签作为所述虚拟列的列语义标签。
11.根据权利要求1所述的方法,其特征在于,所述根据所述待查询关键词包含的查询内容,从所述语义匹配组包含的虚拟列中检索得到与所述查询内容匹配的有效文字块,包括:
根据所述待查询关键词包含的查询内容,将所述查询内容拆分成多个子关键词;
针对所述语义匹配组包含的虚拟列中的每个目标文字块,确定所述目标文字块的文本内容与每个子关键词之间的相似度;
根据所述目标文字块的文本内容与每个子关键词之间的相似度,确定所述目标文字块与所述查询内容之间的匹配度;
根据所述语义匹配组包含的虚拟列中的每个目标文字块与所述查询内容之间的匹配度,从所有目标文字块中筛选出所述匹配度大于预设值的有效文字块。
12.根据权利要求11所述的方法,其特征在于,所述确定所述目标文字块的文本内容与每个子关键词之间的相似度,包括:
使用jaccard或dice相似度函数,确定所述目标文字块的文本内容与每个子关键词之间的相似度;
所述根据所述目标文字块的文本内容与每个子关键词之间的相似度,确定所述目标文字块与所述查询内容之间的匹配度,包括:
使用置信度算法,根据所述目标文字块的文本内容与每个子关键词之间的相似度,确定所述目标文字块与所述查询内容之间的匹配度;
其中,所述置信度算法定义:
confidence(Q.val,O)=max(sim(Q1,O),sim(Q2,O),……sim(QN,O));
其中,confidence(Q.val,O)表示查询内容与目标文字块之间的匹配度,max()表示逗号间隔的若干值取最大值,sim(QN,O)表示子关键词QN与目标文字块O之间的相似度。
13.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-12任意一项所述的表格文档的关键词检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211515994.1A CN116049213A (zh) | 2022-11-29 | 2022-11-29 | 表格文档的关键词检索方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211515994.1A CN116049213A (zh) | 2022-11-29 | 2022-11-29 | 表格文档的关键词检索方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116049213A true CN116049213A (zh) | 2023-05-02 |
Family
ID=86120943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211515994.1A Pending CN116049213A (zh) | 2022-11-29 | 2022-11-29 | 表格文档的关键词检索方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116049213A (zh) |
-
2022
- 2022-11-29 CN CN202211515994.1A patent/CN116049213A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399457B (zh) | 一种智能问答方法和系统 | |
US10489439B2 (en) | System and method for entity extraction from semi-structured text documents | |
US9418144B2 (en) | Similar document detection and electronic discovery | |
CN111026671B (zh) | 测试用例集构建方法和基于测试用例集的测试方法 | |
US7386438B1 (en) | Identifying language attributes through probabilistic analysis | |
CN108549656B (zh) | 语句解析方法、装置、计算机设备及可读介质 | |
CN110543592B (zh) | 信息搜索方法、装置以及计算机设备 | |
CN112434691A (zh) | 基于智能解析识别的hs编码匹配、展示方法、系统及存储介质 | |
CN113495900A (zh) | 基于自然语言的结构化查询语言语句获取方法及装置 | |
CN113254507B (zh) | 一种数据资产目录智能构建盘点方法 | |
US10699112B1 (en) | Identification of key segments in document images | |
CN111522901A (zh) | 文本中地址信息的处理方法及装置 | |
CN110750297B (zh) | 一种基于程序分析和文本分析的Python代码参考信息生成方法 | |
CN117454884B (zh) | 历史人物信息纠错方法、系统、电子设备和存储介质 | |
Wagenpfeil et al. | Graph codes-2d projections of multimedia feature graphs for fast and effective retrieval | |
CN110795101B (zh) | Sql代码信息显示方法、装置、计算机装置及存储介质 | |
CN110705285B (zh) | 一种政务文本主题词库构建方法、装置、服务器及可读存储介质 | |
CN115203445A (zh) | 多媒体资源搜索方法、装置、设备及介质 | |
CN114840657A (zh) | 一种基于混合模式的api知识图谱自适应构建及智能问答方法 | |
CN115658845A (zh) | 一种适用于开源软件供应链的智能问答方法及装置 | |
CN116049213A (zh) | 表格文档的关键词检索方法及电子设备 | |
CN114003750A (zh) | 物料上线方法、装置、设备及存储介质 | |
CN113627186A (zh) | 基于人工智能的实体关系检测方法及相关设备 | |
CN115114412B (zh) | 文档中的信息检索方法及电子设备、存储介质 | |
CN113760891B (zh) | 一种数据表的生成方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |