Word文档中组图的识别方法及装置
技术领域
本发明涉及数字出版技术领域,尤其涉及一种Word文档中组图的识别方法及装置。
背景技术
Microsoft Office Word是微软公司的一个文字处理器应用程序。Word给用户提供了用于创建专业而优雅的文档工具,是当前最流行的文字处理程序。而随着信息技术的迅猛发展,读者的阅读行为逐渐转至PC端和移动端,一些国际大型出版商一直推荐使用XML作为数据交换和存储的基础,国内很多同行也认为XML是作为科技期刊内容交换和存储的不二法门。为了有效管理来自不同机构的全文文献,隶属于美国国立医学图书馆的美国国家生物技术信息中心(National Center for BiotechnologyInformation,NCBI)建立了数据标准JATS(Journal Article Tag Suite),用于对文献格式进行统一描述,并被美国国家信息标准协会(NISO,National Information Standards Organization)正式批准成为美国国家标准。作为应用较为广泛的文献资源存档标准之一,JATS标准已经在出版商、科技期刊以及图书馆等领域广泛使用。JATS标签集定义了科技期刊的XML文档结构,推动了众多杂志社的数字出版发展。
期刊社的投稿作者往往使用流行的Word进行编写、投递稿件,而期刊社(或出版社)在数字化转型中,则使用XML作为内容交换和存储格式。因此,需要将Word识别处理,重新生成XML格式的内容。由于JATS已经分别定义了单图和组图的XML存储格式,但现有的将Word文档转换XML文档的工具通常会直接将Word文档中的组图识别为多张单图,不符合JATS规范的,也违背了作者将四张图片分为一个组图的本意,同时识别成四张单图还会带来主图题存放的问题。因此在Word文档转换XML文档时对于组图的处理需要人工参与,国外大部分期刊是将Word文档中的组图截屏,做成一张图片后在将Word文档转换XML文档处理,而国内则通常先将Word文档转换XML文档,再由人工对XML文档进行处理,使组图的XML格式满足JATS规范。
现有技术中在Word文档转换XML文档时对于组图的处理,需要人工操作,处理效率较低,文件出错可能性较大,并且增加了成本。
发明内容
本发明提供一种Word文档中组图的识别方法及装置,以实现Word文档中组图的自动识别,减少人工操作,有利于Word文档向XML文档格式的正确转换,提高转换效率。
本发明的一个方面是提供一种Word文档中组图的识别方法,包括:
将Word文档中所有图片转换为嵌入式格式;
遍历每一所述图片,判断所述图片所在段落的相邻段落中的内容是否满足预定的组图判定规则;
若满足,则确定所述图片属于组图,并将满足所述预定的组图判定规则的段落修改为预定组图样式。
进一步的,所述判断所述图片所在段落的相邻段落中的内容是否满足预定的组图判定规则,包括:
识别所述图片所在段落之后的第二段落的内容;
若该第二段落的内容中包含第一预定格式的子图题,则识别该第二段落的下一段落中是否包含图片;
重复上述识别步骤直至识别到第二预定格式的主图题。
进一步的,所述识别所述图片所在段落之后的第二段落的内容前,还包括:
判断所述图片所在段落内所包含的所述图片的数量;
根据所述图片的数量确定所述子图题的第一预定格式。
进一步的,所述将Word文档中所有图片转换为嵌入式格式,包括:
检测所述Word文档中每一所述图片的格式;
若所述图片的格式为非嵌入式格式,采用ConvertToInlineShape命令将其转换为InlineShape对象,从而将所述图片的格式转换为嵌入式格式。
进一步的,所述将满足所述预定组图判定规则的段落修改为预定组图样式,包括:
将属于同一组图的所述图片、所述子图题和所述主图题所在段落的样式修改为所述预定组图样式,以在Word文档转换XML文档的过程中当识别到段落样式为所述预定组图样式时,将属于同一组图的所述图片、所述子图题和所述主图题按照组图的XML存储格式输出。
本发明的另一个方面是提供一种Word文档中组图的识别装置,该装置包括:
图片格式转换模块,用于将Word文档中所有图片转换为嵌入式格式;
判断模块,用于遍历每一所述图片,判断所述图片所在段落的相邻段落中的内容是否满足预定的组图判定规则;若满足,则确定所述图片属于组图;
样式修改模块,用于将满足所述预定的组图判定规则的段落修改为预定组图样式。
进一步的,所述判断模块用于:
识别所述图片所在段落之后的第二段落的内容;
若该第二段落的内容中包含第一预定格式的子图题,则识别该第二段落的下一段落中是否包含图片;
重复上述识别步骤直至识别到第二预定格式的主图题。
进一步的,所述判断模块还用于:
判断所述图片所在段落内所包含的所述图片的数量;
根据所述图片的数量确定所述子图题的第一预定格式。
进一步的,所述图片格式转换模块用于:
检测所述Word文档中每一所述图片的格式;
若所述图片的格式为非嵌入式格式,采用ConvertToInlineShape命令将其转换为InlineShape对象,从而将所述图片的格式转换为嵌入式格式。
进一步的,所述样式修改模块用于:
将属于同一组图的所述图片、所述子图题和所述主图题所在段落的样式修改为所述预定组图样式,以在Word文档转换XML文档的过程中当识别到段落样式为所述预定组图样式时,将属于同一组图的所述图片、所述子图题和所述主图题按照组图的XML存储格式输出。
本发明提供的Word文档中组图的识别方法及装置,通过将Word文档中所有图片转换为嵌入式格式;遍历每一所述图片,判断所述图片所在段落的相邻段落中的内容是否满足预定的组图判定规则;若满足,则确定所述图片属于组图,并将满足所述预定的组图判定规则的段落修改为预定组图样式,从而实现Word文档中组图的自动识别,减少人工操作,具有较高的准确度,有利于进一步的Word文档向XML文档格式的正确转换,提高转换效率,进而方便于期刊社等用户的数据存储、高效检索、网上在线展现等。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的Word文档中单图的示例;
图2为本发明实施例提供的Word文档中组图的示例;
图3为本发明实施例提供的Word文档中组图的识别方法流程图;
图4为本发明另一实施例提供的Word文档中组图的识别方法流程图;
图5为本发明另一实施例提供的Word文档中组图的识别方法流程图;
图6为本发明实施例提供的Word文档中组图的识别装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在JATS(JournalArticle Tag Suite)标准中,分别定义了单个图片与组图的XML格式标准。
对于单个图片,例如对于图1所示的单图,也即仅有一张图片、一个图题(FIG.8Deaths among patients receiving day hospital care or alternativeservices),其XML格式为:
<fig id="f8"orientation="portrait"position="float">
<label>FIG.8.</label>
<caption>
<title>Deaths among patients receiving day hospital care
or alternative services.</title>
</caption>
<graphicid="gc1"orientation="portrait"position="float"
xlink:href="dummy1.png"/>
</fig>
而对于组图,例如图2所示的组图,其由四张图片、以及四个子图题和一个主图题组成,其中子图题分别为:“(a)abc”、“(b)一二三”、“(c)hij”和“(d)四五六”,主图题为:“图1(a)钕玻璃的能级结构,(b)钕玻璃能级粒子数的ETU及CR现象”,其XML格式为:
<fig-group>
<label>图1</label>
<caption>
<title>(a)钕玻璃的能级结构,(b)钕玻璃能级粒子数的ETU及CR现象</title>
</caption>
<abstract abstract-type="caption"xml:lang="en">
<label>Fig.1</label>
<title>(a)Energy levels of Nd:glass;(b)Energy transfer up-conversion(ETU)and cross-relaxation(CR)in energy levels of Nd:glass</title>
</abstract>
<abstract abstract-type="note">
<p>注:钕玻璃的能级结构</p>
</abstract>
<fig orientation="portrait"position="float"id="F1">
<label>(a)</label>
<caption>
<title>abc</title>
</caption>
<graphic xlink:href="media/简讯谭文杰重点研发项目宣传材料-病毒学报20161209-修回稿全文_图注_image2.png"specific-use="print"id="gc4">
</graphic>
</fig>
<fig orientation="portrait"position="float"id="F2">
<label>(b)</label>
<caption>
<title>一二三</title>
</caption>
<graphic xlink:href="media/简讯谭文杰重点研发项目宣传材料-病毒学报20161209-修回稿全文_图注_image3.png"specific-use="print"id="gc3">
</graphic>
</fig>
<fig orientation="portrait"position="float"id="F3">
<label>(c)</label>
<caption>
<title>hij</title>
</caption>
<graphic xlink:href="media/简讯谭文杰重点研发项目宣传材料-病毒学报20161209-修回稿全文_图注_image2.png"specific-use="print"id="gc2">
</graphic>
</fig>
<fig orientation="portrait"position="float"id="F4">
<label>(d)</label>
<caption>
<title>四五六</title>
</caption>
<graphic xlink:href="media/简讯谭文杰重点研发项目宣传材料-病毒学报20161209-修回稿全文_图注_image3.png"specific-use="print"id="gc1">
</graphic>
</fig>
</fig-group>
...
因为JATS已经分别定义了单图和组图的XML存储格式,所以如果将本文中图2的组图中的四张图识别成四张单图是不符合JATS规范的,也违背了作者将四张图片分为一个组图的本意,同时识别成四张单图还会带来主图题存放的问题。现有技术中在将Word文档转换为XML文档格式时对于组图的处理需要人工参与,处理效率较低,文件出错可能性较大。
图3为本发明实施例提供的Word文档中组图的识别方法流程图。本实施例针对上述问题,提供了一种Word文档中组图的识别方法,该方法具体步骤如下:
S101、将Word文档中所有图片转换为嵌入式格式。
在本实施例中,图片的嵌入式格式,也即InlineShape对象,是指将图片视为字符,将图像作为文字处理,在排版上以文字的方式进行排版。而Shape对象,代表文档中的图形对象,Shape与InlineShape对象在文档中分别属于Shapes集合与InlineShapes集合;通过Shape对象的ConvertToInlineShape方法可以将Shape对象转换为InlineShape对象。通过InlineShape对象的ConvertToShape方法可将InlineShape对象转换为Shape对象。本实施例中通过将Word文档中所有图片转换为嵌入式格式,便于对属于组图的图片进行识别。具体的,可以采用VBA(Visual Basic for Applications,Visual Basic宏语言)对Word文档进行处理,实现上述功能,当然也可采用OOXML(Office Open XML)技术处理Word文档,但只能处理“.docx”后缀的Word文件,而对于“.doc”后缀或者其他后缀的Word文件可以先转换为“.docx”后缀的Word文件。此外也可采用其他现有技术中的方法实现Word文档中所有图片转换为嵌入式格式,此处不再赘述。
具体的,如图4所示,S101所述的将Word文档中所有图片转换为嵌入式格式,包括:
S1011、检测所述Word文档中每一所述图片的格式;
S1012、若所述图片的格式为非嵌入式格式,采用ConvertToInlineShape命令将其转换为InlineShape对象,从而将所述图片的格式转换为嵌入式格式。
本实施例中通过检测Word文档中每一所述图片的格式,如果图片格式为非嵌入式格式,例如Shape对象的图片,则采用ConvertToInlineShape命令将其转换为InlineShape对象,从而实现Word文档中图片自动转换为嵌入式格式,提高转换效率。
S102、遍历每一所述图片,判断所述图片所在段落的相邻段落中的内容是否满足预定的组图判定规则。
在本实施例中,通过预先定义组图判定规则,然后遍历Word文档中的每一图片,判断图片所在段落的相邻段落中的内容是否满足组图判定规则,从而确定图片是否属于组图。具体的,例如识别所述图片所在段落之后的第二段落的内容;若该第二段落的内容中包含第一预定格式的子图题,则识别该第二段落的下一段落中是否包含图片;重复上述识别步骤直至识别到第二预定格式的主图题。其中,第一预定格式的子图题可以包括“(a)xxxx”,或“(a)xxxx(b)xxxxx”或“(1)xxxx”或“(1)xxxx(2)xxxx”等;第二预定格式的主图题可以为“图1xxxxx”或者“图-1xxxxx”等。当然并不仅限于上述所列举的格式。当然本实施例也可采用其他的判定规则,例如不属于同一段落的距离最近的两张图片之间是否存在第一预定格式的子图题,且无除了子图题的其他内容,且在某一子图题所在段落的下一段落中存在第二预定格式的主图题,则确定为组图。
S103、若满足,则确定所述图片属于组图,并将满足所述预定的组图判定规则的段落修改为预定组图样式。
在本实施例中,在判断图片所在段落的相邻段落中的内容是否满足预定的组图判定规则,则确定图片属于组图,并通过将相关段落修改为预定组图样式,从而实现对组图进行标记,以便在将Word文档转换XML文档的过程中能够识别出组图,从而按照组图的XML存储格式输出。本实施例中具体可通过将属于同一组图的所述图片、所述子图题和所述主图题所在段落的样式修改为所述预定组图样式,例如以Word2010为例,通过开始选项卡中的样式功能预先创建组图样式,分别定义图片、子图题以及主图题所在段落的格式,而在后续的Word文档转换XML文档的过程中,通过VBA获取每个段落的样式是否为预定组图样式来判定是否将段落内容(图片、子图题或主图题)输出到<fig-group>。当然可以采用其他方法对所识别出的组图进行标记,此处不再赘述。
本实施例提供的Word文档中组图的识别方法,通过将Word文档中所有图片转换为嵌入式格式;遍历每一所述图片,判断所述图片所在段落的相邻段落中的内容是否满足预定的组图判定规则;若满足,则确定所述图片属于组图,并将满足所述预定的组图判定规则的段落修改为预定组图样式,从而实现Word文档中组图的自动识别,减少人工操作,具有较高的准确度,有利于进一步的Word文档向XML文档格式的正确转换,提高转换效率,进而方便于期刊社等用户的数据存储、高效检索、网上在线展现等。
图5为本发明另一实施例提供的Word文档中组图的识别方法流程图。在上述实施例的基础上,如图5所示,S102所述的判断所述图片所在段落的相邻段落中的内容是否满足预定的组图判定规则,具体可包括:
S1021、识别所述图片所在段落之后的第二段落的内容。
图片格式已转换未嵌入式格式,因此对于Word文档,通常图片、以及图题分别单独占用一个段落,进一步的,对于组图通常图片和子图题交替出现,每组组图具有一个主图题。因此本实施例中在便利每一图片的过程中,识别图片所在段落之后的第二段落的内容,通过判断第二段落的内容是主图题还是子图题,从而判断该图片属于单图还是组图。
S1022、若该第二段落的内容中包含第一预定格式的子图题,则识别该第二段落的下一段落中是否包含图片。
在本实施例中,第一预定格式的子图题可以包括“(a)xxxx”,或“(a)xxxx(b)xxxxx”或“(1)xxxx”或“(1)xxxx(2)xxxx”等,或者其他预定格式。具体的,可以在作者编辑Word文档时就按照规定的子图题格式进行编辑,或者并不限定Word文档编辑过程中子图题的格式,而是通过一个数据库预先存储所有可能的子图题的第一预定格式,而在判断第二段落的内容中是否包含子图题时,通过与该数据库进行匹配,从而判断是否为子图题。当识别该第二段落内包含子图题后,进一步再判断其下一段落是否包含图片。当然,子图题的下一段内容可能为对子图题对应图片的注释,则当识别到子图题的下一段不包含图片,则识别再下一段的内容是否包含图片。
S1023、重复上述识别步骤直至识别到第二预定格式的主图题。
本实施例中,通过依次识别各相邻段落中的图片、子图题、图片、子图题……直至识别到第二预定格式的主图题时,此时可确定所涉及的各段落属于一个组图。其中,第二预定格式的主图题可以为“图1xxxxx”或者“图-1xxxxx”等。更进一步的,在识别到主图题后,识别主图题的下一段落中是否包含对组图的注释。
举例来说,对于如图2所示的组图,首先识别第一段落中包含图片(图(a)和图(b)),然后识别图(a)和图(b)图片所在段落之后的第二段落的内容为“(a)abc(b)一二三”,该段落中包含第一预定格式的子图题,进一步识别第二段落的子图题的下一段落中包含图片(图(c)和图(d)),然后继续识别该图(c)和图(d)图片所在段落的下一段落的内容为“(c)hij(d)四五六”,该段落中包含第一预定格式的子图题,然后在识别该子图题的下一段落内容,识别到“图1(a)钕玻璃的能级结构,(b)钕玻璃能级粒子数的ETU及CR现象”,确定为第二预定格式的主图题,进一步识别主图题的下一段落中是否包含对组图的注释或外文翻译。
进一步的,S1021所述的识别所述图片所在段落之后的第二段落的内容前,还包括:
判断所述图片所在段落内所包含的所述图片的数量;
根据所述图片的数量确定所述子图题的第一预定格式。
在本实施例中,子图题的第一预定格式可以根据图片所在段落内所包含的所述图片的数量来确定。例如当图片所在段落内仅仅包含一张图片,子图题的第一预定格式确定为“(a)xxxx”或“(1)xxxx”,也即第一预定格式中仅包含一个子图题。具体的,当判断图片所在段落内包含一张图片,判断图片所在段落的下一段落内是否包含“(a)xxxx”或“(1)xxxx”格式的子图题,如果包含,则认为可能是组图,接着判断再下一段落是否是图片,如果是图片,如果判断该段落中也仅包括一张图片,如果是,则进一步判断该图片的下一段落中是否包含“(b)xxxx”或“(2)xxxx”格式的子图题,直至识别到主图题。再如,当图片所在段落内包含两张图片,子图题的第一预定格式确定为“(a)xxxx(b)xxxxx”或“(1)xxxx(2)xxxxx”,其具体过程此处不再赘述。
进一步的,S103所述的将满足所述预定组图判定规则的段落修改为预定组图样式,包括:
将属于同一组图的所述图片、所述子图题和所述主图题所在段落的样式修改为所述预定组图样式,以在Word文档转换XML文档的过程中当识别到段落样式为所述预定组图样式时,将属于同一组图的所述图片、所述子图题和所述主图题按照组图的XML存储格式输出。
在本实施例中,确定图片属于组图后将属于同一组图的图片、子图题和主图题所在段落的样式修改为预定组图样式,实现对组图进行标记,以便在将Word文档转换XML文档的过程中能够识别出组图,从而按照组图的XML存储格式输出。例如以Word2010为例,通过开始选项卡中的样式功能预先创建组图样式,分别定义图片、子图题以及主图题所在段落的格式,而在后续的Word文档转换XML文档的过程中,通过VBA获取每个段落的样式是否为预定组图样式来判定是否将段落内容(图片、子图题或主图题)输出到<fig-group>。
图6为本发明实施例提供的Word文档中组图的识别装置的结构图。本实施例提供一种Word文档中组图的识别装置,可以执行Word文档中组图的识别方法实施例提供的处理流程,如图6所示,本实施例的Word文档中组图的识别装置包括:图片格式转换模块301、判断模块302以及样式修改模块303。
其中,图片格式转换模块301,用于将Word文档中所有图片转换为嵌入式格式;
判断模块302,用于遍历每一所述图片,判断所述图片所在段落的相邻段落中的内容是否满足预定的组图判定规则;若满足,则确定所述图片属于组图;
样式修改模块303,用于将满足所述预定的组图判定规则的段落修改为预定组图样式。
进一步的,所述判断模块302用于:
识别所述图片所在段落之后的第二段落的内容;
若该第二段落的内容中包含第一预定格式的子图题,则识别该第二段落的下一段落中是否包含图片;
重复上述识别步骤直至识别到第二预定格式的主图题。
进一步的,所述判断模块302还用于:
判断所述图片所在段落内所包含的所述图片的数量;
根据所述图片的数量确定所述子图题的第一预定格式。
进一步的,所述图片格式转换模块301用于:
检测所述Word文档中每一所述图片的格式;
若所述图片的格式为非嵌入式格式,采用ConvertToInlineShape命令将其转换为InlineShape对象,从而将所述图片的格式转换为嵌入式格式。
进一步的,所述样式修改模块303用于:
将属于同一组图的所述图片、所述子图题和所述主图题所在段落的样式修改为所述预定组图样式,以在Word文档转换XML文档的过程中当识别到段落样式为所述预定组图样式时,将属于同一组图的所述图片、所述子图题和所述主图题按照组图的XML存储格式输出。
本发明实施例提供的Word文档中组图的识别装置可以具体用于执行上述图3-5所提供的方法实施例,具体功能此处不再赘述。
本实施例提供的Word文档中组图的识别装置,通过将Word文档中所有图片转换为嵌入式格式;遍历每一所述图片,判断所述图片所在段落的相邻段落中的内容是否满足预定的组图判定规则;若满足,则确定所述图片属于组图,并将满足所述预定的组图判定规则的段落修改为预定组图样式,从而实现Word文档中组图的自动识别,减少人工操作,具有较高的准确度,有利于进一步的Word文档向XML文档格式的正确转换,提高转换效率,进而方便于期刊社等用户的数据存储、高效检索、网上在线展现等。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。