CN116992109A - 目录生成方法、装置、电子设备及存储介质 - Google Patents

目录生成方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116992109A
CN116992109A CN202211257847.9A CN202211257847A CN116992109A CN 116992109 A CN116992109 A CN 116992109A CN 202211257847 A CN202211257847 A CN 202211257847A CN 116992109 A CN116992109 A CN 116992109A
Authority
CN
China
Prior art keywords
target
node
directory
level
title
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
Application number
CN202211257847.9A
Other languages
English (en)
Inventor
胡福星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211257847.9A priority Critical patent/CN116992109A/zh
Publication of CN116992109A publication Critical patent/CN116992109A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/258Heading extraction; Automatic titling; Numbering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例公开了一种目录生成方法、装置、电子设备及存储介质,该目录生成方法通过根据目标节点级别,快捷地从目标映射信息中确定目标目录节点对应的目标父节点,进而获取目标网页的目录树列表,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,根据添加目标目录节点后的目录树列表生成目标网页的目标目录,此过程中无须进行字符串的匹配,从而能够有效地提升目录生成的效率,降低设备的内存占用;并且,通过在各个遍历轮次中根据目标目录节点相应更新目标映射信息,在生成目标目录时能够快速确定不同目标目录节点之间的层级关系,从而能够提升目录生成的精细化程度,保持目录生成的准确性,可以广泛应用于云技术领域。

Description

