没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记142(2006)129-141www.elsevier.com/locate/entcsWeb搜索引擎AntonioFarina 1,Ni e v e sR. Brisaboa 2,CristinaPar's3,andJose R. 帕拉姆岛4Databas e Lab. ,U niv. daCorunnAmbassador,FacultadeeInforma'ticCampusdeEl vinAmbassadors/n,15071ACorunAmbassador,Spain.摘要在本文中,我们提出了适应的压缩技术,专门设计用于压缩大型文本数据库,网络搜索引擎的特点。(s,c)-Dense Code属于一种新的压缩技术[17,9],它允许直接在压缩文件上进行快速和灵活的搜索。然而,这些方法仅适用于包含至少1兆字节的大型自然文本,否则它们将无法实现有吸引力的压缩量。为了利用这些技术的搜索能力(它们允许在压缩文件上搜索比在普通版本上搜索快8倍[17]),我们提出了对基本压缩技术(s,c)的修改-密集代码,以实现小文件的合理压缩比,这是我们使用搜索引擎时的要求保留字: 压缩、文档库1介绍随着万维网在过去几十年的快速发展,搜索引擎已成为查找任何类型信息的重要工具*部分得到市政和技术部赠款(#TIC2003-06593)和(#FIT-150500-2003-588)以及Xunta de Galicia赠款(#PGIDIT02SIN10501PR)的支助。1电子邮件:fari@udc.es2电子邮件:brisaboa@udc.es3 电子邮件地址:cparis@udc.es4电子邮件:parama@udc.es1571-0661 © 2005 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2004.09.043130A. Fariña等人理论计算机科学电子笔记142(2006)129许多搜索引擎已经开发出来,一些常见的例子包括AltaVista [2],Alltheweb [1]和Google [4]。还开发了一些专门为特定社区(例如国家)提供服务的搜索引擎。这些搜索引擎中的一些是tumba![19](葡萄牙)、todocl [6](智利)、todobr [5](巴西)、vieiros [7](加利西亚)、buscopio [3](西班牙)。这些搜索引擎是全球搜索引擎的替代品,用于在这些社区的页面中查找信息这些搜索引擎大多使用自己的技术、硬件架构、索引技术、存储策略等,由他们自己的设计师开发。然而,在这些搜索引擎中可以找到一些共同的特征。在这些共同特征中,我们可以发现搜索引擎存储原始网页是为了构建片段(页面内的短句,包括搜索模式),以响应查询。在许多情况下,网页被压缩存储,通常使用基于Ziv-Lempel技术的工具[20,21]。此外,它们通常采用倒排索引,其中每个单词都有一个相关的指针,指向单词出现的压缩文件。为了构建对用户查询的响应,首先使用倒排索引来检索与查询匹配的文档列表。 然后,在使用排名策略获得排名最高的页面后,有必要解压缩文件,并使用搜索算法找到第一个出现的搜索词来构建片段。显然,应尽快提供对用户查询的响应,从而对上述过程造成严重的时间限制。因此,尽管网页压缩是一种节省空间的有吸引力的方法,但如果压缩方案不允许直接在压缩文本上搜索单词,则由于在搜索之前必须解压缩,检索效率将降低。最近,一些研究已经开发出压缩技术,允许在压缩文本中搜索单词而无需解压缩,以这种方式,对于某些查询,搜索速度可以快八倍[17,9]。然而,这些技术是为包含至少1兆字节的大型自然语言文本设计的这对于许多搜索引擎来说是不可接受的,因为每个网页都是单独压缩的,因此,应该压缩的文件只包含数十或数百个字节。在本文中,我们提出了一种称为(s,c)-密集码[9,10]的压缩技术,以克服文件大小的问题。(s,c)-Dense Code是一种统计半静态方法。这意味着A. Fariña等人理论计算机科学电子笔记142(2006)129131压缩是通过用唯一的码字替换每个原始符号来实现的。然而,为了重建原始信息,压缩文件应该包括原始符号和码字之间的等价性。这是这种技术的主要缺点,因为对于小文件,这些信息需要额外的空间,这会破坏压缩比。本文的主要贡献是修改了这些信息的存储方式,以提高小文件的(s,c)-密集码压缩比。另一方面,通过将(s,c)-Dense Code适应于小文件,我们证明了它的好处,特别是它的搜索速度,使这种技术适合搜索引擎,这是这些环境中的一个重要变量2压缩技术经典的压缩技术,如Hu Bullman面向字符的代码[13],或Ziv和Lempel[20,21]的著名算法,不适用于文本数据库。这些技术的一个重要缺点是在压缩文本上直接搜索单词或其他模式的不准确性。此外,基于胡氏码的压缩方案并不经常用于自然语言文本,因为压缩比很差胡氏编码的思想是通过将更短的码字分配给更频繁的符号来压缩文本。胡氏代码的传统实现 他们用这些字符作为字母表的符号。在[15]中,他们使用文本中的单词作为要压缩的符号。从压缩的角度来看,基于字符的Hu Bumman方法能够将英文文本减少到其原始大小的约60%,而基于单词的Hu Bumman方法能够将其减少到其原始大小的25%,因为单词的分布比字符的分布更有偏差。允 许 直 接 搜 索 压 缩 文 本 的 最 成 功 的 压 缩 技 术 之 一 是 Tagged HuHuberman Code [17]。它使用字节序列作为码字,其中每个字节的第一个比特被保留以标记该字节是否是码字的第一个字节。因此,每个字节中只有7位用于胡氏码。虽然这在压缩性能方面有代价,但由于压缩文件大约增长了11%,因此添加标记位允许通过简单地压缩模式然后使用任何经典的字符串匹配算法来直接搜索压缩文本。(s,c)-密集码[9,10]是一种压缩技术,它具有标记胡氏码的所有属性,即:132A. Fariña等人理论计算机科学电子笔记142(2006)129和短语直接在压缩文本上使用任何已知的顺序模式匹配算法、高效的基于单词的近似和扩展搜索而无需任何解压缩、以及高效地解压缩文本的任意部分。然而,它比Tagged Hu Denseman有一些优点,其中最重要的是(s,c)-Dense码获得了更好的压缩比,并且在压缩和解压缩过程中速度更快。当它至少有1兆字节时,它的压缩率约为原始文本的30%。这种对大小的要求是这种技术的唯一缺点,在其应用于搜索引擎的情况下,这成为一个严重的问题,因为,正如我们已经注意到的,压缩文件太小(只有几KB)。稍后我们将展示我们如何处理这个问题。这种技术是以前的压缩技术的推广,称为End-Tagged Dense Code[11,14],它获得了比Tagged Hu Dense Man更好的压缩比,以及更简单和更快的编码2.1尾标记密集码End-Tagged Dense Code [11]基于Tagged Hu Dense Code ,但不是使用Dense位来表示码字的开始,而是使用Dense位来表示码字的结束。也就是说,对于码字的任何字节的第一个比特,除了最后一个字节之外,其标志位为0,其标志位为1这种变化带来了令人惊讶的后果。现在,该位足以确保代码是前缀码(没有码字是另一个码字的前缀),而不管其他7位的内容如何。因此,根本不需要在剩余的7位上使用Hu Bumman编码,可以使用所有可能的组合,只要Hu Bumman位用于发信号通知码字的最后一个字节。因此,代码的计算非常简单:只需要通过降低频率对词汇表中的单词进行排序,然后依次分配码字。也就是说,第一个字被编码为10000000,然后第二名为10000001,直到第128名为1111111。第129¯ ¯th¯字编码为00000000:1000000,130为0000000:10000001,以此类推。¯ ¯ ¯ ¯2.2(s,c)-稠密码(s,c)-Dense Code是一种统计半静态前缀码。它是统计的,因为原始文本中的词频分布被用来分配码字到原始词。它是半静态的,因为一旦码字被分配给字,这种分配就不会改变,也就是说,字总是用相同的码字编码。A. Fariña等人理论计算机科学电子笔记142(2006)129133(s,c)-密集码码字由来自2b值的字母表的符号序列形成,确切地说,符号值将在0和2b-1之间。由于实现限制,每个符号是字节,即b =8,因此码字是字节序列。这个想法是通过为每个原始单词分配特定的码字来压缩文本,以这种方式,频率最高的单词具有较短的码字,反之亦然。 编码的过程是通过相对于其频率顺序将码字顺序地分配给原始文本中的每个单词来执行的,在最频繁的单词将仅由1个字节组成的情况下,并且在频率的下降顺序中,单词将被编码为2、3等,字节End-Tagged Dense Code((s,c)-Dense Code的前身)使用2b−1值,从 0 到 2b−1− 1 , 用 于 码 字 的 所 有 字 节 , 除 了 最 后 一 个 字 节(continuers),并使用其他2b−1值,从2b−1到2b− 1,用于码字的最后一个字节(stoppers)。然而,对于具有特定词频分布的给定语料库,不同数量的连续词和停止词可能比每组仅使用2b−1个值更好地压缩(s,c)密集码(s+c= 2b)将一个字节的码字分配给s个最频繁的字,两个字节分配给下一个cs,三个字节分配给下一个c2s,依此类推。 介于0和c−1之间的数字被称为“continuers”,介于c和c + s −1之间的数字被称为“stoppers”。很明显,尾标记密集码是一个(2b−1,2b−1)-密集码。A(s,c)-密集码可以通过适当地选择s和c值而变得更加高效。在所有可能的连续序列终止的一个停止,对于一个给定的概率分布的密集码是一个最小化的平均码字长度。为了获得给定语料库的最佳s和c值,在[9,10]中提供了一种算法。对该算法的描述超出了本文的范围。例2.1由(2,3)-密集码分配给15个字的码字如下:3,4,0,3,0,4,1,3,1,4,2,3,2,4,0,0,3,0,0,4,0,1,3很明显,103将被分配给最频繁的单词,104将被分配给第二个单词,依此类推。请注意,码字并不取决于原始单词的确切概率,而只是取决于其频率顺序。事实上,给定一个单词秩i,我们可以通过几个操作获得它的码字,所以我们不需要134A. Fariña等人理论计算机科学电子笔记142(2006)129要存储代码,只需将已排序的词汇表存储在压缩文件中。也可以执行相反的操作,即,给定码字,可以获得对应词在排序词汇表中的排名位置最后,压缩文件将由两部分组成。第一个是排序的词汇表,也就是说,按频率排序的原始文本中出现的单词列表。第二部分是压缩文本本身,其中每个单词都被其码字替换3(s,c)-应用于搜索引擎的3.1压缩在本节中,我们将展示搜索引擎如何利用(s,c)-Dense Code,因为正如我们已经指出的那样,通过使用(s,c)-Dense Code,搜索引擎可以直接在压缩文件上搜索模式,以构建片段。压缩过程从使用适当算法计算最佳s和c值开始[9,10]。由于在给定语料库的s的最佳值附近,压缩对s(和c)的精确值相对不敏感[9],因此可以从从网络收集的大量网页中计算这些值,并为将来压缩的任何网页保持此s值也就是说,代替为每个网页计算s,系统将始终使用s的此值以便节省压缩过程中的计算时间。我们进行了一些实证研究,使用网页提取的通巴!搜索引擎在这些研究中,发现s= 166是最佳值。然而,如果我们计算完整语料库的代码,这样的代码将太大(例如,在tumba!我们将不得不对10260417个码字进行编码,在语料库中找到的每个单词一个码字这将有两个后果:首先,这个词汇表将不适合内存,因此压缩/解压缩时间将很慢,其次,实现的压缩将很低。这种情况是由于词汇表的大小,迫使低频率的单词用长码字编码。这可能不适用于特定的网页,其中一个单词可能在该页面中具有较高的频率,但相对于整个语料库来说频率较低,因此它将使用长码字进行编码,从而失去压缩比。这个想法可以推广到任何低频率的单词,也就是说,由于发现的单词数量很大,平均来说,它们将用长码字编码为了减轻这个问题,当网被分成许多网时,A. Fariña等人理论计算机科学电子笔记142(2006)129135页面,每个页面都有不同的词汇表和不同的频率分布,由于每个页面都生成一个压缩文件,我们决定将整个集合中的单词分为两个不同的词汇表:一个是所有文件共享的公共词汇表,其中包含整个语料库中频率最高的单词,另一个是每个文件的特定词汇表,其中包含一些没有出现在公共词汇表中的单词,如图1所示。必须记住,原始的(s,c)-密集代码技术将每个文本的单词列表存储在压缩文件中,以便能够来重建初始信息。通过这个小的修改,我们节省了空间,因为所有文件都共享公共词汇,因此在大多数情况下,我们避免了特定词汇中频率最高的单词的重复。此外,并不是所有没有出现在通用词汇表中的单词都被放在特定词汇表中。也就是说,给定文件中的单词列表,其中一些属于通用词汇表,其中一些属于特定词汇表,但其中一些没有编码,因此,这些单词不存在于词汇表中。这是因为不值得将码字分配给频率=1的那些字和频率=2且只有一个字符的那些字,因此这些字保持未压缩。这种不寻常的情况应该通过在未压缩字的开头和结尾放置一个特殊的码字来表示。因此,如果我们观察图1,则可以通过将公共词汇表(cv)和特定词汇表(sv3)链接在一起并考虑到某些单词未编码来获得解压缩ct3在确定两个词汇表的最佳大小的一些实验结果之后,发现当公共词汇表中的单词数量加上特定词汇表中的单词数量达到可以用两个字节编码的单词数量时(即s+sc,大约15000个单词),可以获得更好的结果。3.2搜索/解压缩使用(s,c)-密集代码,不需要解压缩文件来查找一种模式 唯一的要求是找到对应于要搜索的模式的码字(在我们的情况下通常是几个单词),然后使用常规的模式匹配算法,如下所述。让我们假设我们正在寻找一个词。为了获得对应的码字,需要在全局词汇表(链接在一起的通用词汇表和专用词汇表)中找到模式。假设公共词汇表在主存中,136A. Fariña等人理论计算机科学电子笔记142(2006)129cv:通用词汇sv:专用词汇ct:压缩文本...压缩文件Fig. 1.压缩文件的结构。可以在O(v)中位于主存中,因为v是特定词汇表的大小。因此,如果模式在公共词汇表中,则可以在O(1)中找到模式的码字,如果模式在特定词汇表中,则可以在O(v)中找到模式的码字。因此,搜索(全局词汇表中的码字)可以在O(v)中执行。公共词汇表在主存储器中存储为散列表,因此在公共词汇表中搜索码字的成本可以忽略不计。然而,如果这个词不在常用词汇表中,则应探索特定词汇表。这个词汇表存储在相应的压缩文件中,因此应该按顺序查找。为了加快将来在特定词汇表中的搜索速度,在搜索的同时,特定词汇表存储在主内存中的哈希表中。此外,一旦在词汇表中找到搜索的单词,搜索就结束,节省了计算时间。在特定词汇表中的未来搜索可以利用存储在哈希表中的特定词汇表的一部分,但是如果新搜索的单词不存在于哈希表中,则应继续在压缩文件中进行顺序搜索(将新检查的码字添加到哈希表中)。一旦我们有了与搜索模式相对应的码字,我们就必须找到文本中第一次出现的码字,以便构建片段。这种搜索是通过经典的模式匹配算法来执行的,没有任何具体的考虑,也就是说,将压缩文本视为纯文本。通常,经典的模式匹配算法使用沿着文本从左向右滑动的模式大小的搜索窗口,并且在窗口内搜索模式。这些算法在窗口移动和模式搜索的方式上有所不同。我们选择使用Horspool算法[12],这是一个CVCT1SV1ct2SV2CT3SV3ctnSVNA. Fariña等人理论计算机科学电子笔记142(2006)129137使用大字母表[16]可以获得最佳性能,因为256个ASCII值被用作字母表。使用这种方法,搜索是沿着搜索窗口向后进行的,读取窗口的最长子集,该子集也是模式的子集。这种方法平均可以避免阅读文本的某些字符。使用这种技术的最著名的算法是Boyer-Moore [8]算法,该算法已被Horspool [12]和Sunday [18]简化。该算法的工作原理如下。对于搜索窗口的每个位置,将其最后一个字符与模式的最后一个如果它们匹配,搜索窗口将根据模式向后验证,直到找到模式或在文本字符上失败。然后,如果模式与搜索窗口不完全匹配,则无论是否存在部分匹配,窗口都将根据模式中最后一个字符的下一次出现而移动。图2显示了使用Horspool算法的示例。在步骤1中,窗口(a)的最后一个字符与模式的最后一个字符匹配。验证继续向后进行,并在下一个字符(c/=r)上失败。然后,移动窗口,使其最后一个字符(a)与模式中下一个出现的相同字符对齐(shift = 3)。在步骤2在模式(b a)的最后一个字符中存在失败,因此窗口再次根据其最后一个字符移位(shift = 2)。最后,在步骤3中,窗口的最后一个字符与模式的最后一个字符匹配。窗口将被向后验证,并找到一个事件4实证结果我们从tumba从网络上收集的一些文件中随机选择了一些文件进行实证研究。Tumba在压缩比和构建片段的时间方面比较了当前技术和(s,c)-密集代码。我们用的是Tumba!因为我们正在与这个搜索引擎的开发团队合作。这允许我们访问他们系统的组件,然后我们只需要构建实现我们算法的软件,以取代tumba中的压缩模块!系统之后,我们可以用tumba!收集的真实网页进行实证研究。在表1中,我们给出了原始文件的字节大小,以及两种方法的压缩和(s,c)-密集码。最后一列表示通过这两种方法获得的压缩比。必须考虑到,第3节中解释的特定词汇表的大小被添加到138A. Fariña等人理论计算机科学电子笔记142(2006)129搜索窗口文字说明:| |第一步:B 一 R失败下一次出现在模式Shift= 3中搜索窗口正文:第二一一 R失败一R 一下一次出现b在模式Shift= 2中正文:第3搜索窗口匹配图二. Horspool示例。压缩文件的大小使用(s,c)-密集代码。表2显示了tumba!采用(s,c)-Dense码作为压缩技术,Horspool作为搜索算法的新方法。可以看出,使用(s,c)-Dense Code,构建代码片段的时间显著减少,因为不需要解压缩文件来搜索文件中的模式观察到,尽管(s,c)-密集代码在与tumba!它减少了时间,这是搜索引擎中的一个重要变量,以便尽可能快地对用户查询做出响应。(s,c)-Dense Code的修改改进了原始版本在应用于小文件时的结果。5结论和今后的工作在这篇文章中,我们提出了一个适应的压缩技术和搜索算法作为替代使用的大多数搜索引擎,也就是说,那些基于Ziv Lempel。使用(s,c)-Dense Code作为压缩技术,可以在压缩文件上直接搜索,节省了解压缩所需的时间。然而,尽管(s,c)-密集码压缩小的限制,B一D一C一RBD一C一RB一C一D一C一RBB一一RB一RB一C一RB一RD一一C一一一 B R 一 C 一 B R 一 C 一 D 一 B R 一一 B R 一 C 一 D 一 B R 一A. Fariña等人理论计算机科学电子笔记142(2006)129139文件名称大小(字节)压缩比(%)原始Tumba(s,c)-DCTumba(s,c)-DC1069.txt58134029158.5250.091065.txt1629846122951.9375.451037.txt28001369193048.8968.931291.txt49392113328442.7866.491249.txt52122324333644.5964.015573.txt66443597455254.1468.513554.txt74973900475352.0263.404408.txt82263779457045.9455.562691.txt95874517564247.1258.857101.txt103054983657648.3663.81135.txt112534133601336.7353.434081.txt116085133616844.2253.141358.txt1766866131146137.4364.872276.txt165552626028548437.8151.646428.txt183179721929420539.4151.436200.txt188755692428427736.6844.652161.txt1928847137610849337.0056.257391.txt26929410552413471239.1950.029916.txt38954714891619723838.2350.632439.txt55139219527122620935.4141.03表1压缩比的比较。files,提出了一个解决这个问题的修改,增加了一个通用词汇表,其中包含频率最高的单词,这些单词将由集合中的所有文件共享这是本文的主要贡献一些实证结果比较新的方法与通巴!以压缩比和构建代码段的时间表示。新技术并不能改善通巴舞!当涉及到压缩比时,因为特定词汇的大小(第3节)被添加到压缩文件的大小中。另一方面,构建代码段当使用新技术时,它会大幅下降。尽管压缩比的损失,实现的时间减少使这些方法成为一个合适的替代使用搜索引擎,其中响应时间是最重要的变量。修改后的(s,c)-Dense Code(约50%)的压缩比仅比Tumba差10%!比率。然而,这些结果代表了搜索速度和压缩比之间的良好平衡,当我们处理搜索引擎。140A. Fariña等人理论计算机科学电子笔记142(2006)129文件名称时间(ms)时间减少(%)Tumba(s,c)-DC1069.txt0.6220.12080.711065.txt0.6020.10083.391037.txt1.3020.26080.031291.txt1.8020.26085.571249.txt2.1820.40081.675573.txt3.4240.60082.483554.txt2.7020.58278.464408.txt4.0060.66283.472691.txt4.2280.68083.927101.txt5.5881.04081.39135.txt2.4240.24090.104081.txt5.4480.84084.581358.txt3.1640.50084.202276.txt4.0460.54086.656428.txt1.3020.18286.026200.txt1.8620.24087.112161.txt2.8440.44284.467391.txt1.1820.72039.099916.txt1.2000.22081.672439.txt2.0221.64218.79表2时间比较。到目前为止,在压缩文本中搜索精确的模式。将来,这些算法应该得到改进,以允许搜索模式的不同版本,例如,无论模式是用大写字母还是小写字母书写,是否带有重音等,都应该匹配。引用[1] Alltheweb.com、http://www.alltheweb.com。[2] Altavista,http://www.altavista.com。[3] Buscopio:Directorioybuscadordebuscadores,http://www.buscopio.net.[4] Google,http://www.google.com。[5] Todobr:Todo brasil na internet,http://www.todobr.com.br.[6] Todocl:El buscador de todo chile,http://www.todocl.cl.A. Fariña等人理论计算机科学电子笔记142(2006)129141[7] 维耶罗斯:Buscador,http://buscador.vieiros.com/ligazons/buscador。[8] 博耶河S. 和j.S. Moore,一种快速字符串搜索算法,ACM通信20(1977),pp. 762[9] Brisaboa,N. 、杨A. Farinapa,G. 不,不。Esteller,(s,c)-densecoding:Anopt imized自然语言文本数据库的压缩代码,在:Proc.10thInternational Symposium on String Processingand Information Retrieval(SPIRE 2003),LNCS 2857,2003,pp.122-136[10] aboa,N. 、杨A. Farinapa,G. 不,不,不。 L. 我知道了,J。 R. Param'a和M。 Estelller,Codificaci o'n ( s , c ) -densa : optimizandolacompresio'ndetexto en lenguajenatural , in :VIIIJornadasdeIngenier'aiadelSoftwarreyBasesdeDatos(JISBD2003),2003,pp. - 我知道[11] aboa,N.、E.Iglesias,G.Navarro和J。Param'a,Aneclancientcompressioncodeedeforextdatabases , in : 25th European Conference on IRResearch,ECIR 2003,LNCS 2633,2003,pp.468-481.[12] 霍斯普河N.,实用的字符串快速搜索,软件实践和经验10(1980),pp。501-506[13] Hu Jiangman,D.一、一种构造最小冗余码的方法。,Proc. Inst. Radio Eng.40(1952),pp.1098-1101[14] Iglesisas , E. , N.Brisaboa , J.帕 拉 姆 , A 。 Farinapa , G.不 , 不 。 Esteller ,Usandot′ecnicasdecompresiondetextosenbiotecasdigitales , in : IVJornadeBiotecasDigitales(JBIDI2003),2003,pp.39比48[15] Mo Zerat,A., 基于字的文本压缩,软件-实践和经验19(1989),pp。185-198.[16] Navarro,G.和M. Ravennot,[17] Silva de Euga,E.,G. Navarro,N. Ziviani和R. Baeza-Yates,压缩文本的快速和可扩展的单词搜索,ACM信息系统学报18(2000),pp.113-139[18] 星期天,D。M.,一个非常快速的子串搜索算法,ACM通信33(1990),pp。132[19] XLDB,Tumba! - temos um motor de busca alternativo,http://www.tumba.pt.[20] Ziv , J. 和 A. Lempel , A universal algorithm for sequential data compression , IEEETransactions on Information Theory23(1977),pp.337-343[21] Ziv,J.和A. Lempel ,Compression of individual sequences via variable-rate coding, IEEETransactions on Information Theory24(1978),pp.530-536
下载后可阅读完整内容,剩余1页未读,立即下载
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 基于Springboot的医院信管系统
- 基于Springboot的冬奥会科普平台
- 基于Springboot的社区医院管理服务系统
- 基于Springboot的实习管理系统
- TI-TCAN1146.pdf
- 基于Springboot的留守儿童爱心网站
- S32K3XXRM.pdf
- Ansible Automation Platform 快速安装指南 v3.8.1
- Ansible Tower 发行注记 v3.8.1-76页
- C语言笔记-考研版(进阶)
- Design_of_Analog_CMOS_Integrated_Circuit20200602-85440-9wt61m-with-cover-page-v2 (1).pdf
- Ansible Automation Platform 安装和参考指南 v3.8.1-59页
- 浅析5G技术在工业互联网领域的应用研究
- 查重17 岑彩谊-基于otn技术的本地承载网-二稿 .docx
- 自考计算机应用基础知识点.doc
- 数据库系统安全、技术操作规程.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)