一种针对药品文档内容的智能分析方法、系统和存储介质转让专利
申请号 : CN202010737944.2
文献号 : CN111738224B
文献日 : 2020-12-08
发明人 : 葛亚飞 , 王立君 , 林加旗 , 魏巍 , 包卿
申请人 : 浙江明度智控科技有限公司
摘要 :
权利要求 :
1.一种针对药品文档内容的智能分析方法,用于对文档内的表格内容差异进行分析,其特征在于,包括:S1,分别获取待分析的第一表格和第二表格内的单元格坐标和内容,识别内容一致单元格;
S2,分别获取第一表格和第二表格的最小表格矩阵,所述最小表格矩阵为包含表格内所有内容一致单元格的最小矩形表格区域;
S3,根据两表格的最小表格矩阵间差异与两表格的最小表格矩阵在对应表格中的位置,获取异常单元格组,所述异常单元格组包括但不限于内容不一致单元格坐标和内容,具体包括:当两表格最小表格矩阵的行列数一致时,遍历最小表格矩阵的每一单元格,比较两最小表格矩阵对应位置的内容是否相等,若相等则不记录所述异常单元格组,否则记录异常单元格组;
当第二表格最小表格矩阵经转置后与第一表格最小表格矩阵的行数和列数均相等时,将第二表格转至形成第二转置表格;比较第二转置表格和第一表格的两最小表格矩阵对应位置的内容是否相等,若相等则不记录所述异常单元格组,否则记录异常单元格组;
S4,将异常单元格组中内容不一致单元格的内容进行对比,找出并标记单元格内容中不一致的字符集合。
2.根据权利要求1所述的针对药品文档内容的智能分析方法,其特征在于,所述步骤S3具体包括:S31,分别获取所述第一表格和第二表格的行数和列数;
S32,当所述第一表格与第二表格的行数或列数差值小于预设值时,根据两表格的最小表格矩阵间差异与在对应表格中的位置来获取所述异常单元格组,否则不进行后续差异分析。
3.根据权利要求2所述的针对药品文档内容的智能分析方法,其特征在于,在所述第一表格与第二表格的行数或列数差值小于预设值时,所述步骤S32还包括:S103,若最小表格矩阵的行数和列数相同,则将第一表格转置形成第一转置表格;
S104,将第二表格的最小表格矩阵与所述第一转置表格的最小表格矩阵进行比较并识别内容不一致单元格;
S105,如果不存在内容不一致单元格则不进行后续差异分析,否则生成第二异常单元格组,所述第二异常单元格组包括但不限于第一转置表格最小表格矩阵和第二表格最小表格矩阵间内容不一致单元格坐标和内容。
4.根据权利要求3所述的针对药品文档内容的智能分析方法,其特征在于,所述步骤S32还包括:S106,将第一、二表格的两最小表格矩阵间不一致单元格数量,与第一转置表格和第二表格的两最小表格矩阵的不一致单元格数量进行比较;
S107,如果第一转置表格和第二表格的两最小表格矩阵间不一致单元格数量较小,则获取第一转置表格和第二表格的两最小表格矩阵间不一致单元格坐标和内容,并更新所述异常单元格组中的第一、二表格对应的内容不一致单元格坐标和内容;
S108,如果第一转置表格和第二表格的两最小表格矩阵间不一致单元格数量不小于第一、二表格的两最小表格矩阵间不一致单元格数量,则不对所述异常单元格组进行更新。
5.根据权利要求4所述的针对药品文档内容的智能分析方法,其特征在于:所述比较第二转置表格和第一表格的两最小表格矩阵对应位置的内容是否相等,若相等则不记录所述异常单元格组,否则记录异常单元格组,具体包括:若第二转置表格和第一表格的两最小表格矩阵存在内容不一致单元格,则将所述内容不一致单元格的坐标和内容记录到第一、二表格对应的异常单元格组中。
6.根据权利要求1-5任一所述的针对药品文档内容的智能分析方法,其特征在于:所述第一表格和第二表格位于不同电子文档内。
7.一种智能分析系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求
1-6任一所述方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-6任一所述方法的步骤。
说明书 :
一种针对药品文档内容的智能分析方法、系统和存储介质
技术领域
背景技术
本管理服务器做版本管理。在日常的一些领域的文字处理工作中,经常需要处理大量的文
档,而这些文档中又存在大量表格,这些表格具有相似度高,相互引用、嵌套的情况,同时由
于处理工作量大等原因,经常需要多个用户协作进行文档编辑。例如,药企研发机构在准备
整理药品申报资料时存在大量文档,文档中存在大量表格。这些表格存在相似度高、相互引
用、和嵌套等各类情况。同时,由于这些关联表格由多人人为整理,往往存在对应单元格内
容不一致、表格行列丢失、表格行列顺序错乱等各种错误情况。但是由于表格众多,而其分
布在大量不同文档中,这就造成后期人为检查的工作量极大,且上述错误情况难以发现,最
终直接导致资料错误,合规性需求难以满足,严重拖延了药品申报进度。
发明内容
异分析。
小表格矩阵间内容不一致单元格坐标和内容。
新所述异常单元格组中的第一、二表格对应的内容不一致单元格坐标和内容;
新。
应的异常单元格组中。
任一所述针对药品文档内容的智能分析方法的步骤。
析方法的步骤。
比分析,大大减少对比分析的计算量。在对两表格进行对比分析过程中,充分考虑小表格嵌
入大表格,表格行列转置,表格行列顺序错乱,表格内部及四周行列缺失等各类情况,根据
两表格各情况状态分别进行分析,找出两表格间的不一致单元格坐标及位置。最后异常结
果处理步骤可以通过排除行列顺序错乱和行列缺失产生的不一致单元格,根据找出的真实
不一致单元格、及不一致单元格内容中的不一致字符集合,筛选出真正异常的表格对以及
不一致单元格内不一致字符集合,最终减少呈现给用户的结果数量,便于用户快速排查发
现错误、异常表格。可以实现对两个表格的对比分析,发现和定位关联表格不一致的单元格
及单元格内容差异。适用于需要处理大量相似表格,表格多处嵌套、复用的场景,可以减少
人工检查表格一致性的大量重复性工作,避免关联表格对应单元格内容不一致的错误。
附图说明
具体实施方式
明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术
人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
定的方位构造和操作,因此不能理解为对本发明的限制。
隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,
除非另有明确具体的限定。
元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本
发明中的具体含义。
们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特
征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在
第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示
第一特征水平高度小于第二特征。
一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的
组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
联表格往往是由多人人为整理,导致在这些表格中不开避免的出现对应单元格内容不一
致、表格丢失行列、行列顺序错乱等各类错误情况。另外由于表格众多,且分布在大量不同
文档中,后期人为检查的工作量极大,使得上述错误情况难以被完整的、快速的发现,导致
资料错误,材料合规性需求难以满足。针对这些技术问题,如附图1所示,本实施例公开了一
种针对药品文档内容的智能分析方法,具体包括:
息、表格在文档中位置、表格内单元格坐标、和/或单元格内容等信息。其中第一表格和第二
表格可以位于不同电子文档内,也可以位于同一电子文档内。
文档中的表格,遍历表格的每一个单元格,将所有单元格的坐标以空格为分隔符,形成一个
字符串;所有单元格的内容也以空格为分隔符,形成一个字符串,要保证单元格的坐标与内
容一一对应。在一些具体实施例中,由于表格存在合并单元格的情况,在读取表格各单元格
坐标时,要确保同一行单元格的行坐标相等,同一列单元格的列坐标相等。对于这类情况中
的合并单元格产生的缺失单元格坐标,可以用空内容补充,可以是对应坐标的单元格内容
为空。
容信息,用于表格关联分析和对比分析。表格结构化后的数据可直接用于后续分析,但当表
格数量很大时,结构化数据将占用大量内存;其为了避免每次分析都进行结构化运算,推荐
将表格结构化数据进行持久化。可选择任何关系型、非关系型数据库,如MySQL、SqlServer、
Oracle、MongoDB、Elasticsearch等进行表格结构化数据的持久化。通过提取表格单元格坐
标和内容形成表格结构化数据,确保同一行列单元格的行列坐标一致,为后续分析做准备。
下一步的对比分析,对非关联表格当作是完全不同的两个表格,不再进行对比分析。即当两
个表格不存在关联关系时,可以认为是正常的不同表格,无需将没有关联关系的不同表格
间的区别呈现给用户。因为本发明所公开的方法是用于向用户标识那些在不同文档或同一
文档的不同表格中内容本应相同但由于人为错误而可能产生了不一致的单元格。
内容一一对应。同样地,取B表格结构化数据解析得到coordinateListB和contentListB。遍
历链表contentListA和contentListB,找到其中相等的元素;分别根据内容元素在
coordinateListA和coordinateListB中找到相应的坐标。A、B表格内容一致单元格的坐标
可以形成一个字典sameCell,key值为A表格一致单元格坐标,value为B表格一致单元格坐
标。
单元格坐标位置的元素改写为1,以右下角1的坐标形成大矩阵。去除大矩阵上部和左侧全
为0的行列得到最小表格矩阵和最小表格矩阵首元素坐标。具体的,虚线边框所包围的多个
单元格组成大矩阵,灰色填充的多个单元格组成最小表格矩阵。最小表格矩阵可以看做是
嵌入大表格的小表格。各矩阵坐标从0开始,上图中最小表格矩阵第一个元素[0,0]在大矩
阵中的坐标为[2,2],即最小表格矩阵首元素坐标。
大于其所在最小表格矩阵内的单元格总数的预设比例时,判断该两表格为具有关联的关联
表格对。
也可根据具体文档情况另行设定。
具有关联关系,此时即需要通过获取最小表格矩阵的形式来分辨出该表格内嵌入的小表格
所在区域,然后再将该嵌入表格区域与其它表格或其它表格中的嵌套区域进行比较来确定
相互间的关联关系。另外,由于通常情况下,人为错误只会造成少量错误,即在关联表格中
产生少量不一致单元格。因此当被分析的两表格中不一致单元格数量过多时,即两个表格
差异较大,可以认为是正常的无关联的不同表格,不用呈现给用户。
容进行表格关联分析,建立由内容一致单元格形成的最小表格矩阵,通过预设的自定义准
则筛选两个表格是否为关联表格对。仅对关联表格对进行后续对比分析,大大减少对比分
析的计算量。
异分析。
同,则不进行记录。即关联表格对中没有内容错误的异常单元格。
相等,分别记录A、B中所有不相等的单元格坐标和内容,同时记录该关联表格对,生成异常
单元格组。该异常单元格组可采用字典数据结构DifTableCells,key值为关联表格对,如A
B。value值为数组形成的链表,链表的每个元素为两个表格不一致单元格的坐标和内容,如
[A单元格坐标,A单元格内容,B单元格坐标,B单元格内容]。若A、B最小表格矩阵对应坐标的
内容都相等,则表格A、B内容一致,不进行记录。
小表格矩阵间内容不一致单元格坐标和内容。
新所述异常单元格组中的第一、二表格对应的内容不一致单元格坐标和内容。
新。
不一致单元格数量与前面的A和B表格间内容不一致单元格数量进行比较,数量较小者则为
正确的比较结果。例如,在A表格转置后形成的转置表格C,遍历转置表格C和表格B的最小表
格矩阵区域内的每个单元格,比较C和B的最小表格矩阵对应坐标的元素或内容是否相等,
分别记录C和B最小表格矩阵中所有对应的内容不一致单元格坐标和内容,同时记录该关联
表格对。如果表格A转置后形成的转置表格C与表格B的最小表格矩阵经分析后获得的内容
不一致单元格数量,要小于前述步骤获得的表格A和B的最小表格矩阵的内容不一致单元格
数量。则表明可能A表格的行内容刚好对应关联的是B表格的列内容,而A表格的列内容刚好
对应关联的是B表格的行内容,只有这样经过转置后的表格才会比原表格与另一表格间的
内容不一致单元格数量更少。通过对最小表格矩阵行数和列数相等的两表格进行转置前和
转置后的两次内容不一致单元格的获取和筛选,可以有效分辨出那些仅仅是将表格行列内
容进行调换的表格,此类仅对行列内容进行调换的表格可以认为是正常的内容相同的关联
表格,无需呈现给用户。
置表格和第一表格的两最小表格矩阵存在内容不一致单元格,则将所述内容不一致单元格
的坐标和内容记录到第一、二表格对应的异常单元格组中。
比较A、B最小表格矩阵对应坐标的单元格内容或元素是否相等,分别记录A、B中所有不相等
的单元格坐标和内容,同时记录该关联表格对,生成或录入异常单元格组中,其中异常单元
格组的数据格式可参数前述步骤。若比较结果都相等,则表格A、B内容一致,不进行记录。在
本实施例中,当A和B的最小表格矩阵中的一个转置后,两个矩阵的行列数一致,即表明A表
格中嵌套的小表格与B表格中嵌套的小表格上的内容很有可能仅仅只是行内容和列内容间
进行了互相替换,而表格行列内容的转换仅仅只是表现方式的不同,可以认为是正常的内
容相同的关联表格,无需呈现给用户,只需将其中一小表格经过转置后与另一小表格进行
对应比对,找出真正的内容不一致单元格并呈现给用户即可。
并记录这N行各单元格的坐标和内容。
不限于关联表格对、过渡表格矩阵与第二表格中内容不一致单元格坐标和内容、以及所述N
行单元格的坐标和内容。
不是关联表格,不进行对比分析。以A的最小表格矩阵比B的最小表格矩阵多一行的情况来
具体说明。找出A的最小表格矩阵中“0”最多的一行,该行则为多出来的一行,记录该行各单
元格元素的坐标和内容。在A的最小表格矩阵中去除该行,将该行下方的各元素上移,形成
表格A’。比较A’ 的最小表格矩阵和B的最小表格矩阵对应坐标的单元格内容或元素是否相
等,如不相等则分别记录所有不相等的单元格坐标和内容,同时记录该关联表格对,生成或
录入异常单元格组中,其中异常单元格组包括但不限于关联表格对、过渡表格矩阵与第二
表格中内容不一致单元格坐标和内容、以及多出来的N行单元格的坐标和内容。其它相差行
的情况可以参照上述方法进行对比分析。
并记录这N列各单元格的坐标和内容。
不限于关联表格对、过渡表格矩阵与第二表格中内容不一致单元格坐标和内容、以及所述N
列单元格的坐标和内容。
不是关联表格,不进列对比分析。以A的最小表格矩阵比B的最小表格矩阵多一列的情况来
具体说明。找出A的最小表格矩阵中“0”最多的一列,该列则为多出来的一列,记录该列各单
元格元素的坐标和内容。在A的最小表格矩阵中去除该列,将该列右侧的各元素左移,形成
表格A’。比较A’ 的最小表格矩阵和B的最小表格矩阵对应坐标的单元格内容或元素是否相
等,如不相等则分别记录所有不相等的单元格坐标和内容,同时记录该关联表格对,生成或
录入异常单元格组中,其中异常单元格组包括但不限于关联表格对、过渡表格矩阵与第二
表格中内容不一致单元格坐标和内容、以及多出来的N列单元格的坐标和内容。其它相差列
的情况可以参照上述方法进列对比分析。
不一致很可能是由于在具体表格处理时由于人为疏忽导致表格内某一些行列顺序错乱和
行列丢失产生的。因此需要首先排除掉这些因人为错误导致的嵌套表格内成行或成列的不
一致单元格后,再进行对应的单元格内容的比对分析,避免其它单元格比对受到这些整行
或整列不一致单元格的影响,从而能更加精确和快速的找到这些可能的因行列顺序错乱或
行列丢失造成的内容不一致单元格,以及其它因输入错误导致的单个内容不一致单元格。
取异常单元格组,具体包括:
内,则按前述状态三的步骤进行处理。
该实施例中设定R为2,例如当表格A和B相差超过2时,认为两个表格不是关联表格,不进行
对比分析。以表格A比表格B多一列的情况来具体说明。判断A比B多出的一列是第一列还是
最后一列,若多出的一列不再两侧,则属于情况3,已经分析处理。判断表格A第一列是否全
部为0,若是则第一列为多出的一列,若否则判断最后一列是否全部为0,若是则最后一列为
多出的一列,若否则多出的一列不在表格两侧,属于状态三,不再进行对比分析。找多出的
一列后,若DifTableCells中已存在该关联表格对A、B,则将value增加该列单元格的坐标和
内容;若DifTableCells中不存在该关联表格对A、B,则将关联表格对A B,及该列单元格的
坐标和内容加入字典DifTableCells中,其中表格B对应单元格的坐标和内容为空。
异常单元格组,具体包括:
内,则按前述状态三的步骤进行处理。
该实施例中设定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差异内容处理的输入参数。
位置,对各类表格的适用性和通用性更强,可以帮助用户对各种类型的表格进行对比分析。
合。由于通常情况下,人为错误只会造成少量错误,产生少量不一致单元格。当关联表格对
中不一致单元格数量过多时,两个表格差异较大,可以认为是正常的不同表格,不呈现给用
户。除去这种情况外,可以认为是各种原因造成的异常表格,需要呈现给用户进行检查和处
理。由于一个人为错误可能产生一个或多个相对离散的不一致单元格,也或者可能造成行
列顺序错乱或行列丢失,从而产生成行或成列的多个不一致单元格。所以定义所有内容不
一致单元格数量减去由行列顺序错乱和行列丢失产生的单元格数量,得到的单元格数量为
真实不一致单元格数。当真实不一致单元格数小于等于M时,认为关联表格对为异常表格,
需要呈现给用户进行处理;否则认为是正常的不同表格,不呈现给用户,在本实施例中,优
选的M值可以为3。
为空的数组元素。然后再去除由于行列顺序错乱而产生的不一致单元格。A、B表格差异结果
去除由于行列缺失而产生的不一致单元格后的不一致单元格链表为difCell,数据结构为
List
格内容]。取出difCell中的所有A单元格坐标,采用表格转换为最小表格矩阵的方法,转换
为差异结果最小表格矩阵difMA,对于该最小表格矩阵,元素值为1的坐标代表不一致单元
格的坐标。存在两列单元格顺序错乱的充要条件是difMA中有两列值全部为1,交换这两列
单元格的列坐标后与B表格相应单元格的内容相等。存在两行单元格顺序错乱的充要条件
是difMA中有两行值全部为1,交换这两行单元格的行坐标后与B表格相应单元格的内容相
等。存在大于2列或2行单元格顺序错乱的情况可参考上述条件进行扩展。推荐最多考虑3行
或3列单元格顺序错乱的情况,其它情况认为是正常的不同表格,不呈现给用户。根据上述
充要条件判断,找出行列顺序错乱的单元格,从difCell中去除这些单元格,最终剩下的单
元格数量即为真实不一致单元格数量。从字典DifTableCells中去除真实不一致单元格数
量大于n的关联表格对,剩下的结果即为需要呈现给用户的差异表格对。
标识出不一致的字符集合。两个单元格内容可以当做是两个字符串a、b,寻找a、b的最长公
共子序列l,a、b中除去l后的字符集合则是不一致的字符集合,可以通过在字符前后添加标
签将其进行高亮显示。
内容的不一致字符集合。筛选出真正异常的表格对,和不一致单元格内的不一致字符集合,
减少呈现给用户的结果数量,便于用户快速排查发现错误、异常表格。同时对不一致单元格
的内容进行对比分析,可以找出并高亮不一致的字符集合,便于用户发现表格异常内容。
对比分析,大大减少对比分析的计算量。在对两表格进行对比分析过程中,充分考虑小表格
嵌入大表格,表格行列转置,表格行列顺序错乱,表格内部及四周行列缺失等各类情况,根
据两表格各情况状态分别进行分析,找出两表格间的不一致单元格坐标及位置。最后异常
结果处理步骤可以通过排除行列顺序错乱和行列缺失产生的不一致单元格,根据找出的真
实不一致单元格、及不一致单元格内容中的不一致字符集合,筛选出真正异常的表格对以
及不一致单元格内不一致字符集合,最终减少呈现给用户的结果数量,便于用户快速排查
发现错误、异常表格。可以实现对两个表格的对比分析,发现和定位关联表格不一致的单元
格及单元格内容差异。适用于需要处理大量相似表格,表格多处嵌套、复用的场景,可以减
少人工检查表格一致性的大量重复性工作,避免关联表格对应单元格内容不一致的错误。
器执行所述计算机程序时实现如上述各实施例中描述的针对药品文档内容的智能分析方
法的各个步骤。
格内容差异的智能分析系统设备的限定,可以包括比图示更多或更少的部件,或者组合某
些部件,或者不同的部件,例如所述表格内容差异的智能分析系统设备还可以包括输入输
出设备、网络接入设备、总线等。
(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-
Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器
件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理
器等,所述处理器是所述表格内容差异的智能分析系统设备的控制中心,利用各种接口和
线路连接整个表格内容差异的智能分析系统设备的各个部分。
表格内容差异的智能分析系统设备的各种功能。所述存储器可主要包括存储程序区和存储
数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等此外,存储器
可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,
智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash
Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完
成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行
时,可实现上述各个针对药品文档内容的智能分析方法实施例的步骤。其中,所述计算机程
序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文
件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任
何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,
Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信
号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管
辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利
实践,计算机可读介质不包括电载波信号和电信信号。
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。