目录生成方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种目录生成方法、装置、电子设备及存储介质。
背景技术
目录可以用于表征文本的结构性特征,能够满足读者快速寻找内容、实现跳跃性阅读的需求。相关技术中,一般根据目录的特性,采用特定文本匹配的方式来自动生成目录,例如利用“第X章”、“第X节”等常用的特定文本来进行匹配。然而,这种方式需要先将文本转化成字符串,目录的生成效率较低,并且当字符串较长时,会进一步增加目录的生成耗时,增加设备的内存占用。
发明内容
以下是对本申请详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请实施例提供了一种目录生成方法、装置、电子设备及存储介质,能够提升目录生成的效率,降低设备的内存占用。
一方面,本申请实施例提供了一种目录生成方法,包括:
按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题,根据当前遍历轮次中的所述内容标题创建目标目录节点,并确定所述目标目录节点的目标节点级别;
获取当前遍历轮次中的目标映射信息,其中,所述目标映射信息用于指示节点级别与父节点之间的映射关系;
根据所述目标节点级别从所述目标映射信息中确定所述目标目录节点对应的目标父节点;
获取所述目标网页的目录树列表,根据所述目标父节点的确定结果将所述目标目录节点添加至所述目录树列表中,根据所述目标目录节点更新所述目标映射信息;
根据添加所述目标目录节点后的所述目录树列表生成所述目标网页的目标目录。
另一方面,本申请实施例还提供了一种目录生成装置,包括:
节点创建模块,用于按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题,根据当前遍历轮次中的所述内容标题创建目标目录节点,并确定所述目标目录节点的目标节点级别;
映射信息获取模块,用于获取当前遍历轮次中的目标映射信息,其中,所述目标映射信息用于指示节点级别与父节点之间的映射关系;
匹配模块,用于根据所述目标节点级别从所述目标映射信息中确定所述目标目录节点对应的目标父节点;
添加模块,用于获取所述目标网页的目录树列表,根据所述目标父节点的确定结果将所述目标目录节点添加至所述目录树列表中,根据所述目标目录节点更新所述目标映射信息;
目录生成模块,用于根据添加所述目标目录节点后的所述目录树列表生成所述目标网页的目标目录。
进一步,上述添加模块具体用于:
根据所述目标父节点的确定结果得到所述目标目录节点在所述目录树列表中的写入位置;
根据所述写入位置将所述目标目录节点添加至所述目录树列表中。
进一步,上述添加模块具体用于:
当所述目标父节点的确定结果为所述目标目录节点不存在所述目标父节点,将所述目标目录节点在所述目录树列表中的写入位置确定为所述目录树列表中的末尾位置;
或者,当所述目标父节点的确定结果为所述目标目录节点存在所述目标父节点,在所述目录树列表中创建所述目标父节点对应的子目录集合,将所述目标目录节点在所述目录树列表中的写入位置确定为所述子目录集合中的末尾位置。
进一步,上述匹配模块具体用于:
将所述目标节点级别与所述目标映射信息中的节点级别进行匹配,根据匹配结果从所述目标映射信息中的父节点里确定所述目标目录节点对应的目标父节点;
或者,将所述目标节点级别降低后与所述目标映射信息中的节点级别进行匹配,根据匹配结果从所述目标映射信息中的父节点里确定所述目标目录节点对应的目标父节点。
进一步,上述添加模块具体用于:
根据所述目标节点级别从所述目标映射信息中确定所述目标目录节点对应的待替换节点;
将所述待替换节点更新为所述目标目录节点,得到更新后的所述目标映射信息。
进一步,上述添加模块具体用于:
将所述目标节点级别与所述目标映射信息中的节点级别进行匹配,根据匹配结果从所述目标映射信息中的父节点里确定所述目标目录节点对应的待替换节点;
或者,将所述目标节点级别提升后与所述目标映射信息中的节点级别进行匹配,根据匹配结果从所述目标映射信息中的父节点里确定所述目标目录节点对应的待替换节点。
进一步,上述映射信息获取模块具体用于:
若前一个遍历轮次中的所述目标节点级别为一级,或者前一个遍历轮次中的所述目标节点级别与首个遍历轮次中的所述目标节点级别相同时,获取所述目录树列表,将前一个遍历轮次的所述目标目录节点添加至所述目录树列表中的末尾位置;
将前一个遍历轮次中的所述目标目录节点与所述目标节点级别之间的映射关系添加至前一个遍历轮次中的目标映射信息,得到当前遍历轮次中的目标映射信息;
若当前遍历轮次中的所述目标节点级别为二级以上,或者当前遍历轮次中的所述目标节点级别与首个遍历轮次中的所述目标节点级别不相同时,获取当前遍历轮次中的目标映射信息。
进一步,上述节点创建模块具体用于:
获取目标网页的网页代码文本;
根据所述网页代码文本中的元素标签识别所述目标网页中的多个内容标题,根据所述元素标签确定各个所述内容标题的标题级别;
基于在所述目标网页中自上至下的位置顺序,根据多个所述内容标题以及所述内容标题对应的所述标题级别构建标题列表,遍历所述标题列表。
进一步,上述节点创建模块具体用于:
根据当前遍历轮次中的所述内容标题确定节点名称,根据当前遍历轮次中的所述内容标题的所述标题级别确定节点级别;
根据所述节点名称和所述节点级别创建目标目录节点。
进一步,上述目录生成模块具体用于:
对添加所述目标目录节点后的所述目录树列表进行解析,得到多个目录节点链路,其中,所述目录节点链路包括多个所述目标目录节点,任意一个所述目录节点链路的首个目录节点为所述目录节点链路中所述目标节点级别最大的所述目标目录节点;
根据多个所述目录节点链路生成所述目标网页的目标目录。
进一步,上述目录生成模块具体用于:
对添加所述目标目录节点后的所述目录树列表进行解析,得到多个目录节点链路;
当第一目录节点为所在的所述目录节点链路中所述目标节点级别最小的目录节点,第二目录节点为所在的所述目录节点链路的首个目录节点,且所述第一目录节点的所述目标节点级别大于所述第二目录节点的所述目标节点级别至少两级时,将所述第一目录节点所在的所述目录节点链路和所述第二目录节点所在的所述目录节点链路进行合并,得到合并节点链路;
根据所述合并节点链路和剩余的所述目录节点链路生成所述目标网页的目标目录。
进一步,上述目录生成模块具体用于:
对添加所述目标目录节点后的所述目录树列表进行解析,得到多个目录节点链路;
当所述目录节点链路中被插入新增目录节点,且所述新增目录节点与所述目录节点链路中首个所述目标目录节点的所述目标节点级别相同时,基于所述新增目录节点将所述目录节点链路拆分成两条子节点链路,其中,所述目录节点链路中首个所述目标目录节点以及所述新增目录节点分别作为两条所述子节点链路对应的首个目录节点;
根据所述子节点链路和剩余的所述目录节点链路生成所述目标网页的目标目录。
另一方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的目录生成方法。
另一方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行实现上述的目录生成方法。
另一方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行实现上述的目录生成方法。
本申请实施例至少包括以下有益效果:通过按照目标网页中自上至下的位置顺序遍历目标网页的多个内容标题,根据当前遍历轮次中的内容标题创建目标目录节点,并确定目标目录节点的目标节点级别,再获取当前遍历轮次中的目标映射信息,由于目标映射信息用于指示节点级别与父节点之间的映射关系,因此可以根据目标节点级别,快捷地从目标映射信息中确定目标目录节点对应的目标父节点,进而获取目标网页的目录树列表,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,根据添加目标目录节点后的目录树列表生成目标网页的目标目录,此过程中无须进行字符串的匹配,从而能够有效地提升目录生成的效率,降低设备的内存占用;并且,通过根据自上至下的位置顺序遍历目标网页的多个内容标题,进而确定各个内容标题对应的目标目录节点的目标父节点,同时在各个遍历轮次中根据目标目录节点相应更新目标映射信息,在生成目标目录时能够快速确定不同目标目录节点之间的层级关系,从而能够提升目录生成的精细化程度,保持目录生成的准确性。
本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例提供的一种可选的实施环境的示意图;
图2为本申请实施例提供的目录生成方法的一种可选的流程步骤图;
图3为本申请实施例提供的标题列表的一种可选的结构示意图;
图4为本申请实施例提供的目标映射信息的一种可选的结构示意图;
图5为本申请实施例提供的将目标目录节点添加至目录树列表中的一种可选的流程示意图;
图6为本申请实施例提供的更新目标映射信息的一种可选的流程示意图;
图7为本申请实施例提供的将目标目录节点添加至目录树列表的一种可选的完整流程步骤图;
图8为本申请实施例提供的将目标目录节点添加至目录树列表的一种可选的流程示意图;
图9为本申请实施例提供的根据目录树列表生成的目标目录一种可选的结构示意图;
图10为本申请实施例提供的根据目录树列表生成的目标目录另一种可选的结构示意图;
图11为本申请实施例提供的根据目录树列表生成的目标目录另一种可选的结构示意图;
图12为本申请实施例提供的根据目录树列表生成的目标目录另一种可选的结构示意图;
图13为本申请实施例提供的目录生成装置的一种可选的结构示意图;
图14为本申请实施例提供的终端的部分结构框图;
图15为本申请实施例提供的服务器的部分结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据目标对象属性信息或属性信息集合等与目标对象特性相关的数据进行相关处理时,都会先获得目标对象的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关国家和地区的相关法律法规和标准其中,目标对象可以是用户。此外,当本申请实施例需要获取目标对象属性信息时,会通过弹窗或者跳转到确认页面等方式获得目标对象的单独许可或者单独同意,在明确获得目标对象的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的目标对象相关数据。
为便于理解本申请实施例提供的技术方案,这里先对本申请实施例使用的一些关键名词进行解释:
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本申请实施例提供的方案涉及云技术中的云计算(cloud computing),云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(UtilityComputing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
当前,在相关技术中,一般根据目录的特性,采用特定文本匹配的方式来自动生成目录,例如利用“第X章”、“第X节”等常用的特定文本来进行匹配。然而,这种方式需要先将文本转化成字符串,目录的生成效率较低,并且当字符串较长时,会进一步增加目录的生成耗时,增加设备的内存占用。
基于此,本申请实施例提供了一种目录生成方法、装置、电子设备及存储介质,能够提升目录生成的效率,降低设备的内存占用。
参照图1,图1为本申请实施例提供的一种可选的实施环境的示意图,该实施环境包括终端101和服务器102,其中,终端101和服务器102之间通过通信网络连接。
示例性地,服务器102可以按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题,根据当前遍历轮次中的所述内容标题创建目标目录节点,并确定所述目标目录节点的目标节点级别;获取当前遍历轮次中的目标映射信息,根据目标节点级别从目标映射信息中确定目标目录节点对应的目标父节点;获取目标网页的目录树列表,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,根据目标目录节点更新目标映射信息;根据添加目标目录节点后的目录树列表生成目标网页的目标目录,再将目标目录发送至终端101。
除此以外,本申请实施例提供的目录生成方法的实施环境也可以只包括终端101,终端101直接按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题,根据当前遍历轮次中的所述内容标题创建目标目录节点,并确定所述目标目录节点的目标节点级别;获取当前遍历轮次中的目标映射信息,根据目标节点级别从目标映射信息中确定目标目录节点对应的目标父节点;获取目标网页的目录树列表,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,根据目标目录节点更新目标映射信息;根据添加目标目录节点后的目录树列表生成目标网页的目标目录。
可见,终端101或者服务器102通过按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题,根据当前遍历轮次中的所述内容标题创建目标目录节点,并确定所述目标目录节点的目标节点级别,再获取当前遍历轮次中的目标映射信息,由于目标映射信息用于指示节点级别与父节点之间的映射关系,因此可以根据目标节点级别,快捷地从目标映射信息中确定目标目录节点对应的目标父节点,进而获取目标网页的目录树列表,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,根据添加目标目录节点后的目录树列表生成目标网页的目标目录,此过程中无须进行字符串的匹配,从而能够有效地提升目录生成的效率,降低设备的内存占用;并且,通过根据自上至下的位置顺序遍历目标网页的多个内容标题,进而确定各个内容标题对应的目标目录节点的目标父节点,同时在各个遍历轮次中根据目标目录节点相应更新目标映射信息,在生成目标目录时能够快速确定不同目标目录节点之间的层级关系,从而能够提升目录生成的精细化程度,保持目录生成的准确性。
服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。另外,服务器102还可以是区块链网络中的一个节点服务器。
终端101可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。终端101以及服务器102可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。
本申请实施例提供的方法可应用于各种技术领域,包括但不限于云技术等技术领域。
参照图2,图2为本申请实施例提供的目录生成方法的一种可选的流程步骤图,该目录生成方法可以由终端执行,也可以由服务器执行,或者也可以由终端和服务器配合执行,该目录生成方法包括但不限于以下步骤201至步骤205。
步骤201:按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题,根据当前遍历轮次中的所述内容标题创建目标目录节点,并确定所述目标目录节点的目标节点级别。
在一种可能的实现方式中,目标网页可以是终端当前浏览的网页,也可以是后台加载的网页;目标网页可以是新闻、论坛等资讯网页,或者,也可以是文档网页,文档网页能够对文档进行在线查看或者编辑,本申请实施例不做限定。
在一种可能的实现方式中,目标网页可以包括多个内容标题,内容标题为用于指示目标网页中某个段落或者某个部分的主要内容或者中心思想的语句。各个内容标题的标题级别可以不相同,内容标题的标题级别用于指示内容标题在网页中的概括范围的大小,内容标题的标题级别越高,其在网页中的概括范围越大,例如,多个内容标题可以根据标题级别的由高到低依次分为一级标题、二级标题、三级标题等等,相应地,一级标题的概括范围大于二级标题的概括范围,二级标题的概括范围大于三级标题的概括范围,以此类推。当然,标题级别的具体划分可以根据实际需求而定,本申请实施例不做限定。
一般来说,在浏览目标网页时是自上至下浏览的,因此多个内容标题在目标网页中是根据自上至下的位置顺序排列的,例如,多个内容标题中包括内容标题T1、内容标题T2和内容标题T3时,根据自上至下的位置顺序排列依次为内容标题T1、内容标题T2和内容标题T3,则多个内容标题的遍历顺序依次为内容标题T1、内容标题T2和内容标题T3。
在一种可能的实现方式中,一个内容标题对应创建一个目标目录节点,目标节点级别与标题级别可以是相同的。例如,若当前遍历轮次中的内容标题为一级标题,则对应的目标节点级别为一级目录节点。目录节点级别高的目标目录节点可以作为目录节点级别低的目标目录节点的父节点,例如,一级目录节点可以作为二级目录节点的父节点,或者一级目录节点可以作为三级目录节点的父节点,或者二级目录节点可以作为三级目录节点的父节点,等等。另外,同一目录节点级别的目标目录节点的数量可以是多个,同一目录节点级别的各个目标目录节点可以作为不同的低目录节点级别的目标目录节点的父节点,例如,两个不同的一级目录节点可以分别作为不同的二级目录节点的父节点。
目标目录节点为目标网页的多个内容标题中当前遍历的内容标题对应的目录节点,例如,当多个内容标题中包括内容标题T1、内容标题T2和内容标题T3时,则目标目录节点分别为内容标题T1对应的目录节点、内容标题T2对应的目录节点和内容标题T3对应的目录节点,然后分别确定内容标题T1对应的目录节点、内容标题T2对应的目录节点和内容标题T3对应的目录节点的目标节点级别。
在一种可能的实现方式中,在按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题时,具体可以获取目标网页的网页代码文本;根据网页代码文本中的元素标签识别目标网页中的多个内容标题,根据元素标签确定各个内容标题的标题级别;基于在目标网页中自上至下的位置顺序,根据多个内容标题以及内容标题对应的标题级别构建标题列表,遍历标题列表。
其中,网页代码文本用于供网页浏览器解析后显示对应的目标网页,网页代码文本中包括有多种元素标签,元素标签用于指示对应的网页代码的类型,例如,元素标签可以是h1、h2、div等等。其中,元素标签h1、h2等用于指示对应的网页代码为内容标题,因此,可以根据网页代码文本中的元素标签识别出目标网页中的多个内容标题。在此基础上,元素标签h1指示对应的内容标题为一级标题,元素标签h2指示对应的内容标题为二级标题,以此类推。
其中,标题列表包括各个内容标题的标题名称和标题级别,例如,参照图3,图3为本申请实施例提供的标题列表的一种可选的结构示意图,标题列表的数据结构可以采用数组,标题名称的数据类型可以是字符串,标题级别的数据类型可以为数字。标题列表中包括有标题T1、标题T2、...、标题Tn,标题T1、标题T2...标题Tn分别对应的标题级别为级别L1、级别L2、...、级别Ln。因此,在遍历标题列表时,可以快捷地确定当前遍历的内容标题的标题级别。
除此以外,标题列表中还可以包括各个内容标题的其他属性,例如字体、内容标题在目标网页中的位置等,从而提升标题列表携带的信息量。
可见,通过获取目标网页的网页代码文本,根据网页代码文本中的元素标签既可以识别目标网页中的多个内容标题,也可以确定内容标题的标题级别,进而构建标题列表,在遍历标题列表时可以快速地确定内容标题的标题级别,有效地提升处理效率。
在此基础上,在根据当前遍历轮次中的内容标题创建目标目录节点时,具体可以根据当前遍历轮次中的内容标题确定节点名称,根据当前遍历轮次中的内容标题的标题级别确定节点级别;根据节点名称和节点级别创建目标目录节点。
例如,当前遍历轮次中的内容标题为“工作总结”,标题级别为一级,则创建的目标目录节点的节点名称也为“工作总结”,节点级别也为一级,从而能够快捷地将标题名称和标题级别对应转化为节点名称和节点级别。
可以理解的是,在根据标题名称确定节点名称时,也可以将标题名称进行概括后得到节点名称。除此以外,目录节点中还可以包括各个目录节点的其他属性,例如字体、目录生成位置等,从而提升目录树列表携带的信息量。
步骤202:获取当前遍历轮次中的目标映射信息。
其中,在每个遍历轮次中均会获取目标映射信息,目标映射信息用于指示节点级别与父节点之间的映射关系。各个等级的节点级别在目标映射信息中的数量不超过一个,相应地,各个节点级别对应的父节点的数量也不超过一个,在每个遍历轮次中,目标映射信息都会根据当前遍历的目标目录节点进行更新,从而实现在每个遍历轮次中确定目标目录节点对应的目标父节点。
例如,参照图4,图4为本申请实施例提供的目标映射信息的一种可选的结构示意图,类似地,目标映射信息的数据结构可以采用数组,节点级别的数据类型可以为数字,父节点的数据类型可以为字符串。在图4所示的例子中,节点级别为“2”时,对应的父节点为标题T1;节点级别为“3”时,对应的父节点为标题T2;节点级别为“n-1”时,对应的父节点为标题Tn。
步骤203:根据目标节点级别从目标映射信息中确定目标目录节点对应的目标父节点。
其中,由于在步骤201中确定了当前遍历轮次中目标目录节点的目标节点级别,因此,可以通过目标节点级别与目标映射信息中的节点级别进行匹配,从目标映射信息中的父节点中确定目标目录节点对应的目标父节点。
在一种可能的实现方式中,在根据目标节点级别从目标映射信息中确定目标目录节点对应的目标父节点时,具体可以是将目标节点级别与目标映射信息中的节点级别直接进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的目标父节点。
例如,承接图4所示的例子,若当前遍历轮次中的目标目录节点的目标节点级别为二级,则可以确定对应的目标父节点为标题T1;若当前遍历轮次中的目标目录节点的目标节点级别为三级,则可以确定对应的目标父节点为标题T2,以此类推。此时,目标映射信息中的节点级别的最小级别为二级。
除此以外,在根据目标节点级别从目标映射信息中确定目标目录节点对应的目标父节点时,具体也可以是将目标节点级别降低后与目标映射信息中的节点级别进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的目标父节点。
其中,目标节点级别的降低幅度可以是一个级别,在这种情况下,目标映射信息中的节点级别的最小级别可以为一级。例如,目标映射信息中的节点级别为“1”时,对应的父节点为标题T1;目标映射信息中的节点级别为“2”时,对应的父节点为标题T2;目标映射信息中的节点级别为“n”时,对应的父节点为标题Tn。若当前遍历的目标目录节点的目标节点级别为二级,则可以确定对应的目标父节点为标题T1;若当前遍历的目标目录节点的目标节点级别为三级,则可以确定对应的目标父节点为标题T2,以此类推。
可见,由于目标映射信息指示了节点级别与父节点之间的映射关系,因此,可以快速地确定目标目录节点对应的目标父节点,有效地提升处理效率。并且,可以通过两种不同的方式来确定目标目录节点对应的目标父节点,能够提升确定目标父节点的灵活性。
步骤204:获取目标网页的目录树列表,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,根据目标目录节点更新目标映射信息。
在一种可能的实现方式中,后续生成的目标目录由多个目录节点组成,目录树列表用于存储目录节点的节点信息,节点信息可以为节点级别、节点名称、父节点、子节点等等,节点级别可以是一级目录、二级目录等等。
其中,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,具体可以是根据目标父节点的确定结果得到目标目录节点在目录树列表中的写入位置,根据写入位置将目标目录节点添加至目录树列表中。目标父节点的确定结果用于指示目标目录节点是否存在目标父节点,若目标映射信息中存在与目标节点级别相匹配的节点级别,则可以确定目标目录节点对应的目标父节点,即目标目录节点存在对应的目标父节点,进而可以确定目标目录节点在目录树列表中的写入位置。
在一种可能的实现方式中,目标目录节点在目录树列表中的写入位置用于指示目标目录节点与目录树列表中其余的目录节点之间的层级关系,当目标父节点的确定结果为目标目录节点不存在目标父节点,则可以将目标目录节点在目录树列表中的写入位置确定为目录树列表中的末尾位置,此时,由于该目标目录节点不存在目标父节点,则该目标目录节点对应的目录节点与目录树列表中其余的目录节点之间是并列的层级关系,因而直接将该目标目录节点写入至目录树列表中的末尾位置,从而不影响目录树列表中原来存在的目录节点的层级关系。
而当目标父节点的确定结果为目标目录节点存在目标父节点,则可以在目录树列表中创建目标父节点对应的子目录集合,将目标目录节点在目录树列表中的写入位置确定为子目录集合中的末尾位置,此时,由于该目标目录节点存在目标父节点,则该目标目录节点对应的目录节点应当为该目标父节点对应的目录节点的子节点,因而将目标目录节点写入至目标父节点对应的子目录集合中的末尾位置,从而在目录树列表中构建目标目录节点对应的目录节点与目标父节点对应的目录节点之间的层级关系,其中,子目录集合用于存储某个目录节点下的一个或者多个子节点,子目录集合的数据类型可以是数组。
例如,参照图5,图5为本申请实施例提供的将目标目录节点添加至目录树列表中的一种可选的流程示意图,若目录树列表已存储有标题T1对应的目录节点、标题t11对应的目录节点以及标题t12对应的目录节点,其中,标题T1对应的目录节点为标题t11对应的目录节点以及标题t12对应的目录节点的父节点,标题t11对应的目录节点以及标题t12对应的目录节点存储于标题T1对应的目录节点的子目录集合中。当前遍历的目标目录节点为标题T2,若根据目标映射信息确定标题T2不存在目标父节点,则在目录树节点的末尾位置添加标题T2对应的目录节点。若根据目标映射信息确定标题T2存在目标父节点,而标题T2的目标父节点为标题T1,则在标题T1对应的目录节点的子目录集合的末尾位置添加标题T2对应的目录节点。
其中,由于步骤201中是通过根据自上至下的位置顺序遍历目标网页的多个内容标题,进而确定各个内容标题对应的目标目录节点的目标父节点,同时在各个遍历轮次中根据目标目录节点相应更新目标映射信息,在下一个遍历轮次中,可以利用当前遍历轮次更新后的目标映射信息来进行目标父节点的匹配,在生成目标目录时能够快速确定不同目标目录节点之间的层级关系,从而能够提升目录生成的精细化程度,保持目录生成的准确性。
步骤205:根据添加目标目录节点后的目录树列表生成目标网页的目标目录。
在一种可能的实现方式中,可以是在遍历完成多个内容标题,将各个目标目录节点添加至目录树列表以后,再根据目录树列表生成目标网页的目标目录。又或者,也可以在每个遍历轮次中,将当前遍历轮次中的目标目录节点添加至目录树列表以后,便根据目录树列表更新一次目标网页的目标目录。
其中,在根据目录树列表生成目标目录时,可以按照预设顺序遍历目录树列表中的目录节点,根据目录节点的节点名称和节点级别生成目标目录。其中,预设顺序可以是位置顺序,若当前的目录节点包括有子目录集合,则先处理该目录节点中的子目录集合的数据后,再轮到下一个目录节点;又或者,预设顺序也可以是节点级别顺序,即可以先生成目录树列表中所有的一级目录,再生成各个一级目录的子目录集合中的二级目录,再生成各个二级目录的子目录集合中的三级目录,以此类推。
通过按照目标网页中自上至下的位置顺序遍历目标网页的多个内容标题,根据当前遍历轮次中的内容标题创建目标目录节点,并确定目标目录节点的目标节点级别,再获取当前遍历轮次中的目标映射信息,由于目标映射信息用于指示节点级别与父节点之间的映射关系,因此可以根据目标节点级别,快捷地从目标映射信息中确定目标目录节点对应的目标父节点,进而获取目标网页的目录树列表,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,根据添加目标目录节点后的目录树列表生成目标网页的目标目录,此过程中无须进行字符串的匹配,从而能够有效地提升目录生成的效率,降低设备的内存占用。
在一种可能的实现方式中,在更新目标映射信息时,可以根据目标节点级别从目标映射信息中确定目标目录节点对应的待替换节点,将待替换节点更新为目标目录节点,得到更新后的目标映射信息。
其中,将待替换节点更新为目标目录节点也可以采用两种不同的方式,从而可以提升待替换节点的更新灵活性。在此基础上,从目标映射信息中的父节点中确定目标目录节点对应的目标父节点时,与从目标映射信息中的父节点中确定目标目录节点对应的待替换节点时,目标节点级别与目标映射信息中的节点级别的匹配方式不相同。
具体地,若在根据目标节点级别从目标映射信息中确定目标目录节点对应的目标父节点时,是将目标节点级别与目标映射信息中的节点级别进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的目标父节点,则在根据目标节点级别从目标映射信息中确定目标目录节点对应的待替换节点时,可以将目标节点级别提升后与目标映射信息中的节点级别进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的待替换节点,类似地,目标节点级别的提升幅度也可以为一个级别。
另外,若在根据目标节点级别从目标映射信息中确定目标目录节点对应的目标父节点时,是将目标节点级别降低后与目标映射信息中的节点级别进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的目标父节点,则在根据目标节点级别从目标映射信息中确定目标目录节点对应的待替换节点时,可以将目标节点级别与目标映射信息中的节点级别进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的待替换节点。
例如,参照图6,图6为本申请实施例提供的更新目标映射信息的一种可选的流程示意图,在当前的遍历轮次中,目标映射信息包括三个映射关系,分别为“2-标题T1”、“3-标题T2”以及“4-标题T3”,当前遍历轮次中的目标目录节点为标题T4,且标题T4的目标节点级别为三级,则可以直接匹配出标题T4对应的目标父节点为标题T2,在将标题T4添加至目录树列表中以后,则将标题T4的目标节点级别提升一级,再匹配出待替换节点为标题T3,将标题T3替换为标题T4,得到更新后的目标映射信息包括的映射关系分别为“2-标题T1”、“3-标题T2”以及“4-标题T4”。
又例如,再次参照图6,在当前的遍历轮次中,目标映射信息包括三个映射关系,分别为“1-标题T1”、“2-标题T2”以及“3-标题T3”,当前遍历轮次中的目标目录节点为标题T4,且标题T4的目标节点级别为三级,则可以将标题T4的目标节点级别降低一级,匹配出标题T4对应的目标父节点为标题T2,在将标题T4添加至目录树列表中以后,则可以直接匹配出待替换节点为标题T3,将标题T3替换为标题T4,得到更新后的目标映射信息包括的映射关系分别为“1-标题T1”、“2-标题T2”以及“3-标题T4”。
在一种可能的实现方式,当无法从目标映射信息中的父节点中确定目标目录节点对应的待替换节点时,可以将目标目录节点的目标节点级别与该目标目录节点之间的映射关系添加至目标映射信息,以更新目标映射信息;类似地,当无法从目标映射信息中的父节点中确定目标目录节点对应的待替换节点时,也可以将目标目录节点的目标节点级别提升后与该目标目录节点之间的映射关系添加至目标映射信息,以更新目标映射信息。
在一种可能的实现方式中,在获取当前遍历轮次中的目标映射信息时,可以先判断前一个遍历轮次中的目标节点级别是否为一级,或者前一个遍历轮次中的目标节点级别与首个遍历轮次中的目标节点级别是否相同。若前一个遍历轮次中的目标节点级别为一级,或者前一个遍历轮次中的目标节点级别与首个遍历轮次中的目标节点级别相同时,获取目录树列表,将前一个遍历轮次的目标目录节点添加至目录树列表中的末尾位置。
其中,前一个遍历轮次中的目标节点级别为一级,或者前一个遍历轮次中的目标节点级别与首个遍历轮次中的目标节点级别相同,存在以下两种情况:
一种情况是前一个遍历轮次为首个遍历轮次,目标网页中存在一级标题,此时目录树列表为空,可以直接将前一个遍历轮次的目标目录节点添加至目录树列表中的末尾位置,同时,前一个遍历轮次的目标映射信息也为空,可以直接将前一个遍历轮次中的目标目录节点与目标节点级别之间的映射关系添加至前一个遍历轮次中的目标映射信息。
另一种情况是目标网页中包括多个与目标网页中首个内容标题的标题级别相同的内容标题,即存在多个与首个遍历轮次的目标目录节点节点级别相同的目标目录节点,此时前一个遍历轮次之前还存在多个遍历轮次,目录树列表不为空,由于与首个遍历轮次的目标目录节点的节点级别相同的目标目录节点不存在父节点,因此可以直接将前一个遍历轮次的目标目录节点添加至目录树列表中的末尾位置,相应地,前一个遍历轮次的目标映射信息也不为空,由于前一个遍历轮次中目标节点级别与首个遍历轮次的目标目录节点的节点级别相同,表明比前一个遍历轮次更前的目标目录节点已经添加至目录树列表中,因此,除了可以利用前述的通过目标节点级别与目标映射信息中的节点级别进行匹配来更新目标映射信息的方式以外,也可以将前一个遍历轮次的目标映射信息直接清空,再将前一个遍历轮次中的目标目录节点与目标节点级别之间的映射关系添加至前一个遍历轮次中的目标映射信息,从而可以达到目标映射信息的清理效果,减少数据缓存。
在此基础上,若当前遍历轮次中的目标节点级别为二级以上,或者当前遍历轮次中的目标节点级别与首个遍历轮次中的目标节点级别不相同时,再获取当前遍历轮次中的目标映射信息,即前述的前一个遍历轮次中更新得到的目标映射信息。简而言之,即目标目录节点为二级以上的目录节点或者与首个遍历轮次的目标目录节点的目标节点级别不相同时,再进行后续的目标父节点的确定,可以降低数据处理的复杂度,提升目录生成的效率。
下面以一例子说明将目标目录节点添加至目录树列表的原理。
参照图7,图7为本申请实施例提供的将目标目录节点添加至目录树列表的一种可选的完整流程步骤图,其中,将目标目录节点添加至目录树列表,具体可以包括以下步骤701至步骤709。
步骤701:遍历标题列表;
步骤702:判断内容标题的标题等级是否等于1,若是,跳转步骤703,否则跳转步骤704;
步骤703:创建内容标题对应的目录节点,将该目录节点与该目录节点的节点等级之间的映射关系添加至映射信息中,将该目录节点添加至目录树对象中,跳转步骤708;
步骤704:创建内容标题对应的目录节点,获取映射信息,根据目录节点的节点等级匹配出该目录节点的父节点;
步骤705:判断该目录节点是否存在父节点,若是,跳转步骤706,否则跳转步骤707;
步骤706:将该目录节点添加至父节点的子目录集合中,更新映射信息,跳转步骤708;
步骤707:将该目录节点添加至目录树列表中,更新映射信息;
步骤708:判断标题列表是否遍历完成,若是,跳转步骤709,否则跳转步骤701;
步骤709:得到添加目录节点后的目录树列表。
在本例子中,标题列表中内容标题的排列顺序是根据内容标题在目标网页中自上至下的位置顺序,步骤709得到的目录树列表可以用于生成目标网页的目标目录。上述步骤701至步骤709中无须进行字符串的匹配,从而能够有效地提升目录生成的效率,降低设备的内存占用;并且,在生成目标目录时能够快速确定不同目标目录节点之间的层级关系,从而能够提升目录生成的精细化程度,保持目录生成的准确性。
在此基础上,参照图8,图8为本申请实施例提供的将目标目录节点添加至目录树列表的一种可选的流程示意图,下面结合图8进一步说明图7所示的流程步骤的原理。在本例子中,标题列表依次包括标题T1、标题T2、标题T3和标题T4,标题级别依次为一级、二级、二级和一级,在初始状态中,映射信息为空,目录树列表为空;
在第一个遍历轮次中,创建标题T1对应的目录节点,标题T1对应的目录节点的节点名称为标题T1的标题名称,节点级别为一级,由于标题T1对应的目录节点为首个目录节点,因此直接将标题T1对应的目录节点添加至目录树列表中,并将标题T1对应的目录节点的节点级别增加一级后,生成与标题T1对应的目录节点之间的映射关系添加至映射信息中;
在第二个遍历轮次中,创建标题T2对应的目录节点,标题T2对应的目录节点的节点名称为标题T2的标题名称,节点级别为二级,根据标题T2对应的目录节点的节点级别从映射信息中匹配出标题T2对应的目录节点的父节点为标题T1对应的目录节点,因此,将标题T2对应的目录节点添加至标题T1对应的目录节点在目录树列表的子目录集合中,并将标题T2对应的目录节点的节点级别增加一级后,生成与标题T2对应的目录节点之间的映射关系添加至映射信息中;
在第三个遍历轮次中,创建标题T3对应的目录节点,标题T3对应的目录节点的节点名称为标题T3的标题名称,节点级别为二级,根据标题T3对应的目录节点的节点级别从映射信息中匹配出标题T3对应的目录节点的父节点为标题T1对应的目录节点,因此,将标题T3对应的目录节点添加至标题T1对应的目录节点在目录树列表的子目录集合中,并将标题T3对应的目录节点的节点级别增加一级后,匹配出映射关系中待更新节点为标题T2对应的目录节点,将标题T2对应的目录节点替换为标题T3对应的目录节点;
在第四个遍历轮次中,创建标题T4对应的目录节点,标题T4对应的目录节点的节点名称为标题T4的标题名称,节点级别为一级,由于标题T4对应的目录节点与标题T1对应的目录节点的节点等级相同,因此,将标题T4对应的目录节点添加至目录树列表中,并将标题T4对应的目录节点的节点级别增加一级后,匹配出映射关系中待更新节点为标题T1对应的目录节点,将标题T1对应的目录节点替换为标题T4对应的目录节点。
可以理解的是,图8所示的将目标目录节点添加至目录树列表仅用作原理性说明,目录节点的数量和级别均可以根据实际情况变化,本申请实施例不做限定。
下面结合不同场景说明本申请实施例中根据目录树列表生成目标目录的原理。
在一种可能的实现方式中,根据添加目标目录节点后的目录树列表生成目标网页的目标目录时,具体可以对添加目标目录节点后的目录树列表进行解析,得到多个目录节点链路,根据多个目录节点链路生成目标网页的目标目录。
其中,由于目标目录节点在写入目录树列表时存在位置关联性,例如子节点是添加在父节点的子目录集合中,或者相同节点级别的目录节点是并列添加至目录树列表中的,因此,可以对添加目标目录节点后的目录树列表进行解析,得到多个目录节点链路,目录节点链路可以包括多个目标目录节点,即目标节点链路为多个目标目录节点的集合,并且,目录节点链路中的目标目录节点的目标节点等级一般是依次递减的,并且,同一个目录节点链路中可能会存在不同的分支链路,例如,非首个目标目录节点存在子目录节点时就会存在分支链路。
例如,参照图8所示的例子,在完成遍历后得到的目录树列表中,可以得到两个目录节点链路,其中一个为“标题T1、标题T2、标题T3”组成的目录节点链路,另一个为“标题T4”组成的目录节点链路。在此基础上,若标题T2存在子目录节点标题T5(附图未展示),则“标题T1、标题T2、标题T3、标题T5”组成目录节点链路,“标题T2、标题T5”为目录节点链路中的分支链路。
在一种可能的实现方式中,任意一个目录节点链路的首个目录节点为目录节点链路中目标节点级别最大的目标目录节点,此时,即使目标网页中不存在一级标题,在根据多个目录节点链路生成目标网页的目标目录时,也可以自动利用目录节点链路中目标节点级别最大的目标目录节点作为该目录节点链路中首个目标目录节点,从而可以提升生成目标目录的可靠性与兼容性。
例如,参照图9,图9为本申请实施例提供的根据目录树列表生成的目标目录一种可选的结构示意图,以网页文档为例,标题列表中包括“1.1标题T1”、“1.1.1标题T2”、“1.2标题T3”、“1.1.2标题T4”、“1.1.2.1标题T5”、“1.1.2.2标题T6”、“1.1.2.2.1标题T7”、“1.1.2.2.2标题T8”、“1.1.2.3标题T9”、“1.1.2.4标题T10”,其中,“1.1标题T1”和“1.2标题T3”为二级标题,因此,在生成图9中左侧的目标目录时,将“1.1标题T1”和“1.2标题T3”作为各自的目录节点链路中的首个目录节点,即作为各自的目录节点链路的一级目录节点,从而可以提升生成目标目录的可靠性与兼容性。
在一种可能的实现方式中,根据添加目标目录节点后的目录树列表生成目标网页的目标目录时,具体也可以对添加目标目录节点后的目录树列表进行解析,得到多个目录节点链路;当第一目录节点为所在的目录节点链路中目标节点级别最小的目录节点,第二目录节点为所在的目录节点链路的首个目录节点,且第一目录节点的目标节点级别大于第二目录节点的目标节点级别至少两级时,将第一目录节点所在的目录节点链路和第二目录节点所在的目录节点链路进行合并,得到合并节点链路;根据合并节点链路和剩余的目录节点链路生成目标网页的目标目录。
其中,由于目标目录节点的目标节点级别之间相差至少两级,因此第一目录节点的目标节点级别大于第二目录节点的目标节点级别至少两级,表明第一目录节点和第二目录节点之间存在断层,这种情况出现的原因可能是由于目标网页的标题列表中的标题等级不连续,或者标题列表中其中一个内容标题被删除。此时,通过将第一目录节点所在的目录节点链路和第二目录节点所在的目录节点链路合并为合并节点链路;根据合并节点链路和剩余的目录节点链路生成目标网页的目标目录,可以有效地提升目标目录的准确性和合理性。
其中,将第一目录节点所在的目录节点链路和第二目录节点所在的目录节点链路合并为合并节点链路,具体可以是将第二目录节点对应的目录节点链路中的目录节点作为第一目录节点的子节点。
在底层数据处理中,可以调整第二目录节点对应的目录节点链路中的目录节点的写入位置,将第二目录节点对应的目录节点链路中的目录节点写入至第一目录节点的子目录集合中。
在一种可能的实现方式中,符合上述条件的第一目录节点对应的目录节点链路的数量可能为多个,此时,在将第一目录节点和第二目录节点对应的目录节点链路进行合并时,可以是将第二目录节点对应的目录节点链路合并至与第二目录节点对应的目录节点链路相邻的(距离最近的)第一目录节点所在的目录节点链路中,并且该第一目录节点所在的目录节点链路位于第二目录节点对应的目录节点链路之前,使得第一目录节点对应的目录节点链路与第二目录节点对应的目录节点链路的内容更加接近,以提升目标目录的准确性和合理性。
例如,参照图10,图10为本申请实施例提供的根据目录树列表生成的目标目录另一种可选的结构示意图,以网页文档为例,标题列表中包括“1.标题T1”、“1.1.1标题T2”、“1.1.2标题T3”、“1.1.3标题T4”、“1.1.3.1标题T5”、“1.1.3.2标题T6”、“1.1.3.2.1标题T7”、“1.1.3.2.2标题T8”、“1.1.3.3标题T9”、“1.1.3.4标题T10”,其中,“1.1标题T1”为一级标题,“1.1.1标题T2”、“1.1.2标题T3”、“1.1.3标题T4”为三级标题,“1.1.3.1标题T5”、“1.1.3.2标题T6”、“1.1.3.3标题T9”、“1.1.3.4标题T10”为四级标题,“1.1.3.2.1标题T7”、“1.1.3.2.2标题T8”为五级标题,“1.标题T1”为一个目录节点链路,“1.1.1标题T2”为一个目录节点链路,“1.1.2标题T3”为一个目录节点链路,“1.1.3标题T4”、“1.1.3.1标题T5”、“1.1.3.2标题T6”、“1.1.3.2.1标题T7”、“1.1.3.2.2标题T8”、“1.1.3.3标题T9”、“1.1.3.4标题T10”为一个目录节点链路,此时,“1.标题T1”的目标节点级别大于“1.1.1标题T2”、“1.1.2标题T3”或者“1.1.3标题T4”的目标节点级别两级,则在生成目标目录时,将“1.1.1标题T2”、“1.1.2标题T3”和“1.1.3标题T4”对应的目录节点链路均合并至“1.标题T1”对应的目录节点链路。
在一种可能的实现方式中,在将第一目录节点和第二目录节点对应的目录节点链路进行合并时,还可以将第一目录节点的节点名称输入至预先训练好的语义识别模型中,得到第一目录节点的节点名称的第一语义向量;将第二目录节点的节点名称输入至预先训练好的语义识别模型中,得到第一目录节点的节点名称的第二语义向量,计算第一语义向量和第二语义向量之间的向量相似度,例如余弦相似度、欧氏距离等,当向量相似度大于或者等于预设的相似度阈值时,再将第一目录节点和第二目录节点对应的目录节点链路进行合并,由于向量相似度可以表征第一目录节点的节点名称与第二目录节点的节点名称之间的语义相似度,因此,当向量相似度大于或者等于预设的相似度阈值时,表明第一目录节点的节点名称与第二目录节点的节点名称之间的语义相似度较高,此时再将第一目录节点和第二目录节点对应的目录节点链路进行合并,从而能够提升合并的合理性与可靠性。
可以理解的是,相似度阈值可以根据实际情况设定,例如可以是0.8、0.9等等,本申请实施例不做限定。
其中,在训练上述语义识别模型时,可以获取多个样本数据对,其中,样本数据对为两个样本标题,并且,各个样本数据对均标注有相似度标签,该相似度标签用于指示样本数据对中的两个样本标题的语义是否相似,在训练过程中,将样本数据对输入至该语义识别模型中,分别得到样本数据对中两个样本标题的样本语义向量,通过计算两个样本语义向量之间的样本相似度,根据样本相似度与相似度标签确定语义识别模型的训练损失值,根据训练损失值调整语义识别模型的参数。通过引入上述样本数据对,通过样本相似度与相似度标签的方式来对语义识别模型进行训练,可以使得语义识别模型更加契合标题语义相似度的识别任务,提升语义识别模型的训练效果。
在一种可能的实现方式中,根据添加目标目录节点后的目录树列表生成目标网页的目标目录时,具体也可以对添加目标目录节点后的目录树列表进行解析,得到多个目录节点链路;当目录节点链路中被插入新增目录节点,且新增目录节点与目录节点链路中首个目标目录节点的目标节点级别相同时,基于新增目录节点将目录节点链路拆分成两条子节点链路;根据子节点链路和剩余的目录节点链路生成目标网页的目标目录。
当目录节点链路中被插入新增目录节点时,即目标网页中被插入了新的内容标题,可以重新生成新的标题列表后进行遍历,并重新创建各个内容标题目录节点并添加至目录树列表中,但这种方式会增加目标目录生成的耗时。此时,可以基于新增目录节点将目录节点链路拆分成两条子节点链路,根据子节点链路和剩余的目录节点链路生成目标网页的目标目录,其中,目录节点链路中首个目标目录节点以及新增目录节点分别作为两条子节点链路对应的首个目录节点。
在底层数据处理中,可以在创建新增目录节点后,调整新增目录节点以下的其他目录节点的写入位置,将新增目录节点以下的其他目录节点写入至新增目录节点的子目录集合中。
上述方式无须重新创建各个内容标题目录节点并添加至目录树列表中,只需要简单调整目录树列表中目录节点链路的结构即可,在当目录节点链路中被插入新增目录节点的情况下,能够快捷准确地对目标目录进行更新,提升处理效率。
例如,参照图11,图11为本申请实施例提供的根据目录树列表生成的目标目录另一种可选的结构示意图,承接图10所示的例子,此时,若在“1.1.3标题T4”与“1.1.3.1标题T5”之间插入“2.标题T11”,“2.标题T11”为一级标题,则将原来的目录节点链路拆分成子节点链路“1.标题T1”、“1.1.1标题T2”、“1.1.2标题T3”、“1.1.3标题T4”,以及子节点链路“2.标题T11”、“1.1.3.1标题T5”、“1.1.3.2标题T6”、“1.1.3.2.1标题T7”、“1.1.3.2.2标题T8”、“1.1.3.3标题T9”、“1.1.3.4标题T10”,进而生成新的目标目录。
在一种可能的实现方式中,当目录节点链路中被插入新增目录节点时,为了进一步提升目标目录的准确性,可以识别原始的目录节点链路中的目标目录节点是否包括数字前缀,例如“1.标题T1”中的“1.”为数字前缀,再识别新增目录节点是否包括数字前缀,若原始的目录节点链路中的目标目录节点包括数字前缀,新增目录节点不包括数字前缀,则可以根据原始的目录节点链路中的目标目录节点的数字前缀往新增目录节点中添加数字前缀,往新增目录节点中添加的数字前缀可以大于原始的目录节点链路中的目标目录节点的数字前缀,往新增目录节点中添加的数字前缀与原始的目录节点链路中的目标目录节点的数字前缀相邻。
例如,原始的目录节点链路中的目标目录节点的数字前缀为“1.”,新增目录节点为“标题T11”,则可以往新增目录节点中增加数字前缀“2.”。
另外,若新增目录节点包括数字前缀,则可以根据新增目录节点的数字前缀调整新增目录节点对应的子节点链路中的其他目录节点的数字前缀。
例如,若新增目录节点为“2.标题T11”,则对应的子节点链路中的其他目录节点“1.1.3.1标题T5”、“1.1.3.2标题T6”、“1.1.3.2.1标题T7”、“1.1.3.2.2标题T8”、“1.1.3.3标题T9”、“1.1.3.4标题T10”的数字前缀可以相应地调整为“2.1.3.1标题T5”、“2.1.3.2标题T6”、“2.1.3.2.1标题T7”、“2.1.3.2.2标题T8”、“2.1.3.3标题T9”、“2.1.3.4标题T10”。
在一种可能的实现方式中,在生成目标目录以后,可以显示该目标目录,并且,在显示目标目录时,确定各个目标目录节点的显示坐标范围,根据显示坐标范围显示各个目标目录节点。同时,在一个目录节点链路中,根据目标目录节点的目标节点级别来调整显示坐标范围,不同目标节点级别的目标目录节点的显示坐标范围的横坐标范围不相同,目标目录节点的目标节点级别越低,则对应的显示坐标范围的横坐标范围偏移幅度越大,显示坐标范围的横坐标范围可以是向右侧偏移,具体的偏移幅度可以根据实际情况设定。通过根据目标目录节点的目标节点级别来调整显示坐标范围,能够有效地提升目标目录的显示层次性。
例如,参照图9所示的例子,目录节点“1.2标题T3”的节点级别大于目录节点“1.1.2标题T4”的节点级别,目录节点“1.1.2标题T4”的节点级别大于目录节点“1.1.2.1标题T5”的节点级别,因此目录节点“1.1.2标题T4”相对于目录节点“1.2标题T3”向右侧偏移,目录节点“1.1.2.1标题T5”相对于目录节点“1.1.2标题T4”向右侧偏移。
另外,在显示目标目录时,还可以进一步显示折叠控件,其中,折叠控件用于折叠对应的目录节点链路或者分支链路,具体地,可以将折叠控件与对应的目录节点链路或者分支链路进行关联,当通过折叠控件接收到折叠指令时,将对应的目录节点链路或者分支链路进行折叠显示,同时,调整被折叠的目录节点链路或者分支链路以下的其他目标目录节点的显示坐标范围。通过利用折叠控件将对应的目录节点链路或者分支链路进行折叠显示,能够提升目标目录的显示灵活性,同时,当目录节点的数量较多时,可以降低目标目录的显示空间占用,提升目标目录的可阅读性。
例如,参照图10,图10中目录节点“1.1.3.2标题T6”的折叠控件1001接收到折叠指令,将目录节点“1.1.3.2标题T6”所在的分支链路折叠显示,即将目录节点“1.1.3.2标题T6”的子目录节点“1.1.3.2.1标题T7”和“1.1.3.2.2标题T8”隐藏显示。
下面以一实际例子说明本申请实施例提供的目录生成方法的原理。
参照表1,表1为本申请实施例提供的标题列表的一种可选的数据结构,标题列表的数据类型为数组;内容标题的标题级别的数据类型为数字类型,取值为1至6;内容标题的标题名称的数据类型为字符串类型;内容标题的其他属性在此不再展开介绍。
表1
属性 类型 说明
HeadList Array<HeadNode> 标题列表,数组
HeadNode.level number 标题级别,数字类型,1-6
HeadNode.label string 标题名称,字符串类型
HeadNode其他属性 - -
参照表2,表2为本申请实施例提供的目录树列表的一种可选的数据结构,目录树列表的数据类型为数组;目录节点的节点级别的数据类型为数字类型,取值为1至6;目录节点的节点名称的数据类型为字符串类型;一级目录节点不存在父节点;目录节点的子目录集合包括该目录节点下的所有子节点;目录节点的其他属性在此不再展开介绍。
表2
基于表1和表2所示的数据结构,首先,获取目标网页的网页代码文本,根据网页代码文本中的元素标签识别目标网页中的内容标题,得到一级标题“1.序言”、“2.摘要”、“3.第一章”和“4.第二章”,二级标题“3.1第一节”、“3.2第二节”和“4.1第一节”,三级标题“3.1.1第一段”、“3.1.2第二段”和“4.1.1第一段”,进而构建标题列表,其中,标题列表中的内容标题根据在目标网页中的位置自上至下排列,依次为“1.序言”、“2.摘要”、“3.第一章”、“3.1第一节”、“3.1.1第一段”、“3.1.2第二段”、“3.2第二节”、“4.第二章”、“4.1第一节”和“4.1.1第一段”。
接着,遍历标题列表,创建映射信息和目录树列表;
首先遍历内容标题“1.序言”,创建“1.序言”对应的目录节点,由于该目录节点是一级节点,因此将“1.序言”对应的目录节点添加至目录树列表的末尾位置,并将映射关系“2”-“1.序言”添加至映射信息中;
接着遍历内容标题“2.摘要”,创建“2.摘要”对应的目录节点,由于该目录节点是一级节点,因此将“2.摘要”对应的目录节点添加至目录树列表的末尾位置,并将映射信息中的映射关系“2”-“1.序言”更新为“2”-“2.摘要”;
接着遍历内容标题“3.第一章”,创建“3.第一章”对应的目录节点,由于该目录节点是一级节点,因此将“3.第一章”对应的目录节点添加至目录树列表的末尾位置,并将映射信息中的映射关系“2”-“3.第一章”更新为“2”-“3.第一章”;
接着遍历内容标题“3.1第一节”,创建“3.1第一节”对应的目录节点,由于该目录节点不是一级节点,且不与标题列表中首个内容标题的标题等级相同,因此基于该目录节点的节点等级(二级),从映射信息中匹配出该目录节点的父节点为“3.第一章”对应的目录节点,将“3.1第一节”对应的目录节点添加至“3.第一章”对应的目录节点的子目录列表中,并将映射关系“3”-“3.1第一节”添加至映射信息中;
接着遍历内容标题“3.1.1第一段”,创建“3.1.1第一段”对应的目录节点,由于该目录节点不是一级节点,且不与首个目标节点的标题等级相同,因此基于该目录节点的节点等级(三级),从映射信息中匹配出该目录节点的父节点为“3.1第一节”对应的目录节点,将“3.1.1第一段”对应的目录节点添加至“3.1第一节”对应的目录节点的子目录列表中,并将映射关系“4”-“3.1.1第一段”添加至映射信息中;
接着遍历内容标题“3.1.2第二段”,创建“3.1.2第二段”对应的目录节点,由于该目录节点不是一级节点,且不与首个目标节点的标题等级相同,因此基于该目录节点的节点等级(三级),从映射信息中匹配出该目录节点的父节点为“3.1第一节”对应的目录节点,将“3.1.2第二段”对应的目录节点添加至“3.1第一节”对应的目录节点的子目录列表中,并将映射信息中的映射关系“4”-“3.1.1第一段”更新为“4”-“3.1.2第二段”;
接着遍历内容标题“3.2第二节”,创建“3.2第二节”对应的目录节点,由于该目录节点不是一级节点,且不与首个目标节点的标题等级相同,因此基于该目录节点的节点等级(二级),从映射信息中匹配出该目录节点的父节点为“3.第一章”对应的目录节点,将“3.2第二节”对应的目录节点添加至“3.第一章”对应的目录节点的子目录列表中,并将映射信息中的映射关系“3”-“3.1第一节”更新为“3”-“3.2第二节”;
接着遍历内容标题“4.第二章”,创建“4.第二章”对应的目录节点,由于该目录节点是一级节点,因此将“4.第二章”对应的目录节点添加至目录树列表的末尾位置,并将映射信息中的映射关系“2”-“3.第一章”更新为“2”-“4.第二章”;
接着遍历内容标题“4.1第一节”,创建“4.1第一节”对应的目录节点,由于该目录节点不是一级节点,且不与标题列表中首个内容标题的标题等级相同,因此基于该目录节点的节点等级(二级),从映射信息中匹配出该目录节点的父节点为“4.第二章”对应的目录节点,将“4.1第一节”对应的目录节点添加至“4.第二章”对应的目录节点的子目录列表中,并将映射信息中的映射关系“3”-“3.2第二节”更新为“3”-“4.1第一节”;
接着遍历内容标题“4.1.1第一段”,创建“4.1.1第一段”对应的目录节点,由于该目录节点不是一级节点,且不与首个目标节点的标题等级相同,因此基于该目录节点的节点等级(三级),从映射信息中匹配出该目录节点的父节点为“4.1第一节”对应的目录节点,将“4.1.1第一段”对应的目录节点添加至“4.1第一节”对应的目录节点的子目录列表中,并将映射信息中的映射关系“4”-“3.1.2第二段”更新为“4”-“4.1.1第一段”;
至此,标题列表中的所有内容标题遍历完毕,则对最终的目录树列表进行检查,确定不存在断层,则参照图12,图12为本申请实施例提供的根据目录树列表生成的目标目录另一种可选的结构示意图,可以根据前述的遍历完毕后最终的目录树列表生成目标网页的目标目录,并进行偏移处理和关联折叠控件后在设备上显示。
可以理解的是,虽然上述各个流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时间执行完成,而是可以在不同的时间执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
参照图13,图13为本申请实施例提供的目录生成装置的一种可选的结构示意图,该目录生成装置1300包括:
节点创建模块1301,用于按照目标网页中自上至下的位置顺序遍历目标网页的多个内容标题,根据当前遍历轮次中的内容标题创建目标目录节点,并确定目标目录节点的目标节点级别;
映射信息获取模块1302,用于获取当前遍历轮次中的目标映射信息,其中,目标映射信息用于指示节点级别与父节点之间的映射关系;
匹配模块1303,用于根据目标节点级别从目标映射信息中确定目标目录节点对应的目标父节点;
添加模块1304,用于获取目标网页的目录树列表,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,根据目标目录节点更新目标映射信息;
目录生成模块1305,用于根据添加目标目录节点后的目录树列表生成目标网页的目标目录。
进一步,上述添加模块1304具体用于:
根据目标父节点的确定结果得到目标目录节点在目录树列表中的写入位置;
根据写入位置将目标目录节点添加至目录树列表中。
进一步,上述添加模块1304具体用于:
当目标父节点的确定结果为目标目录节点不存在目标父节点,将目标目录节点在目录树列表中的写入位置确定为目录树列表中的末尾位置;
或者,当目标父节点的确定结果为目标目录节点存在目标父节点,在目录树列表中创建目标父节点对应的子目录集合,将目标目录节点在目录树列表中的写入位置确定为子目录集合中的末尾位置。
进一步,上述匹配模块1303具体用于:
将目标节点级别与目标映射信息中的节点级别进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的目标父节点;
或者,将目标节点级别降低后与目标映射信息中的节点级别进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的目标父节点。
进一步,上述添加模块1304具体用于:
根据目标节点级别从目标映射信息中确定目标目录节点对应的待替换节点;
将待替换节点更新为目标目录节点,得到更新后的目标映射信息。
进一步,上述添加模块1304具体用于:
将目标节点级别与目标映射信息中的节点级别进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的待替换节点;
或者,将目标节点级别提升后与目标映射信息中的节点级别进行匹配,根据匹配结果从目标映射信息中的父节点里确定目标目录节点对应的待替换节点。
进一步,上述映射信息获取模块1302具体用于:
若前一个遍历轮次中的目标节点级别为一级,或者前一个遍历轮次中的目标节点级别与首个遍历轮次中的目标节点级别相同时,获取目录树列表,将前一个遍历轮次的目标目录节点添加至目录树列表中的末尾位置;
将前一个遍历轮次中的目标目录节点与目标节点级别之间的映射关系添加至前一个遍历轮次中的目标映射信息,得到当前遍历轮次中的目标映射信息;
若当前遍历轮次中的目标节点级别为二级以上,或者当前遍历轮次中的目标节点级别与首个遍历轮次中的目标节点级别不相同时,获取当前遍历轮次中的目标映射信息。
进一步,上述节点创建模块1301具体用于:
获取目标网页的网页代码文本;
根据网页代码文本中的元素标签识别目标网页中的多个内容标题,根据元素标签确定各个内容标题的标题级别;
基于在目标网页中自上至下的位置顺序,根据多个内容标题以及内容标题对应的标题级别构建标题列表,遍历标题列表。
进一步,上述节点创建模块1301具体用于:
根据当前遍历轮次中的内容标题确定节点名称,根据当前遍历轮次中的内容标题的标题级别确定节点级别;
根据节点名称和节点级别创建目标目录节点。
进一步,上述目录生成模块1305具体用于:
对添加目标目录节点后的目录树列表进行解析,得到多个目录节点链路,其中,目录节点链路包括多个目标目录节点,任意一个目录节点链路的首个目录节点为目录节点链路中目标节点级别最大的目标目录节点;
根据多个目录节点链路生成目标网页的目标目录。
进一步,上述目录生成模块1305具体用于:
对添加目标目录节点后的目录树列表进行解析,得到多个目录节点链路;
当第一目录节点为所在的目录节点链路中目标节点级别最小的目录节点,第二目录节点为所在的目录节点链路的首个目录节点,且第一目录节点的目标节点级别大于第二目录节点的目标节点级别至少两级时,将第一目录节点所在的目录节点链路和第二目录节点所在的目录节点链路进行合并,得到合并节点链路;
根据合并节点链路和剩余的目录节点链路生成目标网页的目标目录。
进一步,上述目录生成模块1305具体用于:
对添加目标目录节点后的目录树列表进行解析,得到多个目录节点链路;
当目录节点链路中被插入新增目录节点,且新增目录节点与目录节点链路中首个目标目录节点的目标节点级别相同时,基于新增目录节点将目录节点链路拆分成两条子节点链路,其中,目录节点链路中首个目标目录节点以及新增目录节点分别作为两条子节点链路对应的首个目录节点;
根据子节点链路和剩余的目录节点链路生成目标网页的目标目录。
上述目录生成装置1300与目录生成方法基于相同的发明构思,通过按照目标网页中自上至下的位置顺序遍历目标网页的多个内容标题,根据当前遍历轮次中的内容标题创建目标目录节点,并确定目标目录节点的目标节点级别,再获取当前遍历轮次中的目标映射信息,由于目标映射信息用于指示节点级别与父节点之间的映射关系,因此可以根据目标节点级别,快捷地从目标映射信息中确定目标目录节点对应的目标父节点,进而获取目标网页的目录树列表,根据目标父节点的确定结果将目标目录节点添加至目录树列表中,根据添加目标目录节点后的目录树列表生成目标网页的目标目录,此过程中无须进行字符串的匹配,从而能够有效地提升目录生成的效率,降低设备的内存占用;并且,通过根据自上至下的位置顺序遍历目标网页的多个内容标题,进而确定各个内容标题对应的目标目录节点的目标父节点,同时在各个遍历轮次中根据目标目录节点相应更新目标映射信息,在生成目标目录时能够快速确定不同目标目录节点之间的层级关系,从而能够提升目录生成的精细化程度,保持目录生成的准确性。
本申请实施例提供的用于执行上述目录生成方法的电子设备可以是终端,参照图14,图14为本申请实施例提供的终端的部分结构框图,该终端包括:射频(RadioFrequency,简称RF)电路1410、存储器1420、输入单元1430、显示单元1440、传感器1450、音频电路1460、无线保真(wireless fidelity,简称WiFi)模块1470、处理器1480、以及电源1490等部件。本领域技术人员可以理解,图14中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路1410可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1480处理;另外,将设计上行的数据发送给基站。
存储器1420可用于存储软件程序以及模块,处理器1480通过运行存储在存储器1420的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。
输入单元1430可用于接收输入的数字或字符信息,以及产生与终端的设置以及功能控制有关的键信号输入。具体地,输入单元1430可包括触摸面板1431以及其他输入装置1432。
显示单元1440可用于显示输入的信息或提供的信息以及终端的各种菜单。显示单元1440可包括显示面板1441。
音频电路1460、扬声器1461,传声器1462可提供音频接口。
在本实施例中,该终端所包括的处理器1480可以执行前面实施例的目录生成方法。
本申请实施例提供的用于执行上述目录生成方法的电子设备也可以是服务器,参照图15,图15为本申请实施例提供的服务器的部分结构框图,服务器1500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central ProcessingUnits,简称CPU)1522(例如,一个或一个以上处理器)和存储器1532,一个或一个以上存储应用程序1542或数据1544的存储介质1530(例如一个或一个以上海量存储装置)。其中,存储器1532和存储介质1530可以是短暂存储或持久存储。存储在存储介质1530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器1500中的一系列指令操作。更进一步地,中央处理器1522可以设置为与存储介质1530通信,在服务器1500上执行存储介质1530中的一系列指令操作。
服务器1500还可以包括一个或一个以上电源1526,一个或一个以上有线或无线网络接口1550,一个或一个以上输入输出接口1558,和/或,一个或一个以上操作系统1541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
服务器1500中的处理器可以用于执行目录生成方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述各个实施例的目录生成方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行实现上述的目录生成方法。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本申请实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应了解,本申请实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本申请权利要求所限定的范围内。

Claims (16)

1.一种目录生成方法,其特征在于,包括:
按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题,根据当前遍历轮次中的所述内容标题创建目标目录节点,并确定所述目标目录节点的目标节点级别;
获取当前遍历轮次中的目标映射信息,其中,所述目标映射信息用于指示节点级别与父节点之间的映射关系;
根据所述目标节点级别从所述目标映射信息中确定所述目标目录节点对应的目标父节点;
获取所述目标网页的目录树列表,根据所述目标父节点的确定结果将所述目标目录节点添加至所述目录树列表中,根据所述目标目录节点更新所述目标映射信息;
根据添加所述目标目录节点后的所述目录树列表生成所述目标网页的目标目录。
2.根据权利要求1所述的目录生成方法,其特征在于,所述根据所述目标父节点的确定结果将所述目标目录节点添加至所述目录树列表中,包括:
根据所述目标父节点的确定结果得到所述目标目录节点在所述目录树列表中的写入位置;
根据所述写入位置将所述目标目录节点添加至所述目录树列表中。
3.根据权利要求2所述的目录生成方法,其特征在于,所述根据所述目标父节点的确定结果得到所述目标目录节点在所述目录树列表中的写入位置,包括:
当所述目标父节点的确定结果为所述目标目录节点不存在所述目标父节点,将所述目标目录节点在所述目录树列表中的写入位置确定为所述目录树列表中的末尾位置;
或者,当所述目标父节点的确定结果为所述目标目录节点存在所述目标父节点,在所述目录树列表中创建所述目标父节点对应的子目录集合,将所述目标目录节点在所述目录树列表中的写入位置确定为所述子目录集合中的末尾位置。
4.根据权利要求1所述的目录生成方法,其特征在于,所述根据所述目标节点级别从所述目标映射信息中确定所述目标目录节点对应的目标父节点,包括:
将所述目标节点级别与所述目标映射信息中的节点级别进行匹配,根据匹配结果从所述目标映射信息中的父节点里确定所述目标目录节点对应的目标父节点;
或者,将所述目标节点级别降低后与所述目标映射信息中的节点级别进行匹配,根据匹配结果从所述目标映射信息中的父节点里确定所述目标目录节点对应的目标父节点。
5.根据权利要求1所述的目录生成方法,其特征在于,所述根据所述目标目录节点更新所述目标映射信息,包括:
根据所述目标节点级别从所述目标映射信息中确定所述目标目录节点对应的待替换节点;
将所述待替换节点更新为所述目标目录节点,得到更新后的所述目标映射信息。
6.根据权利要求5所述的目录生成方法,其特征在于,所述根据所述目标节点级别从所述目标映射信息中确定所述目标目录节点对应的待替换节点,包括:
将所述目标节点级别与所述目标映射信息中的节点级别进行匹配,根据匹配结果从所述目标映射信息中的父节点里确定所述目标目录节点对应的待替换节点;
或者,将所述目标节点级别提升后与所述目标映射信息中的节点级别进行匹配,根据匹配结果从所述目标映射信息中的父节点里确定所述目标目录节点对应的待替换节点。
7.根据权利要求1所述的目录生成方法,其特征在于,所述获取当前遍历轮次中的目标映射信息,包括:
若前一个遍历轮次中的所述目标节点级别为一级,或者前一个遍历轮次中的所述目标节点级别与首个遍历轮次中的所述目标节点级别相同时,获取所述目录树列表,将前一个遍历轮次的所述目标目录节点添加至所述目录树列表中的末尾位置,将前一个遍历轮次中的所述目标目录节点与所述目标节点级别之间的映射关系添加至前一个遍历轮次中的目标映射信息,得到当前遍历轮次中的目标映射信息;
若当前遍历轮次中的所述目标节点级别为二级以上,或者当前遍历轮次中的所述目标节点级别与首个遍历轮次中的所述目标节点级别不相同时,获取当前遍历轮次中的目标映射信息。
8.根据权利要求1所述的目录生成方法,其特征在于,所述按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题,包括:
获取目标网页的网页代码文本;
根据所述网页代码文本中的元素标签识别所述目标网页中的多个内容标题,根据所述元素标签确定各个所述内容标题的标题级别;
基于在所述目标网页中自上至下的位置顺序,根据多个所述内容标题以及所述内容标题对应的所述标题级别构建标题列表,遍历所述标题列表。
9.根据权利要求8所述的目录生成方法,其特征在于,所述根据当前遍历轮次中的所述内容标题创建目标目录节点,包括:
根据当前遍历轮次中的所述内容标题确定节点名称,根据当前遍历轮次中的所述内容标题的所述标题级别确定节点级别;
根据所述节点名称和所述节点级别创建目标目录节点。
10.根据权利要求1至9任意一项所述的目录生成方法,其特征在于,所述根据添加所述目标目录节点后的所述目录树列表生成所述目标网页的目标目录,包括:
对添加所述目标目录节点后的所述目录树列表进行解析,得到多个目录节点链路,其中,所述目录节点链路包括多个所述目标目录节点,任意一个所述目录节点链路的首个目录节点为所述目录节点链路中所述目标节点级别最大的所述目标目录节点;
根据多个所述目录节点链路生成所述目标网页的目标目录。
11.根据权利要求1至9任意一项所述的目录生成方法,其特征在于,所述根据添加所述目标目录节点后的所述目录树列表生成所述目标网页的目标目录,包括:
对添加所述目标目录节点后的所述目录树列表进行解析,得到多个目录节点链路;
当第一目录节点为所在的所述目录节点链路中所述目标节点级别最小的目录节点,第二目录节点为所在的所述目录节点链路的首个目录节点,且所述第一目录节点的所述目标节点级别大于所述第二目录节点的所述目标节点级别至少两级时,将所述第一目录节点所在的所述目录节点链路和所述第二目录节点所在的所述目录节点链路进行合并,得到合并节点链路;
根据所述合并节点链路和剩余的所述目录节点链路生成所述目标网页的目标目录。
12.根据权利要求1至9任意一项所述的目录生成方法,其特征在于,所述根据添加所述目标目录节点后的所述目录树列表生成所述目标网页的目标目录,包括:
对添加所述目标目录节点后的所述目录树列表进行解析,得到多个目录节点链路;
当所述目录节点链路中被插入新增目录节点,且所述新增目录节点与所述目录节点链路中首个所述目标目录节点的所述目标节点级别相同时,基于所述新增目录节点将所述目录节点链路拆分成两条子节点链路,其中,所述目录节点链路中首个所述目标目录节点以及所述新增目录节点分别作为两条所述子节点链路对应的首个目录节点;
根据所述子节点链路和剩余的所述目录节点链路生成所述目标网页的目标目录。
13.一种目录生成装置,其特征在于,包括:
节点创建模块,用于按照目标网页中自上至下的位置顺序遍历所述目标网页的多个内容标题,根据当前遍历轮次中的所述内容标题创建目标目录节点,并确定所述目标目录节点的目标节点级别;
映射信息获取模块,用于获取当前遍历轮次中的目标映射信息,其中,所述目标映射信息用于指示节点级别与父节点之间的映射关系;
匹配模块,用于根据所述目标节点级别从所述目标映射信息中确定所述目标目录节点对应的目标父节点;
添加模块,用于获取所述目标网页的目录树列表,根据所述目标父节点的确定结果将所述目标目录节点添加至所述目录树列表中,根据所述目标目录节点更新所述目标映射信息;
目录生成模块,用于根据添加所述目标目录节点后的所述目录树列表生成所述目标网页的目标目录。
14.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12任意一项所述的目录生成方法。
15.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12任意一项所述的目录生成方法。
16.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12任意一项所述的目录生成方法。
CN202211257847.9A 2022-10-13 2022-10-13 目录生成方法、装置、电子设备及存储介质 Pending CN116992109A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211257847.9A CN116992109A (zh) 2022-10-13 2022-10-13 目录生成方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211257847.9A CN116992109A (zh) 2022-10-13 2022-10-13 目录生成方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116992109A true CN116992109A (zh) 2023-11-03

Family

ID=88525371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211257847.9A Pending CN116992109A (zh) 2022-10-13 2022-10-13 目录生成方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116992109A (zh)

Similar Documents

Publication Publication Date Title
CN107436875B (zh) 文本分类方法及装置
US9418138B2 (en) Method and system for determining sets of variant items
CN110147437A (zh) 一种基于知识图谱的搜索方法及装置
CN111522927B (zh) 基于知识图谱的实体查询方法和装置
KR20200019824A (ko) 엔티티 관계 데이터 생성 방법, 장치, 기기 및 저장 매체
CN110569496A (zh) 实体链接方法、装置及存储介质
CN111831911A (zh) 查询信息的处理方法、装置、存储介质和电子装置
CN112463991B (zh) 历史行为数据的处理方法、装置、计算机设备及存储介质
CN104424302A (zh) 一种同类数据对象的匹配方法和装置
CN112084342A (zh) 试题生成方法、装置、计算机设备及存储介质
KR20230115964A (ko) 지식 그래프 생성 방법 및 장치
CN112818111A (zh) 文档推荐方法、装置、电子设备和介质
CN112988784A (zh) 数据查询方法、查询语句生成方法及其装置
CN110059172B (zh) 基于自然语言理解的推荐答案的方法和装置
CN113836316B (zh) 三元组数据的处理方法、训练方法、装置、设备及介质
CN111339784A (zh) 一种新话题的自动挖掘方法和系统
JP7172187B2 (ja) 情報表示方法、情報表示プログラムおよび情報表示装置
CN112000495B (zh) 用于兴趣点信息管理的方法、电子设备和存储介质
CN113239256A (zh) 生成网站签名的方法、识别网站的方法及装置
CN111930891A (zh) 基于知识图谱的检索文本扩展方法及相关装置
CN116738057A (zh) 信息推荐方法、装置、计算机设备及存储介质
CN116992109A (zh) 目录生成方法、装置、电子设备及存储介质
CN111723177B (zh) 信息提取模型的建模方法、装置及电子设备
CN113011152B (zh) 文本处理方法、装置、设备及计算机可读存储介质
CN117009430A (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