CN116339898A - 页面内容显示方法及装置 - Google Patents
页面内容显示方法及装置 Download PDFInfo
- Publication number
- CN116339898A CN116339898A CN202310603099.3A CN202310603099A CN116339898A CN 116339898 A CN116339898 A CN 116339898A CN 202310603099 A CN202310603099 A CN 202310603099A CN 116339898 A CN116339898 A CN 116339898A
- Authority
- CN
- China
- Prior art keywords
- target
- word
- words
- uncommon
- page
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种页面内容显示方法及装置,涉及数字化技术领域,其中,页面内容显示方法,包括:响应于针对目标文档中目标页面的显示指令,统计目标页面中的各生僻字,生僻字为默认字库中不存在字符信息的汉字;在各生僻字中存在目标生僻字的情况下,加载目标生僻字对应的目标全量字库,目标生僻字为目标文档的生僻字库不存在字符信息的生僻字;从目标全量字库中获取目标生僻字的目标字符信息,并将目标字符信息添加至生僻字库;释放目标全量字库,并根据生僻字库和默认字库,显示目标文档中目标页面的页面内容。本发明在保证对含有生僻字的页面进行正常显示的同时,极大地降低了内存压力。
Description
技术领域
本发明涉及数字化技术领域,尤其涉及一种页面内容显示方法及装置。
背景技术
随着生僻字标准的推进,各文字处理及显示软件都需要支持生僻字的显示、输入等。现有技术中常用的方法有两种:一种是在读取到常见字库不存在的字符后,先通过统一码(Unicode)或判别该字符所属字库的范围,进而补充装载该字库,并缓存备用,再基于该字库显示该生僻字。另一种是先显示常见字库存在的字符,将在常见字库不存在的字符记录在一个失败列表中,待整个文本对象绘制完毕后,针对失败列表中的字符装载字符所属字库的字库,进行纠正和显示。
但字库的装载是一个开销较重的操作,为了避免反复装载字库,上述方法在第一次装载字库后会将之缓存起来备用。长期在内存中缓存大量的数据可能在进行其他高消耗内存的操作,例如图像显示等时,造成系统内存不足。因此,亟需一种有效的方法以解决上述问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种页面内容显示方法及装置。
本发明提供一种页面内容显示方法,包括:
响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;
在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;
从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;
释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。
根据本发明提供的一种页面内容显示方法,所述加载所述目标生僻字对应的目标全量字库之前,还包括:
在所述各生僻字中存在所述目标生僻字的情况下,确定所述目标页面的生僻字集中度;
相应地,所述加载所述目标生僻字对应的目标全量字库,包括:
根据所述生僻字集中度和集中度阈值,加载所述目标生僻字对应的目标全量字库。
根据本发明提供的一种页面内容显示方法,所述根据所述生僻字集中度和集中度阈值,加载所述目标生僻字对应的目标全量字库,包括:
若所述生僻字集中度大于所述集中度阈值,加载所述目标页面中所述目标生僻字对应的目标全量字库;
若所述生僻字集中度小于或等于所述集中度阈值,确定指定页面中的所述目标生僻字,加载所述指定页面中所述目标生僻字和所述目标页面中所述目标生僻字对应的目标全量字库,所述指定页面为所述目标文档中与所述目标页面相连,且在所述目标页面之后的设定数量的页面。
根据本发明提供的一种页面内容显示方法,所述在所述各生僻字中存在所述目标生僻字的情况下,确定所述目标页面的生僻字集中度,包括:
统计所述目标页面中的汉字总数、生僻字出现总数和生僻字种类数;
将所述生僻字出现总数与所述汉字总数之比,作为生僻字占比,并将所述生僻字出现总数和所述生僻字种类数之比,作为生僻字重复度;
根据所述生僻字重复度和所述生僻字占比,计算所述目标页面的生僻字集中度。
根据本发明提供的一种页面内容显示方法,所述生僻字库基于字体和/或字级划分为包含多个子字库;
相应地,所述从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库,包括:
针对任一所述目标生僻字,从所述目标全量字库中获取所述目标生僻字的目标字符信息;
根据所述目标生僻字的目标字体和/或目标字级,确定所述目标生僻字对应的目标子字库;
将所述目标生僻字的目标字符信息添加至所述目标子字库。
根据本发明提供的一种页面内容显示方法,所述从所述目标全量字库中获取所述目标生僻字的目标字符信息,包括:
获取所述目标全量字库对应的各查找数组,所述查找数组中的各元素为各汉字的初始字符信息,所述元素的下标为当前汉字的相对位置,所述相对位置为当前汉字的统一码与所述查找数组中首个元素对应汉字的统一码之差;
根据所述目标生僻字的统一码,从各所述查找数组中确定目标查找数组,并从所述目标查找数组中获取所述目标生僻字的目标字符信息。
根据本发明提供的一种页面内容显示方法,所述显示所述目标文档中所述目标页面的页面内容之后,还包括:
在所述生僻字库的子字库数量达到数量阈值的情况下,删除所述生僻字库中的指定子字库,所述指定子字库为使用频率最低或距离上次使用的间隔时间最长的子字库。
本发明还提供一种页面内容显示装置,包括:
加载模块,被配置为在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;
添加模块,被配置为从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;
显示模块,被配置为释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述页面内容显示方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述页面内容显示方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述页面内容显示方法。
本发明提供的页面内容显示方法及装置,通过响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。可以尽量避免将全量字库常驻内存,只在必要时进行加载,从中抽取所需的目标生僻字的目标字符信息,在后续用户进行显示、查找等操作中使用生僻字库。由于通常的文档中,出现的生僻字种类比全量字库中的汉字数量少得多,生僻字库会显著小于全量字库,在保证对含有生僻字的页面进行正常显示的同时,极大地降低内存压力。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的页面内容显示方法的流程示意图之一;
图2是本发明提供的页面内容显示方法的流程示意图之二;
图3是本发明提供的页面内容显示装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于更加清晰地理解本发明各实施例,首先对一些相关的背景知识进行如下介绍。
现有开放版式文档(Open Fixed-layout Document,OFD)或可携带文件格式(Portable Document Format,PDF)文档对字库的使用,以最常见的字符显示为例,一般流程为:读取OFD/PDF文档页的文字对象,读取文字对象使用的字库名称,例如“仿宋_GB2312”,则装载该字库并缓存在内存中。解析出文字对象的每个字符,通过字符的Unicode,使用辅助类或字体引擎(如FreeType)在字库中找到GlyphID,通过GlyphID找到字库中的字符信息,再根据字符的显示参数(大小、是否粗体等)装置出对应的位图,将位图渲染在显示设备上即完成字符的显示。
随着生僻字标准的推进,各文字处理及显示软件都需要支持生僻字的显示、输入等。这时就需要对上述流程进行改造升级,在上述流程中,如果某文字对象的字符中包含了一个生僻字,例如“”字,该字符在常见的GB2312字库中不存在,则此时通过Unicode在GB2312字库中找不到对应的GlyphID,也就无法进行后续的步骤了。
为应对上述无法显示生僻字的问题,现有技术中常用的方法有两种:一种是在读取到常见字库不存在的字符后,先通过Unicode码或判别该字符所属字库的范围,例如,字的Unicode为2C27C,属于GB18030实现级别(字级)3的字库,例如“国标宋超大字符集.ttf”,进而补充装载该字库,并缓存备用,基于该字库显示该生僻字,再接着走后续的流程。另一种是先显示常见字库存在的字符,即先按原有流程进行,将在常见字库不存在或找不到GlyphID的字符记录在一个失败列表中,待整个文本对象绘制完毕后,再处理这些失败的字符,方法同样为装载正确的字库进行纠正,即针对失败列表中的字符装载字符所属字库的字库,进行纠正和显示。
但字库的装载是一个开销较重的操作,为了避免反复装载字库,上述方法在第一次装载字库后会将之缓存起来备用。在处理常见字符时,这么做问题不大,以宋体GB2312字库“CESI_SS_GB2312.TTF”为例,该字库大小为3.6M,对内存的消耗不大。但18030实现级别2字库中的宋体字库,其大小增加到18.8M。等到了18030实现级别3的国标宋超大字符集,其大小更是到了43M。在计算机(Personal Computer,PC)上,这种牺牲内存换取速度的方法不至于造成太大的问题,但在内存容量较小的设备,例如手机,这个内存的消耗就不能忽略了。长期在内存中缓存大量的数据可能在进行其他高消耗内存的操作,例如图像显示等时,造成系统内存不足。
此外,上述方法通过Unicode在字库中搜索GlyphID时,采用二分法进行查找。即使用FreeType库来进行这个查找,FreeType库利用字库中的字符是按Unicode大小升序排列的特点,用二分法进行查找,其查找效率是O(log(n))。随着字符数量急剧增大,查找的开销也相应增大。例如实现级别3的“国标宋超大字符集.ttf”包含的字符数超过6万,远大于常见的GB2312系列字库,使用二分法进行查找会使查找效率相应下降。
因此,本发明提供了一种页面内容显示方法及装置,通过响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。可以尽量避免将全量字库常驻内存,只在必要时进行加载,从中抽取所需的目标生僻字的目标字符信息,在后续用户进行显示、查找等操作中使用生僻字库。由于通常的文档中,出现的生僻字种类比全量字库中的汉字数量少得多,生僻字库会显著小于全量字库,在保证对含有生僻字的页面进行正常显示的同时,极大地降低内存压力。
下面结合图1-图3描述本发明的页面内容显示方法及装置。
图1是本发明提供的页面内容显示方法的流程示意图之一,参见图1所示,包括步骤101-步骤104,其中:
步骤101:响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字。
首先需要说明的是,本发明的执行主体可以是显示页面内容的任何电子设备,例如可以为智能手机、智能手表、台式电脑、手提电脑等任何一种。
具体地,目标文档是指用户进行查看的文档,也即进行显示的文档,可以是word文档、PDF文档和ODF文档等。目标页面是指目标文档中用户当前查看的页面,可以是目标文档中的任意一页,如目标文档的首页、第2页。默认字库是指文档显示平台或文档显示系统自带的常用字库,一般指GB2312和GBK系列字库,如仿宋_GB2312字库。字符信息也即字符数据,是用于显示字符的数据,包括字形和宽高等。
实际应用中,用户通过文档显示平台打开目标文档后,查看目标文档的某一页,也即目标页面,相应地,执行主体接收到针对目标文档中目标页面的显示指令。
需要说明的是,目标页面可以随着用户对目标页面的操作进行变化,如用户打开目标文档时,目标页面为首页,当用户对目标文档进行翻页时,显示第2页时,此时目标页面为第2页。
在接收到针对目标页面的显示指令的基础上,进一步地,识别目标页面中的所有汉字,针对每个汉字,查看默认字库中是否存在该汉字对应的字符信息。如果有,则可以基于默认字库中该汉字对应的字符信息显示该汉字,如果没有,则说明该汉字为生僻字。遍历目标页面中的所有汉字,统计出所有汉字中的各生僻字。可以将各生僻字统计在该目标页面中文字对象对应的生僻字列表中。
步骤102:在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字。
具体地,全量字库是指包含所有或者绝大多数汉字的字库,一般指GB18030系列字库。目标全量字库即目标生僻字对应的全量字库。
实际应用中,针对目标页面中的每个生僻字,查看目标文档的生僻字库中是否存在该生僻字的字符信息,若存在,则可以基于生僻字库中该生僻字对应的字符信息显示该生僻字;若不存在,则该生僻字为目标生僻字,需要根据该目标生僻字的Unicode查找到对应的目标全量字库,并加载该目标全量字库。
可选地,可以在接收到目标文档的查看指令时,立刻为目标文档分配一个不存在字符信息的生僻字库,便于在后续显示页面时识别目标生僻字,进而提高显示效率。即在响应于针对目标文档中目标页面的显示指令之前还包括:响应于接收针对目标文档的查看指令,为所述目标文档分配空白的生僻字库。
可选地,还可以在显示生僻字时再创建生僻字库。即所述在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库之前,还包括:
判断所述目标文档是否存在对应的生僻字库;
若存在,执行所述在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库的步骤;
若不存在,则将各所述生僻字确定为目标生僻字,为所述目标文档分配空白的生僻字库,并执行所述在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库的步骤。
实际应用中,在用户翻阅到目标文档的某页(目标页面)时,统计出该页中文字对象中的生僻字列表,看这些生僻字是否在缓存的生僻字库中已经存在了,如果已存在,则按显示流程正常进行显示。如果尚无生僻字库,或生僻字列表中有生僻字库中不存在的目标生僻字,则加载所述目标生僻字对应的目标全量字库。
如此,在目标文档不存在生僻字的情况下,避免创建和加载生僻字库,减少数据处理量,提高文档显示效率。
步骤103:从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库。
实际应用中,针对每个目标生僻字,从该目标生僻字对应的目标全量字库获取该目标生僻字的目标字符信息,并将该目标生僻字的目标字符信息添加至生僻字库。遍历所有目标生僻字,保证生僻字库中包含目标页面中各目标生僻字的字符信息。
需要说明的是,从全量字库中抽取目标字符信息,其主要步骤包括:根据待抽取字符(目标生僻字)的集合,遍历全量字库的Cmap表和Glyf表,将找到的表数据和字符信息保存到新的TTF字库中形成子字库。通常在文本文件保存到磁盘时,将子字库打包到磁盘文件中时用到。
步骤104:释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。
实际应用中,在将目标生僻字的目标字符信息添加至生僻字库的基础上,进一步地,将内存中缓存的目标全量字库进行释放,以减少内存占用,保证内存的算力充足,避免宕机等问题,极大程度上提高了文档显示效率。然后根据生僻字库存储的生僻字的字符信息,显示目标页面的生僻字,根据默认字库存储的汉字的字符信息,显示目标页面的非生僻字,即根据生僻字库和默认字库,显示目标文档中所述目标页面的页面内容。
需要说明的是,对于目标页面中的非生僻字,即默认字库中存在字符信息的汉字,可以在统计生僻字时,根据默认字库进行显示,即将针对每个汉字,查看默认字库中是否存在该汉字对应的字符信息,如存在,则基于默认字库中该汉字对应的字符信息显示该汉字;也可以在将所有目标生僻字的目标字符信息添加至生僻字库后,与所有生僻字一起进行显示。
对于目标页面中的非目标生僻字,即默认字库中不存在字符信息且生僻字库中存在字符信息的生僻字,可以在统计目标生僻字时,根据生僻字库进行显示,即将针对每个生僻字,查看生僻字库中是否存在该生僻字对应的字符信息,如存在,则基于生僻字库中该生僻字对应的字符信息显示该生僻字;也可以在将所有目标生僻字的目标字符信息添加至生僻字库后,与所有目标生僻字一起进行显示。
本发明提供了一种页面内容显示方法,通过响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。可以尽量避免将全量字库常驻内存,只在必要时进行加载,从中抽取所需的目标生僻字的目标字符信息,在后续用户进行显示、查找等操作中使用生僻字库。由于通常的文档中,出现的生僻字种类比全量字库中的汉字数量少得多,生僻字库会显著小于全量字库,在保证对含有生僻字的页面进行正常显示的同时,极大地降低内存压力。
在本发明一个或更多个可选的实施例中,所述加载所述目标生僻字对应的目标全量字库之前,还包括:
在所述各生僻字中存在所述目标生僻字的情况下,确定所述目标页面的生僻字集中度;
相应地,所述加载所述目标生僻字对应的目标全量字库,具体实现过程可以如下:
根据所述生僻字集中度和集中度阈值,加载所述目标生僻字对应的目标全量字库。
具体地,生僻字集中度用于衡量目标页面中生僻字的种类和集中数量。
实际应用中,在各生僻字中存在目标生僻字的情况下,可以按照设定的集中度策略,确定目标页面的生僻字集中度,然后将生僻字集中度和集中度阈值进行比较,根据比较结果对应的加载策略,加载目标生僻字对应的目标全量字库。如此,针对生僻字集中度属于不同范围的目标页面,采用不同的加载策略加载目标生僻字对应的目标全量字库,提高加载粒度,有利于提高显示效率,减少内存占用。
在本发明一个或更多个可选的实施例中,所述根据所述生僻字集中度和集中度阈值,加载所述目标生僻字对应的目标全量字库,具体实现过程可以如下:
若所述生僻字集中度大于所述集中度阈值,加载所述目标页面中所述目标生僻字对应的目标全量字库;
若所述生僻字集中度小于或等于所述集中度阈值,确定指定页面中的所述目标生僻字,加载所述指定页面中所述目标生僻字和所述目标页面中所述目标生僻字对应的目标全量字库,所述指定页面为所述目标文档中与所述目标页面相连,且在所述目标页面之后的设定数量的页面。
具体地,指定页面也即目标页面的N个后续页面,N也即设定数量,为正整数,可进行调整,为避免加载量过多,优选地,N=2。
实际应用中,全量字库(GB18030字库)较大,加载GB18030字库会带来2方面的问题,一是占用较多的内存,二是加载的过程较慢。单纯采用“需要时动态加载,用完随即释放”的策略可减少全量字库常驻内存的时间,降低对内存的开销,但频繁加载会放大加载慢的缺陷,使程序变慢,降低用户体验。另一方面,单纯采用“一次加载,常驻内存”的策略可最大程度降低加载的过程较慢带来的问题,但会造成大块数据常驻内存,在系统内存紧张的情况下容易造成内存不足的问题,而内存不足带来的后果通常是程序崩溃。
为了平衡上述两种缺陷的解决方案,考察实际的文章,可以观察到有生僻字的文章常见如下2种情况:
一是出现较多次数的生僻字,但集中在几个特定的生僻字。这种情况多见于对某个姓名含生僻字的人物的专访、介绍,介绍某个名称中含生僻字的地方,或某个含生僻字的典故等。例如某文章对应的文档中,其中频繁出现生僻字“堃銶”,但集中在这两个字上反复出现。也就是说其特点是不重复的生僻字数较少,但重复度很高,前面出现过的生僻字大概率在后面的页中会再出现。这种出现生僻字的字少,但重复次数多的情况称为生僻字的集中度高。
一是介绍生僻字的专题文章,其中包含大量生僻字示例。例如某汉语生僻字的汇总类文章,整篇文章是介绍生僻字的,其中频繁出现生僻字,且生僻字范围广且分散,大多数生僻只出现一次,前面出现过的生僻字大概率在后面的页中不会再出现。这种出现生僻字的字多但重复次数少的情况称为生僻字的集中度低。
可以看到这两种包含生僻字的文字特别区别较大,为应对这两类不同的情况,尽量避免将GB18030字库常驻内存,只在必要时进行装载,从中抽取所需的生僻字构成生僻字库。在后续用户进行显示、查找等操作中使用生僻字库。由于通常的文章中,出现的(不重复)生僻字数目比GB18030字库中包含的字符少得多,因此生僻字库会显著小于完整的18030字库,对内存的压力会小很多。
当生僻字集中度大于集中度阈值时,说明目标文档中出现的生僻字集中在几个特定的生僻字上,即生僻字的集中度高,根据该类目标文档的特点,可以推测在后续的需要显示的页面中可复用生僻字库的概率较高,只需根据当前页面(目标页面)的目标生僻字更新生僻字库,即加载目标页面中目标生僻字对应的目标全量字库,将目标全量字库中目标生僻字的目标字符信息添加至生僻字库。之后将目标全量字库(完整的GB18030字库)释放。后续若某页中出现了不在生僻字库的目标生僻字,可以再动态装载目标全量字库,将该生僻字补充进生僻字库中。这样做可减少对目标全量字库的依赖,减少内存占用并提高查询速度。
当生僻字集中度小于或等于集中度阈值时,即生僻字的集中度低,说明目标文档中出现的生僻字集中在几个特定的生僻字上,目标文档重复使用的生僻字范围分散,后续页面遇到新的生僻字概率高。此时应将尽量多页面包含的目标生僻字解析出来,一次性地抽取到生僻字库中,脱离对目标全量字库(完整的GB18030字库)的依赖。当然,如果一次预先解析过多的后续页面,则解析耗费的时间过长会影响用户体验。为此,在判断出后续页面遇到新的目标生僻字概率较高时(生僻字集中度小于或等于集中度阈值),继续预解析指定页面,也即后续设定数量的(例如2)后续页面,将其中包含的目标生僻字一并抽取到生僻字库中缓存起来。如此,可以提高用户查看后续页面时,即后续页面成为目标页面时,显示目标页面的效率,并减少对目标全量字库的依赖,减少内存占用并提高查询速度,从而提高用户粘度。
在本发明一个或更多个可选的实施例中,可以统计目标页面的生僻字占比和生僻字重复度,进而计算出目标页面的生僻字集中度。即所述在所述各生僻字中存在所述目标生僻字的情况下,确定所述目标页面的生僻字集中度,具体实现过程可以如下:
统计所述目标页面中的汉字总数、生僻字出现总数和生僻字种类数;
将所述生僻字出现总数与所述汉字总数之比,作为生僻字占比,并将所述生僻字出现总数和所述生僻字种类数之比,作为生僻字重复度;
根据所述生僻字重复度和所述生僻字占比,计算所述目标页面的生僻字集中度。
具体地,汉字总数是指目标页面的字数,即目标页面中所有汉字的数量;生僻字出现总数是指目标页面中显示的生僻字数量,包含重复的生僻字;生僻字种类数是指目标页面中显示的生僻字的种类量,不包含重复的生僻字。生僻字重复度是指目标页面中生僻字的重复程度。生僻字占比是指目标页面的所有汉字中生僻字的含量。
实际应用中,可以统计目标页面中所有文字对象中的汉字,包括汉字总数(同一个字出现n次记为n)、生僻字出现总数(同一个字出现n次记为n)、生僻字种类数(不重复,同一个字出现n次记为1)。然后,计算生僻字占比=生僻字出现总数/汉字总数,并计算生僻字重复度=生僻字出现总数/生僻字种类数。接着,将生僻字重复度和生僻字占比代入生僻字集中度的计算公式中进行计算,得到目标页面的生僻字集中度,生僻字集中度的计算公式如式(1)所示。如此,能够快速准确地确定生僻字集中度,进而提高页面内容的显示效率和准确度,提高用户粘度。
生僻字集中度=生僻字占比*alpha+生僻字重复度*(1-alpha)(1)
式(1)中,alpha为设定参数,一般情况下,alpha=20%。
在本发明一个或更多个可选的实施例中,所述生僻字库基于字体和/或字级划分为包含多个子字库;
相应地,所述从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库,具体实现过程可以如下:
针对任一所述目标生僻字,从所述目标全量字库中获取所述目标生僻字的目标字符信息;
根据所述目标生僻字的目标字体和/或目标字级,确定所述目标生僻字对应的目标子字库;
将所述目标生僻字的目标字符信息添加至所述目标子字库。
具体地,字体(Font)是指文字的外在形式特征,文字的风格,是文字的外衣。字级,也即实现级别,是指在一个一定数量的汉字集合内部,根据使用频率和流通程度等属性确定的字的级别。
实际应用中,生僻字库可以基于字体划分为多个子字库,即存在多个子字库,对应需要加载的目标全量字库也可能有多个,一般需要根据目标文档中生僻字的字体而定。例如有2个生僻字,一个是宋体,另一个是楷体,以GB18030字库为例,则可能需要分别装载“国标宋体.ttf”和“国标楷体.ttf”这两个GB18030字库,从中分别抽取指定的生僻字,生成2个子字库:宋体字库和楷体字库。
生僻字库可以基于字级划分为多个子字库,即存在多个子字库,一般需要根据目标文档中生僻字的字级而定。例如有2个生僻字,一个是1级,另一个是2级,则可能需要分别装载“国标宋体.ttf”和“国标楷体.ttf”这两个GB18030字库,从中分别抽取指定的生僻字,生成2个子字库:1级字库和2级字库。
此外,生僻字库也可以基于字体和字级划分为多个子字库。生成的子字库时除了考虑字体因素,还需要考虑生僻字的字级,若生僻字与子字库的字体一致,但实现级别不同,则不能加入其中,同样需要生成新的子字库。例如有3个生僻字,第1个为实现级别2的宋体、第2个为实现级别2个黑体、第3个为实现级别3的宋体,以GB18030字库为例,则可以将第1个生僻字加入生成的宋体+实现级别2的子字库;第2个生僻字字体为黑体,而当前的生僻字库中没有对应的黑体子字库,需要创建一个新的黑体+实现级别2的子字库;类似地,当前的生僻字库中无实现级别3的子字库,因此对第3个生僻字需要创建新一个新的宋体+实现级别3的子字库。
如此,针对不同的字体和/或字级划分子字库,在识别一个生僻字是否为目标生僻字时,无需将该生僻字与生僻字库中的所有字符信息进行匹配,只需基于该生僻字的字体和/字级确定对应的目标子字库,从目标子字库中查看是否存在该生僻字的字符信息,可以减少匹配量,有利于提高确定目标生僻字的效率。
需要说明的是,GB18030字库包括3个实现级别(字级),分别是实现级别1/2/3,其包含的字符范围不同。
在本发明一个或更多个可选的实施例中,在从目标全量字库中查找字符信息,可以采用将Unicode映射为数组下标的方法查找。也即所述从所述目标全量字库中获取所述目标生僻字的目标字符信息,包括:
获取所述目标全量字库对应的各查找数组,所述查找数组中的各元素为各汉字的初始字符信息,所述元素的下标为当前汉字的相对位置,所述相对位置为当前汉字的统一码与所述查找数组中首个元素对应汉字的统一码之差;
根据所述目标生僻字的统一码,从各所述查找数组中确定目标查找数组,并从所述目标查找数组中获取所述目标生僻字的目标字符信息。
具体地,统一码即Unicode。
实际应用中,在默认字库(GB2312字库)中,由于默认字库中字符的Unicode虽然是按递增的顺序排列的,但并不连续,因此采用二分法是较好的做法。但在全量字库(GB18030字库)中实现级别3“国标宋超大字符集.ttf”字库中的5张表中,如表1所示,每个表的Unicode范围都是连续且递增的。
表1
在这种情况下,可以使用直接将Unicode映射为数组下标的方法进行查找,而不需要使用效率相对低的二分法。具体地,可以将每个表中的字符信息存储在一个数组中,数组的下标即为字符的Unicode减去该表的起始Unicode。这样,在查找字符信息时,先判断Unicode是否在某张表中,如果在,则用Unicode值减去该表的起始Unicode值,即可得到对应数字的下标,然后直接访问数组下标即可获取其对应的字符信息。这种方法不仅提高了查找效率,而且还减少了内存的消耗。
例如,对于Unicode为0x2CEB8的字符,在使用上述方法时,先找到该编码所在的表,容易看出0x2CEB8属于区间[0x2CEB0,2EBE0],对应“CJK UnifiedIdeographsExtension F”表,则用0x2CEB8减去该表的起始Unicode:0x2CEB0,得到对应数字的下标为8,然后直接访问该表的字符信息数组下标为8的位置即可获取该字符的信息。
可见通过使用直接将Unicode码映射为数组下标的方法进行查找,并结合判断字符是否在某张表中的方法,可以提高查找效率,减少查找时间和计算对数的开销。
在本发明一个或更多个可选的实施例中,所述显示所述目标文档中所述目标页面的页面内容之后,还包括:
删除所述生僻字库中的指定子字库,所述指定子字库为使用频率最低或距离上次使用的间隔时间最长的子字库。
实际应用中,生僻字库中子字库的缓存可以采用LRU(Least Recently Used)算法进行管理,保证缓存中的子字库是最近使用的子字库。可以根据LRU算法淘汰掉最不常用的指定子字库,以保证缓存的空间足够小。
在本发明一个或更多个可选的实施例中,所述删除所述生僻字库中的指定子字库,所述指定子字库为使用频率最低或距离上次使用的间隔时间最长的子字库,还包括:
在所述生僻字库的子字库数量达到数量阈值的情况下,删除所述生僻字库中的指定子字库,所述指定子字库为使用频率最低或距离上次使用的间隔时间最长的子字库。
实际应用中,当缓存中的子字库数量达到数量阈值时,可以根据LRU算法淘汰掉最不常用的指定子字库,以保证缓存的空间不会无限制增长。
在本发明一个或更多个可选的实施例中,所述显示所述目标文档中所述目标页面的页面内容之后,还包括:
删除所述生僻字库中的指定字符信息,所述指定字符信息为使用频率最低或距离上次使用的间隔时间最长的字符信息;
或者,
在所述生僻字库的字符信息数量达到指定数值的情况下,删除所述生僻字库中的指定字符信息,所述指定字符信息为使用频率最低或距离上次使用的间隔时间最长的字符信息。
实际应用中,生僻字库中字符信息的缓存可以采用LRU算法进行管理:可以根据LRU算法淘汰掉最不常用的指定字符信息,以保证缓存的空间足够小。或者,当缓存中的字符信息数量达到指定数值时,可以根据LRU算法淘汰掉最不常用的指定字符信息,以保证缓存的空间不会无限制增长。
下面结合图2对页面内容显示方法进行进一步说明,图2是本发明提供的页面内容显示方法的流程示意图之二:首先用户查看目标文档的目标页面,即用户查看目标页面。然后对查看目标页面对应的显示指令进行响应,将目标页面中的生僻字统计到生僻字列表。进而判断生僻字库中是否存在各生僻字的字符信息,若是,则显示目标页面中的页面内容;若否,则计算目标页面的生僻字集中度。进一步地,判断生僻字集中度是否大于生僻字阈值,若是,则将目标页面的目标生僻字的字符信息添加至生僻字库,即根据目标页面的目标生僻字加载目标全量字库,并从中获取目标页面的目标生僻字对应的目标字符信息添加至生僻字库,显示目标页面中的页面内容并管理生僻字库;若否,则确定指定页面的目标生僻字,将目标页面和指定页面的目标生僻字的字符信息均添加至生僻字库,显示目标页面中的页面内容并管理生僻字库。
示例性地:对某文章,用户浏览对应的OFD文档时,对生僻字的处理流程为:
A、页面(第1页)中所有文字对象中的中文,包括汉字总数、生僻字出现总数、生僻字种类数,得到汉字总数=599,生僻字出现总数=16(如“堃”和“銶”各重复出现8次),生僻字种类数=2(包括“堃”和“銶”)。
B、“堃”和“銶”两字在缓存的子字库中不存在(打开首页时,尚无子字库存在),因此继续步骤C,确定生成子字库的范围。
C、计算生僻字占比 = 16/599 = 2.67%,生僻字重复度 =16/2=8;取alpha=20%,则生僻字集中度=2.67%*20% + 8* (1-20%)=6.41,取集中度阈值k=2,可见生僻字集中度大于集中度阈值,认为下页的仍然是相同生僻字的概率较高。
D、生成对应的子字库,当前页面(第1页)中包含的生僻字为“堃”和“銶”,其中黑体各出现2次,楷体各出现1次,宋体各出现5次。因此分别装载对应的GB18030字库:“国标黑体.ttf”、“国标楷体.ttf”和“国标宋体.ttf”,抽取“堃”和“銶”到对应的3个子字库中,并放入缓存。再将对应的18030字库都释放。
E、当用户浏览到第2页后,重新统计该页的文字对象,计算出生僻字占比=10/424=2.36%,生僻字重复度 =10/2=5 ,生僻字集中度=2.36%*20% + 5* (1-20%)=4.0,仍然大于集中度阈值2,因此不预读后续的N页,N为设定数量,只考察当前第2页的情况。
F、第2页生僻字仍然只有“堃”和“銶”这两个字,可在现有缓存中的小字库中查询到这两个字的数据,因此可复用小字库不必加载GB18030字库。由此可合理地减小对缓存整个GB18030字库带来的内存的占用。
G、按此规则依次处理后续的页。
可见,在该实施例中(不同的)GB18030字库只被短暂装载过一次,在完成子字库的抽取后随即被释放,而常驻内存的3子字库中,每个子字库只包含2个字符,有效地降低了系统对内存的占用。
示例性地:关于“古代汉语生僻字”汇总的文章,用户浏览对应的OFD文档时,对生僻字的处理流程为:
A、对OFD文档中第1页的生僻字进行统计,得到17个生僻字,加上“謇”和“纚”各出现2次,共19个。
B、这些生僻字在缓存的子字库中不存在(打开首页时,尚无子字库存在),因此继续步骤C,确定生成子字库的范围。
C、计算当前页生僻字占比:19/203=9.36%,计算生僻字重复度:19/17=1.12。计算生僻字集中度:9.36%*20% + 1.12 *(1-20%)=0.91,
D、取集中度阈值k=2,判断出生僻字集中度小于k。取N=2,则继续预读取后续页面(第2页和第3页)中的文字对象,统计生僻字,得到第2页中的生僻字包括“婞菉葹薋阽枘篿朌剡矱儇縠漼埒髾袿嫽姁窴洿枲鬿鼌”这23个字,第3页中的生僻字为“蠥彃箙囏肬咍瞀忳罻牉糳欸陼眴笯眙菀娭摅雰悐怊蹠”这23个字,都是宋体。
E、装载对应的GB18030宋体字库,将这17+23+23=63个字中,在当前缓存的子字库中不存在的字符信息的生僻字都抽取到子字库中,缓存起来。(浏览第1页时,子字库还不存在,这63个字符都将被抽取到一个新建的子字库中)
F、当用户翻到第2/3页时,生僻字都能在子字库中找到,按正常OFD显示流程进行即可。
G、当用户翻到第4页时,统计生僻字,得到“谌頩脕曭踥蹀憍纁厖訑氾泭贶乣曶唫旍撟睨玄螭蟉翥悃谌婾餔悃”这28个字。
H、计算生僻字占比:28/179=15.64%。
I、计算生僻字重复度:28/26=1.08。
J、计算生僻字集中度:15.64%*20% + 1.08*(1-20%)=0.89,仍然小于集中度阈值2。
K、继续读取第5、6页中的文字对象,统计生僻字,将不在现有缓存中子字库的字符加入现有的子字库中。
L、当用户翻到第5/6页时,生僻字都能在子字库中找到,按正常OFD显示流程进行即可。
M、根据第7页的生僻字重复度,决定是否继续读取第8/9页的文字。
N、依次类推,完成所有页面的浏览。
可见,该实施例中,(不同的)GB18030字库每3页被加载一次,在完成子字库的抽取后随即被释放,有效地平衡了完整的GB18030字库被加载的次数与对内存的消耗这两个因素,获得了较好的综合表现。
下面对本发明提供的页面内容显示装置进行描述,下文描述的页面内容显示装置与上文描述的页面内容显示方法可相互对应参照。
图3是本发明提供的页面内容显示装置的结构示意图,如图3所示,该页面内容显示装置300包括:统计模块301、加载模块302、添加模块303和显示模块304,其中:
统计模块301,被配置为响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;
加载模块302,被配置为在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;
添加模块303,被配置为从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;
显示模块304,被配置为释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。
本发明提供了一种页面内容显示装置,通过响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。可以尽量避免将全量字库常驻内存,只在必要时进行加载,从中抽取所需的目标生僻字的目标字符信息,在后续用户进行显示、查找等操作中使用生僻字库。由于通常的文档中,出现的生僻字种类比全量字库中的汉字数量少得多,生僻字库会显著小于全量字库,在保证对含有生僻字的页面进行正常显示的同时,极大地降低内存压力。
可选地,所述页面内容显示装置300还包括确定模块,被配置为:
在所述各生僻字中存在所述目标生僻字的情况下,确定所述目标页面的生僻字集中度;
相应地,所述加载模块302,进一步被配置为:
根据所述生僻字集中度和集中度阈值,加载所述目标生僻字对应的目标全量字库。
可选地,所述加载模块302,进一步被配置为:
若所述生僻字集中度大于所述集中度阈值,加载所述目标页面中所述目标生僻字对应的目标全量字库;
若所述生僻字集中度小于或等于所述集中度阈值,确定指定页面中的所述目标生僻字,加载所述指定页面中所述目标生僻字和所述目标页面中所述目标生僻字对应的目标全量字库,所述指定页面为所述目标文档中与所述目标页面相连,且在所述目标页面之后的设定数量的页面。
可选地,所述确定模块,进一步被配置为:
统计所述目标页面中的汉字总数、生僻字出现总数和生僻字种类数;
将所述生僻字出现总数与所述汉字总数之比,作为生僻字占比,并将所述生僻字出现总数和所述生僻字种类数之比,作为生僻字重复度;
根据所述生僻字重复度和所述生僻字占比,计算所述目标页面的生僻字集中度。
可选地,所述生僻字库基于字体和/或字级划分为包含多个子字库;
相应地,所述添加模块303,进一步被配置为:
针对任一所述目标生僻字,从所述目标全量字库中获取所述目标生僻字的目标字符信息;
根据所述目标生僻字的目标字体和/或目标字级,确定所述目标生僻字对应的目标子字库;
将所述目标生僻字的目标字符信息添加至所述目标子字库。
可选地,所述添加模块303,进一步被配置为:
获取所述目标全量字库对应的各查找数组,所述查找数组中的各元素为各汉字的初始字符信息,所述元素的下标为当前汉字的相对位置,所述相对位置为当前汉字的统一码与所述查找数组中首个元素对应汉字的统一码之差;
根据所述目标生僻字的统一码,从各所述查找数组中确定目标查找数组,并从所述目标查找数组中获取所述目标生僻字的目标字符信息。
可选地,所述页面内容显示装置300还包括删除模块,被配置为:
在所述生僻字库的子字库数量达到数量阈值的情况下,删除所述生僻字库中的指定子字库,所述指定子字库为使用频率最低或距离上次使用的间隔时间最长的子字库。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行页面内容显示方法,该方法包括:响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的页面内容显示方法,该方法包括:响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的页面内容显示方法,该方法包括:响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种页面内容显示方法,其特征在于,包括:
响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;
在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;
从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;
释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。
2.根据权利要求1所述的页面内容显示方法,其特征在于,所述加载所述目标生僻字对应的目标全量字库之前,还包括:
在所述各生僻字中存在所述目标生僻字的情况下,确定所述目标页面的生僻字集中度;
相应地,所述加载所述目标生僻字对应的目标全量字库,包括:
根据所述生僻字集中度和集中度阈值,加载所述目标生僻字对应的目标全量字库。
3.根据权利要求2所述的页面内容显示方法,其特征在于,所述根据所述生僻字集中度和集中度阈值,加载所述目标生僻字对应的目标全量字库,包括:
若所述生僻字集中度大于所述集中度阈值,加载所述目标页面中所述目标生僻字对应的目标全量字库;
若所述生僻字集中度小于或等于所述集中度阈值,确定指定页面中的所述目标生僻字,加载所述指定页面中所述目标生僻字和所述目标页面中所述目标生僻字对应的目标全量字库,所述指定页面为所述目标文档中与所述目标页面相连,且在所述目标页面之后的设定数量的页面。
4.根据权利要求2或3所述的页面内容显示方法,其特征在于,所述在所述各生僻字中存在所述目标生僻字的情况下,确定所述目标页面的生僻字集中度,包括:
统计所述目标页面中的汉字总数、生僻字出现总数和生僻字种类数;
将所述生僻字出现总数与所述汉字总数之比,作为生僻字占比,并将所述生僻字出现总数和所述生僻字种类数之比,作为生僻字重复度;
根据所述生僻字重复度和所述生僻字占比,计算所述目标页面的生僻字集中度。
5.根据权利要求1所述的页面内容显示方法,其特征在于,所述生僻字库基于字体和/或字级划分为包含多个子字库;
相应地,所述从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库,包括:
针对任一所述目标生僻字,从所述目标全量字库中获取所述目标生僻字的目标字符信息;
根据所述目标生僻字的目标字体和/或目标字级,确定所述目标生僻字对应的目标子字库;
将所述目标生僻字的目标字符信息添加至所述目标子字库。
6.根据权利要求1或5所述的页面内容显示方法,其特征在于,所述从所述目标全量字库中获取所述目标生僻字的目标字符信息,包括:
获取所述目标全量字库对应的各查找数组,所述查找数组中的各元素为各汉字的初始字符信息,所述元素的下标为当前汉字的相对位置,所述相对位置为当前汉字的统一码与所述查找数组中首个元素对应汉字的统一码之差;
根据所述目标生僻字的统一码,从各所述查找数组中确定目标查找数组,并从所述目标查找数组中获取所述目标生僻字的目标字符信息。
7.根据权利要求5所述的页面内容显示方法,其特征在于,所述显示所述目标文档中所述目标页面的页面内容之后,还包括:
在所述生僻字库的子字库数量达到数量阈值的情况下,删除所述生僻字库中的指定子字库,所述指定子字库为使用频率最低或距离上次使用的间隔时间最长的子字库。
8.一种页面内容显示装置,其特征在于,包括:
统计模块,被配置为响应于针对目标文档中目标页面的显示指令,统计所述目标页面中的各生僻字,所述生僻字为默认字库中不存在字符信息的汉字;
加载模块,被配置为在所述各生僻字中存在目标生僻字的情况下,加载所述目标生僻字对应的目标全量字库,所述目标生僻字为所述目标文档的生僻字库不存在字符信息的生僻字;
添加模块,被配置为从所述目标全量字库中获取所述目标生僻字的目标字符信息,并将所述目标字符信息添加至所述生僻字库;
显示模块,被配置为释放所述目标全量字库,并根据所述生僻字库和所述默认字库,显示所述目标文档中所述目标页面的页面内容。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述页面内容显示方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述页面内容显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310603099.3A CN116339898B (zh) | 2023-05-26 | 2023-05-26 | 页面内容显示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310603099.3A CN116339898B (zh) | 2023-05-26 | 2023-05-26 | 页面内容显示方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116339898A true CN116339898A (zh) | 2023-06-27 |
CN116339898B CN116339898B (zh) | 2023-08-22 |
Family
ID=86884378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310603099.3A Active CN116339898B (zh) | 2023-05-26 | 2023-05-26 | 页面内容显示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116339898B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983239A (zh) * | 2006-04-06 | 2007-06-20 | 华为技术有限公司 | 一种字符输入显示方法及系统 |
CN105956023A (zh) * | 2016-04-21 | 2016-09-21 | 广州尚恩科技股份有限公司 | 一种生僻字库网络化应用的方法及系统 |
CN106033453A (zh) * | 2015-03-17 | 2016-10-19 | 北大方正集团有限公司 | 字符嵌入方法、字符嵌入系统、浏览器和客户端 |
CN107679022A (zh) * | 2017-09-07 | 2018-02-09 | 北京京东尚科信息技术有限公司 | 生僻字处理方法及其系统 |
CN113536734A (zh) * | 2021-07-06 | 2021-10-22 | 上海浩霖汇信息科技有限公司 | 一种生僻字标准化的处理方法、系统及相关产品 |
CN114611501A (zh) * | 2022-03-17 | 2022-06-10 | 平安国际智慧城市科技股份有限公司 | 生僻字检测方法、装置、设备及存储介质 |
US20220189189A1 (en) * | 2021-08-17 | 2022-06-16 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method of training cycle generative networks model, and method of building character library |
-
2023
- 2023-05-26 CN CN202310603099.3A patent/CN116339898B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983239A (zh) * | 2006-04-06 | 2007-06-20 | 华为技术有限公司 | 一种字符输入显示方法及系统 |
CN106033453A (zh) * | 2015-03-17 | 2016-10-19 | 北大方正集团有限公司 | 字符嵌入方法、字符嵌入系统、浏览器和客户端 |
CN105956023A (zh) * | 2016-04-21 | 2016-09-21 | 广州尚恩科技股份有限公司 | 一种生僻字库网络化应用的方法及系统 |
CN107679022A (zh) * | 2017-09-07 | 2018-02-09 | 北京京东尚科信息技术有限公司 | 生僻字处理方法及其系统 |
CN113536734A (zh) * | 2021-07-06 | 2021-10-22 | 上海浩霖汇信息科技有限公司 | 一种生僻字标准化的处理方法、系统及相关产品 |
US20220189189A1 (en) * | 2021-08-17 | 2022-06-16 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method of training cycle generative networks model, and method of building character library |
CN114611501A (zh) * | 2022-03-17 | 2022-06-10 | 平安国际智慧城市科技股份有限公司 | 生僻字检测方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116339898B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3113043A1 (en) | Method, device and host for updating metadata stored in columns in distributed file system | |
CN103455475B (zh) | 排版方法、设备及系统 | |
US20110258202A1 (en) | Concept extraction using title and emphasized text | |
CN112380244B (zh) | 一种分词搜索方法、装置、电子设备及可读存储介质 | |
CN108280197B (zh) | 一种识别同源二进制文件的方法及系统 | |
CN110543495A (zh) | 游标遍历存储方法及装置 | |
US10572587B2 (en) | Title inferencer | |
US20150106698A1 (en) | Systems and methods to segment text for layout and rendering | |
CN113760839A (zh) | 日志数据压缩处理方法、装置、电子设备和存储介质 | |
CN111708720A (zh) | 一种数据缓存方法、装置、设备及介质 | |
CN110059214B (zh) | 一种图像资源处理方法及装置 | |
CN108897819B (zh) | 一种数据搜索方法和装置 | |
CN116339898B (zh) | 页面内容显示方法及装置 | |
CN111858612B (zh) | 基于图数据库的数据加速访问方法、装置及存储介质 | |
CN113760894A (zh) | 数据调取方法、装置、电子设备及存储介质 | |
CN108701120A (zh) | 字形处理中的查找的条件确定 | |
CN111061508B (zh) | 一种Java卡及其性能优化方法 | |
US8578268B2 (en) | Rendering electronic documents having linked textboxes | |
US20110055258A1 (en) | Method and apparatus for the page-by-page provision of an electronic document as a computer graphic | |
CN113051504B (zh) | 文档预览方法、装置、设备、存储介质及程序产品 | |
US7624343B2 (en) | Performance optimization for text layout processing | |
CN111414728B (zh) | 数值数据展示方法、装置、计算机设备和存储介质 | |
CN113625919A (zh) | 书籍内容的翻译方法、计算设备及计算机存储介质 | |
CN112506651A (zh) | 一种大数据量环境中数据运算的方法和设备 | |
CN112380445A (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 |