CN112528602B - 一种医药文档结构化内容分析方法、系统和存储介质 - Google Patents
一种医药文档结构化内容分析方法、系统和存储介质 Download PDFInfo
- Publication number
- CN112528602B CN112528602B CN202110173633.2A CN202110173633A CN112528602B CN 112528602 B CN112528602 B CN 112528602B CN 202110173633 A CN202110173633 A CN 202110173633A CN 112528602 B CN112528602 B CN 112528602B
- Authority
- CN
- China
- Prior art keywords
- cells
- content
- contents
- minimum
- document
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000001914 filtration Methods 0.000 claims abstract description 5
- 239000011159 matrix material Substances 0.000 claims description 116
- 230000002159 abnormal effect Effects 0.000 claims description 58
- 238000004458 analytical method Methods 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012216 screening Methods 0.000 claims description 15
- 210000004027 cell Anatomy 0.000 description 251
- 238000012545 processing Methods 0.000 description 14
- 239000003814 drug Substances 0.000 description 11
- 238000010835 comparative analysis Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 229940079593 drug Drugs 0.000 description 6
- 239000000243 solution Substances 0.000 description 6
- 239000000463 material Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 210000003719 b-lymphocyte Anatomy 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000017105 transposition Effects 0.000 description 3
- 238000012098 association analyses Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010219 correlation analysis Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 239000002547 new drug Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012553 document review Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007373 indentation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H70/00—ICT specially adapted for the handling or processing of medical references
- G16H70/40—ICT specially adapted for the handling or processing of medical references relating to drugs, e.g. their side effects or intended usage
Abstract
本发明公开了一种医药文档结构化内容分析方法,包括如下步骤:将不同格式的电子文档转化为统一文档格式,按OpenXML标准对文档进行识别,对各文档内部包括但不限于页头、页尾和图片进行提取;将提取出到的页头、页尾和图片XML资源转换添加至HTML预览文件,并在标题列表、段落和表格前分别添加第一标签、第二标签和第三标签;根据生成的HTML预览文件,按第二标签来提取每段内容并过滤掉HTML标签生成文本内容;将所述结构化数据存储至数据库,根据输入的检索文本确认位置关联标签组,并根据所述位置关联标签组展现对应的HTML预览页面内容。通过对电子文档结构化解析后,不仅可以利用数据库的搜索能力,还能更好的对上下文内容进行隔离,准确缩小搜索范围。
Description
技术领域
本发明涉及数据处理和分析技术领域,尤其涉及一种医药文档结构化内容分析方法、系统和存储介质。
背景技术
近些年来国家对药企的监管越来越严,出台的法规越来越多,执行也是越来越严格。按照法规要求,药企在申报新药的时候需要提交数量庞大的文档资料,所有提交的文档都必须是真实合规的。如果文档中的内容出现前后不一致等情况,将导致整个产品的合规性得不到满足,企业将被处以整改等强制措施,药品的上市将会受到严重影响。因此企业内会设有专门团队来负责所有文档的审核;若后续出现对实验方法或使用物料的调整,原先审核通过的文档也必需一一修改,因此药品申报文档的审核是件非常细致且极其重要的工作。
目前一款新药的申报往往需要持续5年以上,药企在这个过程中会积累庞大数量的文档资料,企业内部会对这些文档进行严格管控和频繁查询使用。同时在研发过程中这些医药文档需要不断的添加、修改,而且要修改的内容可能会存在于多个文档中,因此经常会出现漏改的情况,这对今后的审核就会造成极大的隐患。为了避免文档中出现漏改、错改的情况,企业在提交前会耗费大量的人力物力进行大量的文档审阅工作,但即使这样仍然还是会有许多被遗漏的问题未被发现。
发明内容
本发明针对现有技术中的不足,提供了一种医药文档结构化内容分析方法, 具体包括如下步骤:
步骤S1,将不同格式的电子文档转化为统一文档格式,按OpenXML标准对文档进行识别,对各文档内部包括但不限于页头、页尾和图片进行提取;
步骤S2,将提取出到的页头、页尾和图片XML资源转换添加至HTML预览文件,并在标题列表、段落和表格前分别添加第一标签、第二标签和第三标签;
步骤S3,根据生成的HTML预览文件,按第二标签来提取每段内容并过滤掉HTML标签生成文本内容,所述每段内容包括但不限于图片和表格,根据文档内顺序和关联关系对各段文本和表格添加位置关联标签组,生成包括文档、位置关联标签组和文本内容的结构化数据;根据第三标签提取表格数据遍历表格内每一单元格,获取包含表格各单元格的坐标和内容的结构化数据,对各表格结构化数据逐对进行比较,获取两表格中的内容一致单元格的坐标及内容,根据内容一致单元格的数量和/或分布位置来筛选出存在关联的表格并将关联表格对标签添加至位置关联标签组;
步骤S4,将所述结构化数据存储至数据库,根据输入的检索文本确认位置关联标签组,并根据所述位置关联标签组展现对应的HTML预览页面内容。
优选的,所述步骤S3还包括:对每一个结构化数据进行解析,每解析完一数据在该节点前插入一包含标签信息的锚点后保存至数据库。
优选的,所述步骤S3还包括:获取各表格的内容一致单元格数量和其在表格中的分布位置;获取各表格的最小表格矩阵,所述最小表格矩阵为包含有该表格内所有内容一致单元格的最小矩形表格区域;当内容一致单元格数量大于预设值时,和/或内容一致单元格数量的两倍要大于所在两表格所包含单元格数量之和的预设比例时,和/或内容一致单元格数量大于其所在最小表格矩阵内的单元格总数的预设比例时,判断该两表格为具有关联的关联表格对,并标记关联表格对标签。
优选的,所述步骤S3还包括:比较关联表格对的各单元格内容,根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组,所述异常单元格组包括部分或全部内容不一致单元格;对关联表格对的异常单元格组中对应单元格内容进行对比,记录单元格内容中的不一致字符集合。
优选的,所述步骤S3具体包括:
当关联表格对的两最小表格矩阵的行列数一致时,遍历最小表格矩阵的每一单元格,比较两最小表格矩阵对应位置的内容是否相同,若存在不同则将其中内容不一致单元格坐标和内容进行记录并生成异常单元格组,否则不进行记录;
当关联表格对中一表格的最小表格矩阵经转置后与另一表格的最小表格矩阵的行列数均相等时将该表格转置形成第二转置表格,比较第二转置表格最小表格矩阵与另一表格最小表格矩阵在对应位置的内容是否相同,若存在不同则将其中内容不一致单元格坐标和内容录入异常单元格组。
优选的,所述步骤比较关联表格对的各单元格内容,根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组,还包括:如果最小表格矩阵的行数和列数相同,则将关联表格对中的一表格转置形成第一转置表格;将另一表格的最小表格矩阵与该第一转置表格的最小表格矩阵进行比较并获取不一致单元格数量;比较转置前后分别获得的不一致单元格数量,将数量较小的作为该关联表格对的异常单元格组数据。
优选的,所述步骤S4还包括:将输入的检索文本与异常单元格组中不一致单元格内容进行比较;如果异常单元格中存在检索文本,则根据对应关联表格对标签获取关联表格对;将该关联表格对和异常单元格在HTML预览页面中进行标记处理。
本发明还公开了一种医药文档结构化内容分析系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现如上述任一所述医药文档结构化内容分析方法的步骤。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一所述医药文档结构化内容分析方法的步骤。
本发明公开的医药文档结构化内容分析方法,通过对Word文档进行解析和生成HTML文件,并对HTML预览文件做特殊处理后用于后续根据结构化内容定位预览,同时通过提取Word的结构化数据,将word文档内的段落、标题、表格内容作为结构化数据进行保存,并为各结构化数据打上标签,通过对文档使用结构化解析后,不仅可以利用数据库的搜索能力,还能更好的对上下文内容进行隔离,准确缩小搜索范围。同时对文档内的各表格数据进行关联分析,建立内容一致单元格形成的关联表格对,通过自定义预设准则判断两个表格是否为关联表格对。后续通过仅对关联表格对进行后续对比分析,发现文档中的相似段落变化、表格行或列丢失、表格行或列顺序不一至、表格单元格数值变化等情况,帮助文档处理人员更快更便捷的查询文档内容以发现文档问题,高效完成药品申报工作。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本实施例公开的医药文档结构化内容分析方法的流程示意图。
图2 为本实施例公开的步骤S3的具体流程示意图。
图3为本实施例公开的待分析表格的转化示意图。
图4为本实施例公开的步骤S32的具体流程示意图。
图5为本实施例公开的步骤S33在状态一时的具体流程示意图。
图6为本实施例公开的步骤S33在状态二时的具体流程示意图。
图7为本实施例公开的步骤S33在状态三的一种情形时的具体流程示意图。
图8为本实施例公开的步骤S33在状态三另一情形时的具体流程示意图。
图9为本实施例公开的步骤S33在状态四的一种情形时的具体流程示意图。
图10为本实施例公开的步骤S33在状态四另一情形时的具体流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接 ;可以是机械连接,也可以是电连接 ;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
由于医药文档是在新药申报的几年时间中积累下的宝贵资料,消耗了企业大量时间金钱和人力物力,是企业的核心机密材料,因此企业内部会对这些文档进行严格的管控,管理文件的服务器也绝不可以连接外网,所以许多云服务器的在线编辑功能都不能使用,只能选择那些能私有部署的文档管理系统。另外如果需要安装客户端才能使用的话,在后面更新是一个非常麻烦的问题,所以企业内部更倾向于使用B/S架构的产品。而目前支持私有化部署的文档服务系统不支持完全转成HTML文档,也不支持二次开发。而生成HTML后的Word文档是一个非常友好、开放的文档结构,并可以做许多二次开发。因此企业急需一些能将word文档转换成HTML,并使得最终的预览效果更接近原Word内容,在保证文档安全的前提下为药企审核人员提供文档审核工作的系统。为解决上述问题,本发明公开了一种医药文档结构化内容分析方法和系统,如附图1所示,本实施例公开的医药文档结构化内容分析方法,具体包括:
步骤S1,将不同版本格式的电子文档转化为统一文档格式,按OpenXML标准对文档进行识别提取,对各文档内部的包括但不限于页头、页尾和图片进行提取。
其中该电子文档主要是指word文档,由于用户使用环境复杂,有较多不确定性,需要将Word的版本进行统一处理,这样可以极大的提高文档转换的准确性和有效性,因为Word 97、2003以及2003之后不同版本,他们的OpenXML 语法有许多差异,主要表现在分页符,页头、页尾标签,序列号标识,图片标签,奇偶页标签等。主流的文档编辑软件有Office、WPS,它们保存后生成的OpenXML 也不一样,所以对Word版本进行统一预处理是。具体的,将doc、docx不同格式以及使用Microsoft Office或WPS软件创建的文件归类等处理,过滤掉doc等早期不再支持的文档,再将Word文档按OpenXML标准进行识别提取,分别提取出内部的页头、页尾、图片等,用于后面转换成HTML预览文件。
步骤S2,将提取出到的页头、页尾和图片XML资源转换添加至HTML预览文件,并在标题列表、段落和表格前分别添加第一标签、第二标签和第三标签。
具体的,将提取出到的图片、页头、页尾XML资源按标准转成HTML预览文件。生成的预览可以很好解决跨平台性,也不需要额外安装客户端软件,使用浏览器即可查看预览,并且后面很多搜索、定位、高亮、框选等功能都会基于该HTML文件。所述HTML文件中以第二标签为基本单位,对每一个普通段落配置一个第二标签p,对标题列表配置第一标签li,对每一表格配置第三标签table。生成的该HTML能较好还原word排版,包括换行、字体大小、颜色、表格、图片等。
在一些具体实施例中,为提高解析转换的还原效果,本发明对Word文档的构成作了深入的分析,并将通过OpenXML语法标签内容的Word数据进行分解,通过Docx4j工具将Word内容加载到内存后转换成OpenXML结构对象,并将页头、页尾、关联的图片、段落引用等分解,根据OpenXML中标记的:id参数在程序内部做好引用,便于后续对该模块的注入和自定义解析。使用Docx4j Java开源程序解析Word文档,通过对Docx4j进行了精减,去掉excel、ppt、编辑等程序,只使用Document解析。该程序的优点是能对Word文档内容进行增、删、改,可以实现很多自动化功能,但对Word转HTML支持得不够好,未优化前的转换文档,会有页头、页尾、页码丢失,横版竖版不一致,段落缩进、列表序号不正确,段前段后间距不正确,wmf格式图片无法显示、批注丢失等众多问题,所以在本实施例中对Docx4j解析器的解析过程进行干涉,以使程序能按期望的方式解析。具体的,Docx4j工具自身也带有XSLT标签,但其自带的标签的逻辑并不完善,或者程序中对标签的解析不够,以至于会造成上述提到的一些问题,因此对Docx4j自带的XSLT标签修改可以改进一些解析效果。改进的方式是修改其现有的XSLT标签则,比如在改进页头解析时,需对XSLT增加一个对页头的识别的配置,通过<xsl:if test=”.//w:headerReference>识别OpenXML 中的w:headerReference标签,然后赋于解析这个标签输出的内容,用<div class=”header”> 标签进行包裹,并且内部具体的解析并给自定义的Java类com.mingdutech.com.xelerator.filestract.plm.docx.parser.view.CustomXsltHTMLFunctions.createPageHeader,这样在XSLT端的注入就完成了。在注入成功后,Java内部就能自定义解析这块页头的标签了,然后根据实际情况再一一对段落、图片、表格等标签解析优化,输出正确的HTML标签。
步骤S3,根据生成的HTML预览文件,按第二标签来提取每段内容并过滤掉HTML标签生成文本内容,所述每段内容包括图片和表格,根据文档内顺序和关联关系对各段文本和表格标记一位置关联标签组,生成包括文档、位置关联标签组和文本内容的结构化数据,根据第三标签提取表格数据遍历表格内每一单元格,获取包含表格各单元格的坐标和内容的结构化数据,对各表格结构化数据逐对进行比较,获取两表格中的内容一致单元格的坐标及内容,根据内容一致单元格的数量和/或分布位置来筛选出存在关联的表格并将关联表格对标签添加至位置关联标签组。
具体的,根据生成的HTML预览文件,再从中按段落来提取每段的内容,包括段落内的图片、表格,提取的每一段内容都过滤掉HTML标签生成纯净的文字内容,该内容再按文档内顺序标记一个位置关联标签组,形成一个文档+位置+文本内容的结构化数据,后续分析都将基于该结构化数据进行的。
具体的,提取Word文档结构化内容是基于HTML内容的,需要HTML解析器来解析HTML内容,因为本发明使用Jsoup工具来解析HTML提取结构化内容。CSS选择器是select(".document > p, .document > table, .document > ol, document > ul"),然后可以得到一个数组,接下来按顺序循环该列表,一个一个的处理,在循环内开始对每一个结构化数据进行解析,获得结构化数据的原始HTML内容,再使用el.text()功能取出Jsoup工具来解析HTML,得到一个完整结构化数据。每解析完一数据在该节点前插入一锚点标签,将锚点标签与内存作为一组数据保存至数据库。具体的,对每一个结构化数据进行解析,每解析完一数据在该节点前插入一锚点标签,将锚点标签与内存作为一组数据保存至数据库。在解析完一个数据后,立即在该节点前插入一个<a name=”p_1”></a>锚点标签,name里的p_1值,其中1是段落的顺序号,这样就可以为段落打顺序标记,然后分别将顺序号与内存作为一组数据保存到数据库,这样一组结构化数据就解析完成了。取表格内容也类似,在P段落选择器内再查找“table”标签,然后再依次取行的数据“table tr”,tr.innerText取出每行的文字内容,过滤掉HTML后再合并,这样就能区分表格每一行的数据,最后再合并成一个结构化数据。
在具体实施例中,该步骤中对文档内的各表格的结构化数据转化,具体还包括:根据第三标签提取表格数据遍历表格内每一单元格,将各单元格的坐标转化成第一字符串,将各单元格的内容转化成与第一字符串对应的第二字符串。
其中该表格结构化数据可以包括表格所属文档信息、表格在文档中位置、表格内单元格坐标、和/或单元格内容等信息。通过获取表格各单元格的坐标和内容,将每个表格处理成单元格坐标和单元格内容一一对应的数据结构。具体的,可以通过现有工具、方法读取Word文档中的内嵌表格,遍历表格的每一个单元格,将所有单元格的坐标以空格为分隔符,形成一个字符串;所有单元格的内容也以空格为分隔符,形成一个字符串,要保证单元格的坐标与内容一一对应。在一些具体实施例中,由于表格存在合并单元格的情况,在读取表格各单元格坐标时,要确保同一行单元格的行坐标相等,同一列单元格的列坐标相等。对于这类情况中的合并单元格产生的缺失单元格坐标,可以用空内容补充,可以是对应坐标的单元格内容为空。
其中,针对表格数据的位置关联标签组还包括关联表格对标签,如附图2所示,其中对关联表格对标签的设置步骤具体如下:
步骤S31,对各表格结构化数据逐对进行比较,获取两表格中的内容一致单元格的坐标及内容。
步骤S32,根据内容一致单元格的数量和/或分布位置来判断两表格的关联状态,对存在关联的表格对标记关联表格对标签。
如附图4所示,所述步骤S32还包括:
步骤S321,获取各表格的内容一致单元格数量和其在表格中的分布位置。
步骤S322,获取各表格的最小表格矩阵,所述最小表格矩阵为包含有该表格内所有内容一致单元格的最小矩形表格区域。
具体的,以A、B两个表格为例,取A表格结构化数据,将coordinate和content字段分别解析为两个链表,coordinateListA和contentListA。两个链表相应索引位置的坐标和内容一一对应。同样地,取B表格结构化数据解析得到coordinateListB和contentListB。遍历链表contentListA和contentListB,找到其中相等的元素;分别根据内容元素在coordinateListA和coordinateListB中找到相应的坐标。A、B表格内容一致单元格的坐标可以形成一个字典sameCell,key值为A表格一致单元格坐标,value为B表格一致单元格坐标。
将A、B表格转换为矩阵,如附图3所示,以A表格为例,图3所示表格为原始表格矩阵,根据坐标初始化A表格矩阵为原始矩阵,各元素值初始为0。根据字典sameCell,将一致单元格坐标位置的元素改写为1,以右下角1的坐标形成大矩阵。去除大矩阵上部和左侧全为0的行列得到最小表格矩阵和最小表格矩阵首元素坐标。具体的,虚线边框所包围的多个单元格组成大矩阵,灰色填充的多个单元格组成最小表格矩阵。最小表格矩阵可以看做是嵌入大表格的小表格。各矩阵坐标从0开始,上图中最小表格矩阵第一个元素[0,0]在大矩阵中的坐标为[2,2],即最小表格矩阵首元素坐标。
步骤S323,当内容一致单元格数量大于预设值时,和/或内容一致单元格数量的两倍要大于所在两表格所包含单元格数量之和的预设比例时,和/或内容一致单元格数量大于其所在最小表格矩阵内的单元格总数的预设比例时,判断该两表格为具有关联的关联表格对,并标记关联表格对标签。
具体的,得到表格A、B的矩阵后,判断两个表格A、B是否是关联表格。其中关联表格的判断规则可以根据经验和实际情况进行制定。本实施例中预设的判断规则可以为:
两个表格至少要有n个单元格内容一致,即最小表格矩阵中1的个数大于n。
一致单元格数的二倍要大于两表格单元格数和的百分之m。
A表格和B表格的最小表格矩阵的行列数要大于1,且1的个数要大于最小表格矩阵元素总数的百分之L。
只有满足上面的一个或多个规则才是关联表格,否则可能是两个无关表格。在本实施例中,其中n可以优先选择推荐值为3,m推荐值为50,L推荐值为50,当然也可根据具体文档情况另行设定。
通过对两表格的最小表格矩阵来进行分析,可以充分的考虑到部分表格内容嵌套的情形,即考虑小表格嵌入其余大表格中的情况下,只有嵌入的小表格内容才与另一表格具有关联关系,此时即需要通过获取最小表格矩阵的形式来分辨出该表格内嵌入的小表格所在区域,然后再将该嵌入表格区域与其它表格或其它表格中的嵌套区域进行比较来确定相互间的关联关系。另外,由于通常情况下,人为错误只会造成少量错误,即在关联表格中产生少量不一致单元格。因此当被分析的两表格中不一致单元格数量过多时,即两个表格差异较大,可以认为是正常的无关联的不同表格,不用呈现给用户。
通过以上步骤,遍历所有结构化后的表格,找出关联表格对,及其一致单元格坐标字典sameCell,和表格矩阵,作为下一步对比分析的输入参数。通过比较各表格的单元格内容进行表格关联分析,建立由内容一致单元格形成的最小表格矩阵,通过预设的自定义准则筛选两个表格是否为关联表格对。
在本实施例中,步骤S3中还包括步骤S33,比较关联表格对的各单元格内容,根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组,所述异常单元格组包括部分或全部内容不一致单元格;对关联表格对的异常单元格组中对应单元格内容进行对比,记录单元格内容中的不一致字符集合。
该步骤S33具体可以分成以下几种状态分别进行处理:
状态一,被判断为关联表格对的两个表格内的最小表格矩阵的行列数一致。
状态二,被判断为关联表格对的两个表格中的一个表格的最小表格矩阵进过转置后,与另一表格的最小表格矩阵的行列数一致。
状态三,被判断为关联表格对的两个表格内的最小表格矩阵的行数相差n,或列数相差n,其中n小于预设值。
状态四,被判断为关联表格对的两个表格的行数相差n,或列数相差n,其中n小于预设值。
对于状态一,步骤根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组,如附图5所示,具体包括:
步骤S3311,当关联表格对的两最小表格矩阵的行列数一致时,遍历最小表格矩阵的每一单元格。
步骤S3312,比较两最小表格矩阵对应位置的内容是否相同,若存在不同则将其中内容不一致单元格坐标和内容进行记录并生成异常单元格组,否则不进行记录。即如果两最小表格矩阵对应位置的单元格内容相同,则不进行记录。即关联表格对中没有内容错误的异常单元格。
具体的,以本实施例中关联表格对A和B为例,在A、B两表格的最小表格矩阵的行数和列数相同时。遍历最小表格矩阵的每个元素,比较A、B最小表格矩阵对应坐标的内容是否相等,分别记录A、B中所有不相等的单元格坐标和内容,同时记录该关联表格对,生成异常单元格组。该异常单元格组可采用字典数据结构DifTableCells,key值为关联表格对,如AB。value值为数组形成的链表,链表的每个元素为两个表格不一致单元格的坐标和内容,如[A单元格坐标,A单元格内容,B单元格坐标,B单元格内容]。若A、B最小表格矩阵对应坐标的内容都相等,则表格A、B内容一致,不进行记录。
对于状态一中的情形,步骤其中根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组具体还可以包括如下步骤:
步骤S3313,如果最小表格矩阵的行数和列数相同,则将关联表格对中的一表格转置形成第一转置表格。
步骤S3314,将另一表格的最小表格矩阵与该第一转置表格的最小表格矩阵进行比较并获取不一致单元格数量。
步骤S3315,比较转置前后分别获得的不一致单元格数量,将数量较小的作为该关联表格对的异常单元格组数据。
例如在本实施例中,如果A、B的最小表格矩阵行数和列数相等,也可能存在两个表格转置后内容一致的可能。将一个表格转置后,比较对应坐标的元素是否相等,得到的内容不一致单元格数量与前面的A和B表格间内容不一致单元格数量进行比较,数量较小者则为正确的比较结果。例如,在A表格转置后形成的转置表格C,遍历转置表格C和表格B的最小表格矩阵区域内的每个单元格,比较C和B的最小表格矩阵对应坐标的元素或内容是否相等,分别记录C和B最小表格矩阵中所有对应的内容不一致单元格坐标和内容,同时记录该关联表格对。如果表格A转置后形成的转置表格C与表格B的最小表格矩阵经分析后获得的内容不一致单元格数量,要小于前述步骤获得的表格A和B的最小表格矩阵的内容不一致单元格数量。则表明可能A表格的行内容刚好对应关联的是B表格的列内容,而A表格的列内容刚好对应关联的是B表格的行内容,只有这样经过转置后的表格才会比原表格与另一表格间的内容不一致单元格数量更少。通过对最小表格矩阵行数和列数相等的两表格进行转置前和转置后的两次内容不一致单元格的获取和筛选,可以有效分辨出那些仅仅是将表格行列内容进行调换的表格,此类仅对行列内容进行调换的表格可以认为是正常的内容相同的关联表格,无需呈现给用户。
对于状态二,如附图6所示,步骤根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组具体包括。
步骤S3321,当关联表格对中一表格的最小表格矩阵经转置后与另一表格的最小表格矩阵的行列数均相等时,将该表格转置形成第二转置表格。
步骤S3322,比较第二转置表格最小表格矩阵与另一表格最小表格矩阵在对应位置的内容是否相同,若存在不同则将其中内容不一致单元格坐标和内容录入异常单元格组。
具体的,在本实施例中,即当A、B最小表格矩阵中的一个转置后,两个矩阵的行列数一致的情况下。对于该情况,将一个表格转置后 ,再遍历最小表格矩阵内的每个单元格,比较A、B最小表格矩阵对应坐标的单元格内容或元素是否相等,分别记录A、B中所有不相等的单元格坐标和内容,同时记录该关联表格对,生成或录入异常单元格组中,其中异常单元格组的数据格式可参数前述步骤。若比较结果都相等,则表格A、B内容一致,不进行记录。在本实施例中,当A和B的最小表格矩阵中的一个转置后,两个矩阵的行列数一致,即表明A表格中嵌套的小表格与B表格中嵌套的小表格上的内容很有可能仅仅只是行内容和列内容间进行了互相替换,而表格行列内容的转换仅仅只是表现方式的不同,可以认为是正常的内容相同的关联表格,无需呈现给用户,只需将其中一小表格经过转置后与另一小表格进行对应比对,找出真正的内容不一致单元格并呈现给用户即可。
对于状态三中的两个表格内最小表格矩阵的行数相差n,如附图7所示,步骤根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组具体包括:
步骤S3331,当关联表格对中的第一表格最小表格矩阵的行数比第二表格的最小表格矩阵多N行,且N小于预设值时,获取第一表格最小表格矩阵中不一致单元格最多的N行,并记录这N行各单元格的坐标和内容。
步骤S3332,在第一表格的最小表格矩阵中去除该N行后形成过渡表格矩阵。
步骤S3333,依次比较过渡表格矩阵与第二表格最小表格矩阵对应位置的单元格内容是否相同,若存在不相同单元格则生成或录入异常单元格组,所述异常单元格组包括但不限于关联表格对、过渡表格矩阵与第二表格中内容不一致单元格坐标和内容、以及所述N行单元格的坐标和内容。
其中在本实施例中,n值可以根据实际使用环境进行预先设定,在本实施例中以n为2进行举例说明。具体的,当A和B的最小表格矩阵行数相差超过2行时,认为A和B两个表格不是关联表格,不进行对比分析。以A的最小表格矩阵比B的最小表格矩阵多一行的情况来具体说明。找出A的最小表格矩阵中“0”最多的一行,该行则为多出来的一行,记录该行各单元格元素的坐标和内容。在A的最小表格矩阵中去除该行,将该行下方的各元素上移,形成表格A’。比较A’ 的最小表格矩阵和B的最小表格矩阵对应坐标的单元格内容或元素是否相等,如不相等则分别记录所有不相等的单元格坐标和内容,同时记录该关联表格对,生成或录入异常单元格组中,其中异常单元格组包括但不限于关联表格对、过渡表格矩阵与第二表格中内容不一致单元格坐标和内容、以及多出来的N行单元格的坐标和内容。其它相差行的情况可以参照上述方法进行对比分析。
对于状态三中的两个表格内最小表格矩阵的列数相差n,如附图8所示,步骤根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组具体包括:
步骤S3341,当关联表格对中的第一表格最小表格矩阵的列数比第二表格的最小表格矩阵多N列,且N小于预设值时,获取第一表格最小表格矩阵中不一致单元格最多的N列,并记录这N列各单元格的坐标和内容。
步骤S3342,在第一表格的最小表格矩阵中去除该N列后形成过渡表格矩阵。
步骤S3343,依次比较过渡表格矩阵与第二表格最小表格矩阵对应位置的单元格内容是否相同,若存在不相同单元格则生成或录入异常单元格组,所述异常单元格组包括但不限于关联表格对、过渡表格矩阵与第二表格中内容不一致单元格坐标和内容、以及所述N列单元格的坐标和内容。
其中在本实施例中,n值可以根据实际使用环境进列预先设定,在本实施例中以n为2进列举例说明。具体的,当A和B的最小表格矩阵列数相差超过2列时,认为A和B两个表格不是关联表格,不进列对比分析。以A的最小表格矩阵比B的最小表格矩阵多一列的情况来具体说明。找出A的最小表格矩阵中“0”最多的一列,该列则为多出来的一列,记录该列各单元格元素的坐标和内容。在A的最小表格矩阵中去除该列,将该列右侧的各元素左移,形成表格A’。比较A’ 的最小表格矩阵和B的最小表格矩阵对应坐标的单元格内容或元素是否相等,如不相等则分别记录所有不相等的单元格坐标和内容,同时记录该关联表格对,生成或录入异常单元格组中,其中异常单元格组包括但不限于关联表格对、过渡表格矩阵与第二表格中内容不一致单元格坐标和内容、以及多出来的N列单元格的坐标和内容。其它相差列的情况可以参照上述方法进列对比分析。
在本实施例中,当表格A和B的最小表格矩阵的行数或者列数相差为n行或n列时。即表明A表格中嵌套的小表格与B表格中嵌套的小表格上的内容上成行的或成列的单元格不一致很可能是由于在具体表格处理时由于人为疏忽导致表格内某一些行列顺序错乱和行列丢失产生的。因此需要首先排除掉这些因人为错误导致的嵌套表格内成行或成列的不一致单元格后,再进行对应的单元格内容的比对分析,避免其它单元格比对受到这些整行或整列不一致单元格的影响,从而能更加精确和快速的找到这些可能的因行列顺序错乱或行列丢失造成的内容不一致单元格,以及其它因输入错误导致的单个内容不一致单元格。
对于状态四的其中一种情形,即关联表格对的两个表格的列数相差n,其中n小于预设值。如附图9所示,步骤根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组,具体包括:
步骤S3351,当两表格的列数相差大于R时,其中R为预设值,认为两个表格不是关联表格,不进列对比分析。
步骤S3352,否则当两表格的列数相差n列时,其中n不大于R,获取具有较多列数的表格中的全部为不一致单元格的列位置,如果该列部分或全部位于该表格的最小表格矩阵内,则按前述状态三的步骤进行处理。
步骤S3353,如果该列位于该表格的最小表格矩阵外,则记录该列所有单元格坐标和内容,生成或录入该关联表格对的异常单元格组中。
具体的,在本实施例中,由于表格最小表格矩阵是去除了四周的不一致单元格形成的,而两个表格可能存在四周的最外层相差行列的情况。R值可以根据实际情况指定,在该实施例中设定R为2,例如当表格A和B相差超过2时,认为两个表格不是关联表格,不进行对比分析。以表格A比表格B多一列的情况来具体说明。判断A比B多出的一列是第一列还是最后一列,若多出的一列不再两侧,则属于情况3,已经分析处理。判断表格A第一列是否全部为0,若是则第一列为多出的一列,若否则判断最后一列是否全部为0,若是则最后一列为多出的一列,若否则多出的一列不在表格两侧,属于状态三,不再进行对比分析。找多出的一列后,若DifTableCells中已存在该关联表格对A、B,则将value增加该列单元格的坐标和内容;若DifTableCells中不存在该关联表格对A、B,则将关联表格对A B,及该列单元格的坐标和内容加入字典DifTableCells中,其中表格B对应单元格的坐标和内容为空。
对于状态四的另一种情形,即关联表格对的两个表格的行数相差n,其中n小于预设值。如附图10所示,步骤根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组,具体包括:
步骤S3361,当两表格的行数相差大于R时,其中R为预设值,认为两个表格不是关联表格,不进行对比分析。
步骤S3362,否则当两表格的行数相差n行时,其中n不大于R,获取具有较多行数的表格中的全部为不一致单元格的行位置,如果该行部分或全部位于该表格的最小表格矩阵内,则按前述状态三的步骤进行处理。
步骤S3363,如果该行位于该表格的最小表格矩阵外,则记录该行所有单元格坐标和内容,生成或录入该关联表格对的异常单元格组中。
具体的,在本实施例中,由于表格最小表格矩阵是去除了四周的不一致单元格形成的,而两个表格可能存在四周的最外层相差行行的情况。R值可以根据实际情况指定,在该实施例中设定R为2,例如当表格A和B相差超过2时,认为两个表格不是关联表格,不进行对比分析。以表格A比表格B多一行的情况来具体说明。判断A比B多出的一行是第一行还是最后一行,若多出的一行不再两侧,则属于情况3,已经分析处理。判断表格A第一行是否全部为0,若是则第一行为多出的一行,若否则判断最后一行是否全部为0,若是则最后一行为多出的一行,若否则多出的一行不在表格两侧,属于状态三,不再进行对比分析。找多出的一行后,若DifTableCells中已存在该关联表格对A、B,则将value增加该行单元格的坐标和内容;若DifTableCells中不存在该关联表格对A、B,则将关联表格对A B,及该行单元格的坐标和内容加入字典DifTableCells中,其中表格B对应单元格的坐标和内容为空。上述各步骤中得到的字典DifTableCells可作为下面步骤S4差异内容处理的输入参数。
对比分析算法可以考虑小表格嵌入大表格,表格行列转置,表格行列顺序错乱,表格内部及四周行列缺失的情况,找出关联表格对的不一致单元格坐标及位置。
上述步骤S33的表格对比分析充分考虑了小表格嵌入大表格,表格行列转置,表格行列顺序错乱,表格内部及四周行列缺失的情况,找出关联表格对的不一致单元格坐标及位置,对各类表格的适用性和通用性更强,可以帮助用户对各种类型的表格进行对比分析。
最后,对关联表格对的异常单元格组中对应单元格内容进行对比,找出并标记单元格内容中的不一致字符集合。
具体的,通过对上述的关联表格对根据内容不一致单元格数量进行筛选,同时对内容不一致单元格的内容进行对比,找出并标记单元格内容中不一致的字符集合。由于通常情况下,人为错误只会造成少量错误,产生少量不一致单元格。当关联表格对中不一致单元格数量过多时,两个表格差异较大,可以认为是正常的不同表格,不呈现给用户。除去这种情况外,可以认为是各种原因造成的异常表格,需要呈现给用户进行关注。
通过遍历异常单元格组,即遍历字典DifTableCells,首先去除由于行列缺失而产生的不一致单元格,即去除字典value值链表中A表格单元格坐标为空或B表格单元格坐标为空的数组元素。然后再去除由于行列顺序错乱而产生的不一致单元格。A、B表格差异结果去除由于行列缺失而产生的不一致单元格后的不一致单元格链表为difCell,数据结构为List<String[ ]>,其中数组String[ ]为[A单元格坐标,A单元格内容,B单元格坐标,B单元格内容]。取出difCell中的所有A单元格坐标,采用表格转换为最小表格矩阵的方法,转换为差异结果最小表格矩阵difMA,对于该最小表格矩阵,元素值为1的坐标代表不一致单元格的坐标。存在两列单元格顺序错乱的充要条件是difMA中有两列值全部为1,交换这两列单元格的列坐标后与B表格相应单元格的内容相等。存在两行单元格顺序错乱的充要条件是difMA中有两行值全部为1,交换这两行单元格的行坐标后与B表格相应单元格的内容相等。存在大于2列或2行单元格顺序错乱的情况可参考上述条件进行扩展。推荐最多考虑3行或3列单元格顺序错乱的情况,其它情况认为是正常的不同表格,不呈现给用户。根据上述充要条件判断,找出行列顺序错乱的单元格,从difCell中去除这些单元格,最终剩下的单元格数量即为真实不一致单元格数量。从字典DifTableCells中去除真实不一致单元格数量大于n的关联表格对,剩下的结果即为需要呈现给用户的差异表格对。
进一步的,由于两个对应不一致单元格的内容可能很多很相似,用户难以快速发现两个单元格内容的真正不一致处。所以需要对差异表格对的对应不一致单元格内容进行对比分析,标识出不一致的字符集合。
上述步骤根据真实不一致单元格数量再次过滤筛选分析结果,可以排除行列顺序错乱和行列缺失产生的不一致单元格,根据找出的真实不一致单元格,及不一致单元格内容的不一致字符集合。筛选出真正异常的表格对,和不一致单元格内的不一致字符集合,减少呈现给用户的结果数量,便于用户快速排查发现错误、异常表格。同时对不一致单元格的内容进行对比分析,可以找出并高亮不一致的字符集合,便于用户发现表格异常内容。
通过提取表格单元格坐标和内容形成表格结构化数据,确保同一行列单元格的行列坐标一致,为后续分析做准备。然后对各表格进行表格关联分析,建立内容一致单元格形成的关联表格对,通过自定义预设准则判断两个表格是否为关联表格对。后续通过仅对关联表格对进行后续对比分析,大大减少对比分析的计算量。在对关联表格对进行对比分析过程中,充分考虑小表格嵌入大表格,表格行列转置,表格行列顺序错乱,表格内部及四周行列缺失等各类情况,根据关联表格对各情况状态分别进行分析,找出关联表格对的不一致单元格坐标及位置。最后异常结果处理步骤可以通过排除行列顺序错乱和行列缺失产生的不一致单元格,根据找出的真实不一致单元格、及不一致单元格内容中的不一致字符集合,筛选出真正异常的表格对以及不一致单元格内不一致字符集合,最终减少呈现给用户的结果数量,便于用户快速排查发现错误、异常表格。可以实现对word文档内众多表格的对比分析,发现和定位关联表格不一致的单元格及单元格内容差异。适用于在药品申报环节中需要处理大量包含有相似表格的电子文档,且表格多处嵌套、复用的场景,可以减少人工检查表格一致性的大量重复性工作,避免关联表格对应单元格内容不一致的错误。
步骤S4,将所述结构化数据存储至数据库,根据输入的检索文本确认位置关联标签,并根据所述位置关联标签展现对应的HTML预览页面内容。
具体的,该步骤S4还包括:
将输入的检索文本与异常单元格组中不一致单元格内容进行比较。
如果异常单元格中存在检索文本,则根据对应关联表格对标签获取关联表格对。
将该关联表格对和异常单元格在HTML预览页面中进行标记处理。
在按文档提取完结构化内容后,将结构化内容按一定的形式存储到数据库中,之后的分析都会基于该库进行。其中数据库可以采用ElasticSearch非关系型数据库,由于每一个结构化数据都需要与其它所有结构化数据进行比较分析,所以计算量是非常大的,而ElasticSearch可很好的满足这个要求。在用户搜索到想要的结果后,想要进一步查看该差异点所在文档的位置,就可以打开HTML预览页面,页面会自动定位到相应位置。因为在分析的时候已经记录下段落位置,而在搜索的结果里也会将该位置携带回来,预览时就能快捷的找到该段落所在文档中的位置,然后通过HTML锚点功能自动定位。
上述各实施例公开的医药文档结构化内容分析方法,通过对Word文档进行解析和生成HTML文件,并对HTML预览文件做特殊处理后用于后续根据结构化内容定位预览,同时通过提取Word的结构化数据,将word文档内的段落、标题、表格内容作为结构化数据进行保存,并为各结构化数据打上标签,通过对文档使用结构化解析后,不仅可以利用数据库的搜索能力,还能更好的对上下文内容进行隔离,准确缩小搜索范围。同时对文档内的各表格数据进行关联分析,建立内容一致单元格形成的关联表格对,通过自定义预设准则判断两个表格是否为关联表格对。后续通过仅对关联表格对进行后续对比分析,发现文档中的相似段落变化、表格行或列丢失、表格行或列顺序不一至、表格单元格数值变化等情况,帮助文档处理人员更快更便捷的查询文档内容以发现文档问题,高效完成药品申报工作。
在另一些实施例中,还提供了一种医药文档结构化内容分析系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述各实施例中描述的医药文档结构化内容分析方法的各个步骤。
其中医药文档结构化内容分析系统可包括但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是医药文档结构化内容分析系统的示例,并不构成对医药文档结构化内容分析系统设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述医药文档结构化内容分析系统设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述医药文档结构化内容分析系统设备的控制中心,利用各种接口和线路连接整个医药文档结构化内容分析系统设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述医药文档结构化内容分析系统设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(FlashCard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述医药文档结构化内容分析系统如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个医药文档结构化内容分析方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
Claims (7)
1.一种医药文档结构化内容分析方法,其特征在于,包括如下步骤:
S1,将不同格式的电子文档转化为统一文档格式,按OpenXML标准对文档进行识别,对各文档内部包括但不限于页头、页尾和图片进行提取;
S2,将提取出到的页头、页尾和图片XML资源转换添加至HTML预览文件,并在标题列表、段落和表格前分别添加第一标签、第二标签和第三标签;
S3,根据生成的HTML预览文件,按第二标签来提取每段内容并过滤掉HTML标签生成文本内容,所述每段内容包括但不限于图片和表格,根据文档内顺序和关联关系对各段文本和表格添加位置关联标签组,生成包括文档、位置关联标签组和文本内容的结构化数据;
根据第三标签提取表格数据遍历表格内每一单元格,获取包含表格各单元格的坐标和内容的结构化数据,对各表格结构化数据逐对进行比较,获取各表格的内容一致单元格数量和其在表格中的分布位置,并获取各表格的最小表格矩阵,所述最小表格矩阵为包含有该表格内所有内容一致单元格的最小矩形表格区域;当内容一致单元格数量大于预设值时,和/或内容一致单元格数量的两倍要大于所在两表格所包含单元格数量之和的预设比例时,和/或内容一致单元格数量大于其所在最小表格矩阵内的单元格总数的预设比例时,判断该两表格为具有关联的关联表格对,标记关联表格对标签添加至位置关联标签组;
S4,将所述结构化数据存储至数据库,根据输入的检索文本确认位置关联标签组,并根据所述位置关联标签组展现对应的HTML预览页面内容。
2.根据权利要求1所述的医药文档结构化内容分析方法,其特征在于:所述步骤S3还包括:
对每一个结构化数据进行解析,每解析完一数据在节点前插入一包含标签信息的锚点后保存至数据库。
3.根据权利要求2所述的医药文档结构化内容分析方法,其特征在于,所述步骤S3还包括:
比较关联表格对的各单元格内容,根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组,所述异常单元格组包括部分或全部内容不一致单元格;
对关联表格对的异常单元格组中对应单元格内容进行对比,记录单元格内容中的不一致字符集合。
4.根据权利要求3所述的医药文档结构化内容分析方法,其特征在于,所述步骤比较关联表格对的各单元格内容,根据内容不一致单元格的分布位置筛选出关联表格对上的异常单元格组,具体包括:
当关联表格对的两最小表格矩阵的行列数一致时,遍历最小表格矩阵的每一单元格,比较两最小表格矩阵对应位置的内容是否相同,若存在不同则将其中内容不一致单元格坐标和内容进行记录并生成异常单元格组,否则不进行记录;
当关联表格对中一表格的最小表格矩阵经转置后与另一表格的最小表格矩阵的行列数均相等时将该表格转置形成第二转置表格,比较第二转置表格最小表格矩阵与另一表格最小表格矩阵在对应位置的内容是否相同,若存在不同则将其中内容不一致单元格坐标和内容录入异常单元格组。
5.根据权利要求4所述的医药文档结构化内容分析方法,其特征在于,所述步骤S4还包括:
将输入的检索文本与异常单元格组中不一致单元格内容进行比较;
如果异常单元格中存在检索文本,则根据对应关联表格对标签获取关联表格对;
将该关联表格对和异常单元格在HTML预览页面中进行标记处理。
6.一种医药文档结构化内容分析系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1-5任一所述方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-5任一所述方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010739949.9A CN111626030A (zh) | 2020-07-28 | 2020-07-28 | 一种用于医药行业的表格差异化内容分析方法、系统和存储介质 |
CN2020107399499 | 2020-07-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112528602A CN112528602A (zh) | 2021-03-19 |
CN112528602B true CN112528602B (zh) | 2021-05-04 |
Family
ID=72258620
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010739949.9A Withdrawn CN111626030A (zh) | 2020-07-28 | 2020-07-28 | 一种用于医药行业的表格差异化内容分析方法、系统和存储介质 |
CN202011113500.8A Active CN112214977B (zh) | 2020-07-28 | 2020-10-17 | 一种用于医药行业的表格差异化内容分析方法、系统和存储介质 |
CN202110165078.9A Pending CN112861489A (zh) | 2020-07-28 | 2021-02-06 | 一种对word文档进行处理的方法和装置 |
CN202110173633.2A Active CN112528602B (zh) | 2020-07-28 | 2021-02-06 | 一种医药文档结构化内容分析方法、系统和存储介质 |
CN202110224175.0A Pending CN112949279A (zh) | 2020-07-28 | 2021-02-27 | 一种电子文档中的异常数据分析方法、系统和存储介质 |
CN202110221496.5A Pending CN112883701A (zh) | 2020-07-28 | 2021-02-27 | 一种药品申报文件的自动查验方法、系统和存储介质 |
CN202110221497.XA Pending CN112883702A (zh) | 2020-07-28 | 2021-02-27 | 一种药品申报文件的对比分析方法、系统和存储介质 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010739949.9A Withdrawn CN111626030A (zh) | 2020-07-28 | 2020-07-28 | 一种用于医药行业的表格差异化内容分析方法、系统和存储介质 |
CN202011113500.8A Active CN112214977B (zh) | 2020-07-28 | 2020-10-17 | 一种用于医药行业的表格差异化内容分析方法、系统和存储介质 |
CN202110165078.9A Pending CN112861489A (zh) | 2020-07-28 | 2021-02-06 | 一种对word文档进行处理的方法和装置 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110224175.0A Pending CN112949279A (zh) | 2020-07-28 | 2021-02-27 | 一种电子文档中的异常数据分析方法、系统和存储介质 |
CN202110221496.5A Pending CN112883701A (zh) | 2020-07-28 | 2021-02-27 | 一种药品申报文件的自动查验方法、系统和存储介质 |
CN202110221497.XA Pending CN112883702A (zh) | 2020-07-28 | 2021-02-27 | 一种药品申报文件的对比分析方法、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (7) | CN111626030A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111626030A (zh) * | 2020-07-28 | 2020-09-04 | 浙江明度智控科技有限公司 | 一种用于医药行业的表格差异化内容分析方法、系统和存储介质 |
CN113297425B (zh) * | 2021-06-22 | 2023-09-12 | 超凡知识产权服务股份有限公司 | 文档转换方法、装置、服务器及存储介质 |
CN113536751B (zh) * | 2021-06-30 | 2023-09-22 | 北京百度网讯科技有限公司 | 表格数据的处理方法、装置、电子设备和存储介质 |
CN113591438B (zh) * | 2021-07-30 | 2024-01-12 | 远光软件股份有限公司 | 文本转换方法、电子设备及计算机可读存储装置 |
CN117331560B (zh) * | 2023-11-24 | 2024-02-23 | 杭银消费金融股份有限公司 | 一种前端表单页面生成方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855243A (zh) * | 2011-06-28 | 2013-01-02 | 北大方正集团有限公司 | 用于提取文档结构的方法和装置 |
CN108153717A (zh) * | 2017-12-29 | 2018-06-12 | 北京仁和汇智信息技术有限公司 | 一种科技期刊论文word文档的结构化处理方法及装置 |
CN111062187A (zh) * | 2019-11-27 | 2020-04-24 | 北京计算机技术及应用研究所 | 一种对docx格式文档进行结构化解析方法及系统 |
CN111352898A (zh) * | 2020-05-25 | 2020-06-30 | 浙江明度智控科技有限公司 | 一种药品申报文档的智能归档方法和系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976232B (zh) * | 2010-09-19 | 2012-06-20 | 深圳市万兴软件有限公司 | 一种识别文档中数据表格的方法及装置 |
CN103198069A (zh) * | 2012-01-06 | 2013-07-10 | 株式会社理光 | 抽取关系型表格的方法和装置 |
US10706218B2 (en) * | 2016-05-16 | 2020-07-07 | Linguamatics Ltd. | Extracting information from tables embedded within documents |
CN111259873B (zh) * | 2020-04-26 | 2021-02-26 | 江苏联著实业股份有限公司 | 一种表格数据提取方法及装置 |
CN111353004A (zh) * | 2020-05-25 | 2020-06-30 | 浙江明度智控科技有限公司 | 一种药品文档的数据关联分析方法和系统 |
CN111382184A (zh) * | 2020-05-25 | 2020-07-07 | 浙江明度智控科技有限公司 | 一种对药品文档进行校验的方法和药品文档校验系统 |
CN111353005A (zh) * | 2020-05-25 | 2020-06-30 | 浙江明度智控科技有限公司 | 一种药品研发申报文档管理方法和系统 |
CN111626030A (zh) * | 2020-07-28 | 2020-09-04 | 浙江明度智控科技有限公司 | 一种用于医药行业的表格差异化内容分析方法、系统和存储介质 |
-
2020
- 2020-07-28 CN CN202010739949.9A patent/CN111626030A/zh not_active Withdrawn
- 2020-10-17 CN CN202011113500.8A patent/CN112214977B/zh active Active
-
2021
- 2021-02-06 CN CN202110165078.9A patent/CN112861489A/zh active Pending
- 2021-02-06 CN CN202110173633.2A patent/CN112528602B/zh active Active
- 2021-02-27 CN CN202110224175.0A patent/CN112949279A/zh active Pending
- 2021-02-27 CN CN202110221496.5A patent/CN112883701A/zh active Pending
- 2021-02-27 CN CN202110221497.XA patent/CN112883702A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855243A (zh) * | 2011-06-28 | 2013-01-02 | 北大方正集团有限公司 | 用于提取文档结构的方法和装置 |
CN108153717A (zh) * | 2017-12-29 | 2018-06-12 | 北京仁和汇智信息技术有限公司 | 一种科技期刊论文word文档的结构化处理方法及装置 |
CN111062187A (zh) * | 2019-11-27 | 2020-04-24 | 北京计算机技术及应用研究所 | 一种对docx格式文档进行结构化解析方法及系统 |
CN111352898A (zh) * | 2020-05-25 | 2020-06-30 | 浙江明度智控科技有限公司 | 一种药品申报文档的智能归档方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112883702A (zh) | 2021-06-01 |
CN112214977A (zh) | 2021-01-12 |
CN112883701A (zh) | 2021-06-01 |
CN112528602A (zh) | 2021-03-19 |
CN112949279A (zh) | 2021-06-11 |
CN112214977B (zh) | 2024-04-19 |
CN111626030A (zh) | 2020-09-04 |
CN112861489A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112528602B (zh) | 一种医药文档结构化内容分析方法、系统和存储介质 | |
Jin et al. | Foofah: Transforming data by example | |
US9690770B2 (en) | Analysis of documents using rules | |
CN102713834B (zh) | 管理记录格式信息 | |
US7657832B1 (en) | Correcting validation errors in structured documents | |
US20150026556A1 (en) | Systems and Methods for Extracting Table Information from Documents | |
US20110137900A1 (en) | Method to identify common structures in formatted text documents | |
US20130198605A1 (en) | Document Merge Based on Knowledge of Document Schema | |
US20100185684A1 (en) | High precision multi entity extraction | |
US20080313120A1 (en) | Enabling validation of data stored on a server system | |
CN111859895A (zh) | 一种对批量文档内表格进行比对的方法、系统和存储介质 | |
CN111738224B (zh) | 一种针对药品文档内容的智能分析方法、系统和存储介质 | |
US20220198133A1 (en) | System and method for validating tabular summary reports | |
US7873902B2 (en) | Transformation of versions of reports | |
CN109636303B (zh) | 一种半自动提取和结构化文档信息的存储方法及系统 | |
CN117272953B (zh) | 一种文档信息自动填充方法、系统和存储介质 | |
Goldfarb et al. | Macro To Produce SAS®-Readable Table of Content From TLF Shells | |
CN117454851B (zh) | 一种面向pdf文档的表格数据抽取方法及装置 | |
CN108256110A (zh) | 情报信息的搜集方法、装置、计算机设备和存储介质 | |
JP2020502687A (ja) | 特許クレームにおける参照を特定するためのシステム及び方法 | |
CN113094265B (zh) | 测试脚本的分析方法及分析装置、电子设备 | |
JP5169505B2 (ja) | 文書合成システム及びプログラム | |
CN117610503A (zh) | 一种word文档页眉数据更新方法、装置和服务器 | |
CN117744615A (zh) | 表单数据处理方法、装置、电子设备及可读存储介质 | |
CN114757148A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310056 room 1701, 17th floor, building 3, No. 316, Jianghong South Road, Changhe street, Binjiang District, Hangzhou, Zhejiang Patentee after: Mingdu Zhiyun (Zhejiang) Technology Co.,Ltd. Address before: 310000 1, 3 building, No. 316 Jianghong Road, Changhe street, Binjiang District, Hangzhou, Zhejiang. Patentee before: ZHEJIANG MINGDU INTELLIGENT CONTROL TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |