数字文件关键特征的自动撷取方法
技术领域
本发明涉及一种数字文件自动检索方法,特别涉及一种数字文件关键特征的自动撷取方法。
背景技术
目前因特网的通达程度与普及速度,使数据成长更为快速,各种检索系统的使用情况更为频繁。新一代信息检索系统,尤其是允许全文式(full-text)或内容为主(content-based)的查询系统,必须能够运用更有效率的自动化技术,以提供简易有效的检索服务。然而此类自动化技术,如自动索引、索引典自动建立、自动摘要、自动分类、相关回馈、自动过滤、近似检索等,大部分都必须先进行文件关键特征撷取的动作,依此结果再进行其他的处理。因此,无论是书目性数据、数字全文数据、经OCR(Optical CharacterRecognition,光学文字辨识)光学文字辨识而可能有错字的噪声(noisy)文件、或数字音乐文件,如MIDI(Musical Instrument Digital Interface,音乐设备数字接口)格式的文件,关键特征自动撷取都是信息检索系统的基础与核心技术,其重要性将随网络的发展而越来越明显。
过去大部分的信息检索系统,不管使用者要查询的最终媒体为何,仅能提供文字媒体的全文或书目性数据作为检索的对象。如今,多媒体数据,如音乐数据,也有相当多的数字化文件出现在网络上,供人下载利用。例如,以MIDI形式记载相当于完整乐谱内容的数字文件,即如雨后春笋般在网站上出现。
音乐数据过去是以书目数据的形式提供查询、取得与利用。使用者依照作曲者、标题等项目虽可检索到数据,然而此种检索的弹性仍然有限。例如,我们常常仅记得音乐的片段旋律,却不记得曲名或作曲家,此时便无法以这些书目数据查得音乐原件(即CD、录音带、录像带、乐谱、文件等音乐载体)。又如音乐创作者一有灵感,脑海中响出一段旋律,想要查询过去是否有近似的音乐创作时,也无法以书目性数据库就音乐内容进行查询。因此,在数字音乐数据越来越丰富的时代,提供有别于书目性数据,而以内容为主(content-based)的查询方式,变得越来越重要。
然而,要建立一个实用性高并容许以内容查询的音乐检索系统需要克服多项问题。其中,最常遇见的问题就是,使用者查询时可能无法正确记忆曲调而输入不完整的片段,甚至不完全正确的曲调。此种情形即称为“字汇不匹配问题”。因此,“近似比对”在音乐检索系统里特别重要。然而近似字串的比对,却需要耗费较大的系统资源(计算时间、或储存空间)。此外,音乐内容适合用听的,不适合用看的,查询时对检索结果一一的试听检视,也将耗费使用者许多时间。如果能够撷取音乐内容的关键片段,如关键旋律,作为检索的对象,让使用者在查询音乐文件数据库前,先查询此关键旋律数据库,如此,即使在较低的比对分数下,也可以得到正确的结果,而没有太多不相关数据的干扰。这是因为关键旋律的数据量较少、较独特,彼此间的差异较大,因此可以容许查询条件更大的误差,而仍可得到结果。一旦正确的关键旋律找到后,依此找其对应的音乐文件将不成问题,因为关键旋律是原音乐文件的片段,完全没有误差,所以不会产生查询不匹配的问题。其整体的效果是,查询反应时间与检索失败的情况降低,而同时增强近似比对的容错能力。
就文字数据而言,其关键词(或关键片语)的作用,就如同上述关键旋律对于数字音乐文件的用处一样。由于过去少有方法能同时针对各种数字媒体撷取其关键特征,下面的说明,分别就文字数据的关键词自动撷取,以及数字音乐数据的关键旋律自动撷取,说明过去采用的方法及其优缺点。
从文献的分析得知,文字数据关键词撷取的技巧主要有三种方法。第一种为“词库比对法”:即利用已建立的词库,来比对输入文件(或文句),将文件中出现在词库中的片语撷取出来。此种方法制作简单,只要将词库中的每个词,去比对是否出现在输入文件中即可。其结果都是词库中的正确词汇,但并不保证所有关键词都能被撷取出来。除此之外,其缺点还包括:需要耗费人力、时间维护词库以容纳各个领域的专业用语与新生词汇,无法应付未曾预料的人名、地名、机构名等专有名称,且词库越大比对速度越慢。
第二种为“文法剖析法”:通过自然语言处理技术的文法剖析程序,剖析出文件中的名词片语,再运用一些方法与准则,过滤掉不适合的词汇。其结果几乎也都是有意义的名词片语,但大部分的剖析程序,需要藉助已经建立的词典或语料库,因此其缺点也和词库比对法一样。除此之外,有些文法剖析法甚至只能剖析合乎文法的完整文句,使得书目、OCR噪声文件等数据里的关键词无法被撷取出来。
第三种方法为“统计分析法”:通过对文件的分析,累积足够的统计参数后,再将统计参数符合某些条件的片语撷取出来。最简单的统计参数是对词汇发生的频率计数,即词频,将词频落在某一范围的词汇取出。由于没有用到词库或语料库,会有撷取错误的情况发生,得到无意义或不合法的词汇。此外,统计参数不足的关键词无法被选到。然而其优点是较不受语文国别与句型的限制,而且可以撷取出未曾被词库、语料库网罗的专业用语、新生词汇与专有名称等片语。
其他的方法还包括上述方法的综合运用,或加入一些变化。例如,利用一些排版规则,将重要的片语取出,如标题项、条列项中的文字,或强调词(大写、字头语、斜体、加粗、底线、引号内文句)等。可以想见,各个方法都有其优缺点,运用时需要针对不同的环境条件加以考虑。
国内对中文关键词自动撷取的问题也有研究。清华大学曾尝试撷取关键词作为书后索引(book index),其主要方法为运用电子字典协助断出词汇,再以统计方式配合自然语言处理技术剖析名词片语,最后再设定过滤条件,筛选索引词汇。在成效评估方面,以一本软件使用手册为对象,相对于人工制作的索引,其精确率与召回率仅能达到63%的程度。至于导致错误的主要来源有:断词错误(42%)、统计特征不足(39%)、以及无法处理复杂语法结构(19%)。
中央研究院也有关键词自动撷取运用于信息检索的研究。其主要作法是,先构建一种称为PAT-Tree的数据结构,再辅以词频等统计特征撷取出关键词,其正确率约为81%。PAT-tree虽然在信息检索上具有优良的特性,不过其建造过程需耗费相当长的时间,例如,构建600Mega字节的数据需要一个星期的时间。可以想见,此种方式的有效运用,必须要能改进PAT-tree的构建速度。
上述方法在各方面有着不同的缺点,虽然实际运用于文字数据时,仍可获得部分成效,但是若考虑特殊条件的情况,例如OCR、语音辨识等噪声文件时,则上述方法便不适用,或其成效将下降到难以实用的地步。例如,由于“噪声文件”内出现的词汇可能包含辨识错误的重要片语,其错误情况难以事先预测。在无法预期文件会包含哪些错误却重要的词汇的情况下,无法应用需事先构建词库的“词库比对法”。其次,由于错误的文字夹杂在文句中,使文句变得无文法规则可言,也就无法利用“文法剖析法”来撷取关键词。此外,辨识出来的文字大都为纯文字文件,没有任何标示,也无法适用排版规则来辨识词汇。最后,“统计分析法”虽可撷取出新生词汇,但此方法需要大量数据的样本出现,以决定适当的统计参数,统计参数不足的关键词,将无法被选到,因此也限制了其在噪声文件上的应用。
在音乐数据的关键旋律自动撷取方面,由于重复性(repetition)是音乐创作的规则之一,且重复片段经常是乐曲中重要的部分,是作曲者要强调的部分,也是阅听者较容易记住的部分,使用者检索时,也较容易以此片段进行查询,因此是相当值得撷取的重要特征。因为此种内容特征具备代表性,可视为乐曲的“关键旋律”(key melody)或“主题旋律”(theme)。与文字检索对比,关键旋律具有“摘要”或“关键词”的效果,在交互式的检索环境下,可加快浏览、筛选的过程,亦可用在查询提示、查询扩展、相关回馈等功能上,进一步提高检索成效。
音乐数据,包括其旋律(melody)、节奏(rhythm)与和弦(chord),都可以用字串的形式表达出来,因此可运用撷取重复字串的方法,来撷取其重复片段做为重要的音乐内容特征。过去,有针对此问题的研究,然而其计算复杂度与所需的存储器空间均为O(n2),其中n为音乐数据的长度(Hsu,Liu,&Chen,1998)。后来有提出一个改进其计算复杂度的方法(Liu,Hsu,Chen,1999),但此方法不能撷取重叠的(overlapping)重复字串。目前,已发现有较快速的方法可在O(n log n)撷取出非重叠(non-overlapping)的重复字串。至于可重叠的重复字串方面(例如:以音名表示的旋律字串
ABCABCABCA,其中ABCABCA以重叠的方式出现了两次—加下划线的一次,斜体字的一次),目前则还没有较快速的撷取演算法发展出来。由于音乐数据本身自我重叠的情形并不少见,因此可撷取可重叠重复字串(overlapped repeating pattern)的方法,相比较而言没有运用上的限制,从而较适合音乐关键片段的撷取。
一些重复字串(包括非重叠与可重叠)的撷取方法,在运用时有一些限制。例如:Karp等(Karp,Miller,&Rosenberg,1972),以及Soldano等人(Soldano,Viari,&Champesme,1995)的方法,就限定运用在两种情形:(一)找出所有字串长度为K的重复字串;(二)找出最长长度为L的重复字串。然而一个理想的方法应该是能够找出所有相异的最长可重叠重复字串。例如:旋律字串EFGABCABCAEFG,从其中可找出所有长度为3的重复字串EFG、ABC与BCA,然而重复两次的ABC与BCA,都只是同样重复两次的字串ABCA的子字串(substrings),其在检索上的角色可由ABCA完全代替,因此较不具代表性。另外,若只找出最长长度为4的重复字串ABCA,则会漏掉另一个较短但不一样的重复字串EFG。由于EFG的角色并不能由ABCA取代,使用者可能熟悉重复旋律EFG而以该旋律查询,因此光撷取出ABCA并不完整。
综上所述,习知技术有多项的缺点,现列述如下:
1.在词库比对法中,虽然结果都是词库中的正确词汇,但并不保证所有关键词都能被撷取出来。此外,其需要耗费大量人力、时间维护词库,无法应付未曾预料的人名、地名、机构名等专有名称,而且词库越大比对速度越慢;
2.大部分的文法剖析程序,需要藉助已经建立的词典或语料库,因此其缺点也和词库比对法一样。此外,有些甚至只能剖析合乎文法的完整文句,使得书目、标题及OCR文字等数据里的关键词无法被撷取出来;
3.统计分析法虽可撷取出新生词汇,但此方法需要大量数据的样本出现以决定适当的统计参数,统计参数不足的关键词将无法被选到,因此限制了其应用的范围;
4.关于音乐旋律部分,运用撷取重复字串的方法,其计算复杂度为O(n2),或者有一种改进计算复杂度的方法,但此方法不能撷取重叠的重复字串;以及
5.一些重复字串的撷取方法,在运用时有一些限制。例如:仅能找出所有字串长度为K的重复字串,或是仅能找出最长长度为L的重复字串。
发明内容
有鉴于此,本发明的目的是提供一种数字文件关键特征的自动撷取方法,其能快速撷取所有相异的最大可重叠重复片段(maximal overlapped repeatedpatterns),可应用于任一种可用文字符号表达的数字文件且没有运用的限制。
按照本发明,提供了一种数字文件关键特征的自动撷取方法,所述数字文件中包括有复数个元素,任一元素都包括至少一个字节,且将任一元素的重复出现次数称为一出现次数,而撷取任一元素时,该元素所具备的出现次数必须大于一临界值,此外,还有一分隔符号以做为参考标记,所述自动撷取方法包括:
(A)将所述数字文件转换为一条列数据结构,该条列数据结构包括至少一个条列元素,任一所述条列元素包括任一所述元素的一位置组合;
(B)设定一组合条列区为一空状态;
(C)依序取出所述条列数据结构中的该条列元素,若取出的条列元素为分隔符号,则略过不处理,若取出的条列元素的出现次数大于所述临界值,且临接于所述条列元素之后的一后续元素的出现次数也大于所述临界值,则进行一组合程序,并将该组合程序所产生的一新元素储存于所述组合条列区中,否则,若取出的所述条列元素的出现次数大于所述临界值,且所述条列元素并未与邻接于所述条列元素之前的一前置元素进行所述组合程序,则将所述条列元素储存到一最后条列区中,且当所述组合条列区中的最后一个新元素不是分隔符号时,就在所述组合条列区的末端加入分隔符号,所述组合程序是将所述后续元素与所述条列元素相异的部分加到所述条列元素末端以形成所述新元素;
(D)将所述组合条列区转换为条列数据结构,重复进行步骤(B)-(C)及步骤(D)的将该组合条列区转换为该条列数据结构部分,直到到达一停止条件,所述停止条件为,所述条列数据结构中除了所述分隔符号外,所剩下的条列元素数目小于2;以及
(E)将所述最后条列区中的所述些条列元素根据所需要的领域加以过滤并显示。
在上述自动撷取方法中,所述元素包括东方文字字元(character),西方语文字元(alphabet letter),西方语文单字(word)或音乐音符(note)。
综上所述,本发明的优点条列如下:
1.可撷取新生词汇、专有名词、人名、地名、机构名等词汇;
2.不要求文件的完整性,可适用于有噪声的环境,如OCR文件、语音辨识文件等等;
3.不需要额外资源,如字典、词库、文法剖析器、语料库等需耗费大量人力事先建立或维护的资源。
4.没有长度限制,不需要检视过所有的子字串,因此撷取速度快,一面合并出较长的字串,一面就把不可能的子字串移除不进一步考虑;
5.以规则法撷取数据,使得统计特征非常低(仅出现两次)的关键词也可被撷取到;
6.不仅适用于文字数据,也适用于其他可表达成字串或有序集合的数据,如音乐、语音、音讯、图像序列、时间序列、DNA序列等等。运用时,只要将数据型态数据作适当的量化处理,消除微幅数据的差异,编码成文字符号即可;
7.计算复杂度理论的最佳值为O(L*N),其中L为最长重复字串的长度,N为输入字串的长度。在实施上,也可以通过杂凑函数(hash function)与串列的交叉运用,以较简单的作法近似理论的最佳值;以及
8.可做为其他进阶运算的基础:可运用在自动索引、索引典自动建立、自动摘要、自动分类、相关回馈、自动过滤、概念检索、相关词提示、相关词回馈、动态分类目录、信息视觉化等信息检索及其他相关的应用上。
附图说明
为使本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下:
图1绘示的是习知技术的一种关键词撷取方法的虚拟码;
图2绘示的是根据本发明的一个较佳实施例的部分虚拟码;
图3绘示的是通过杂凑函数记录与存取字串的出现次数的一较佳实施例运行过程;
图4绘示的是根据本发明的一个较佳实施例的执行过程;
图5绘示的是根据本发明的一个较佳实施例的虚拟码;
图6A、6B绘示的是本发明的一个较佳实施例用在中英文同时存在的环境下,进行关键字词选取的结果(在本实施例中,仅显示片语而没有显示单字词);
图7A、7B、7C绘示的是根据本发明针对中英文环境开发的一个较佳实施例,其直接使用在韩文关键字词选取上的结果;
图8绘示的是根据本发明的一个较佳实施例,以OCR文件进行关键字词选取所得的结果;
图9绘示的是根据本发明的一个较佳实施例,对另一份OCR文件进行关键字词选取所得的结果;
图10A、10B绘示的是根据本发明的一个较佳实施例进行关键字词选取后,将其结果做为动态目录的一种表示方法;以及
图11绘示的是根据本发明,进行音乐内容检索(content-based musicretrieval)的一个较佳实施例。
具体实施方式
对音乐文件来说,重复片段可做为关键旋律撷取的依据,对文字数据而言,重复片段也可以作为关键词自动撷取的基础,这是因为一篇文章在讨论某个主题时,常会提及某些字串好几次。例如,一篇讨论信息检索的文章,免不了会提及“信息检索”、“检索系统”、“信息检索系统”等字串好几次。因此,最理想的关键特征自动撷取方法,是一套至少能撷取所有相异的最大可重叠重复片段技术。所谓最大在此是指字串长度最长,或出现次数最高的意思。亦即,某个重复片段,若不是任何一个重复片段的子字串时,应当被撷取出来;另外,某个重复片段,虽然是另一个重复字串的子字串,若其出现次数比包含其字串的出现次数还高,则对文字数据而言,它是有用的片段,也应当被撷取出来。例如,“信息检索”与“信息检索系统”有广义词与狭义词的关系。当这两个词出现次数一样多时,也就是每次出现“信息检索”时,都是出现在“信息检索系统”这个字串内,那么使用者查询“信息检索系统”都可以找到而且不会遗漏任何出现“信息检索”的地方,反之亦然,那么“信息检索”一词可以忽略不计,这样可以避免撷取到诸如:“息检索”等同样情况但不具意义的词汇(在英文的例子中,我们希望撷取“public high school)”或者“high school”,但不希望撷取出“public high”一词)。但若文件中别的地方也出现“信息检索”一词,使得其出现次数超过“信息检索系统”时,则这个词是“信息检索系统”的广义词,就有撷取的价值。
为方便说明,下面我们将以英文大写字母代表一个东方语文的文字(character)、或西方语文的单字(word)、或一个音乐音符(note)、或任何可表达成有序串列的一个元素。如此,字串“EFGABCABCAEFG”可以代表一篇以任何语文写成的文章、一首音乐旋律、或一串有序串列。
过去在文字数据的关键词自动撷取方法中,跟本发明比较接近的,是前述的“统计分析法”。图1中的虚拟码展示其中一种作法的主要程序。此方法中必须预定最长的字串撷取长度,然后将其所有的子字串列举出来,并统计这些子字串的互相出现统计信息(mutual information)。其出现次数不超过某个临界值、或其子字串的互相出现统计信息不超过另一个临界值的字串都不会被撷取出来。
本发明从个别的元素开始,通过本发明的合并、移除与接受规则重复执行,直到所有相异的最大可重叠字串都被撷取出来才停止。因此不需要预先设定字串的长度,也不需额外统计子字串的互相出现统计信息,而且在撷取的过程中,不需列举所有的子字串。不符合条件的子字串会在中间的过程中就被移除而不进一步处理,因此能大幅降低所需检视的子字串的个数。
本发明主要分为三个处理阶段:首先,将输入数据转换成适当的结构,以供后续使用;之后,根据本发明的合并、移除与接受规则,重复处理数据,直到没有数据可以处理为止;末了,对最后接受的重复字串,做适当的排序与过滤。在这三道步骤中,前两个步骤为主要的处理步骤,在执行的过程中会根据效率换用不同的实施方法。执行完成后,即可撷取出前述所有相异的最大可重叠重复片段,且这部分的步骤与应用领域无关。最后的步骤则针对不同的应用领域(文字、音乐、或其他媒体),对之前的结果给予少许不同的过滤处理,使最后的结果符合应用领域的需求。
请参考图2,其以虚拟码简要说明前两个步骤的处理程序。必须注意的是,这个处理程序可以有好几种作法,其中会造成不同实施方法的主要需求是为了记录与存取字串的出现次数。这个动作就是图2中的Freq()函数。
存取一个字串的出现次数,最快的演算方法可利用杂凑函数(hashfunction)来完成。杂凑函数是一种可储存大量键值对(key-value pairs)并可依“键”(key)来快速取得其值(value)的方法。其理论上的平均存取时间为常数时间,即O(1),与键值对的数量多少无关。然而杂凑函数比较不适合字串长度很长的键(key)。以我们撷取音乐关键旋律的实际经验为例,中文流行音乐的最长关键旋律其平均长度为整首曲子的20%,而西洋古典音乐则为14%。此情形会让实施一个理论上最佳的杂凑函数变得较不容易。
另一个可选用的方法是PAT Tree、PAT array或Suffix array。然而这些方法的存取时间较长,为O(L+logN),其中L为键的长度,N为键值对的个数,而且如前所述,它们在构建其树状结构或阵列时,会花费较大空间与时间,不适合本发明中会动态产生键值对的环境。
为此,本发明自行发展了一种作法,其通过位置串列,使长字串的出现次数容易累计与存取。如此,在处理短字串时,可利用杂凑函数的优点,快速存取出现次数,而在处理长字串时则切换到位置串列进行处理,以避开杂凑函数的缺点。如此一来,则可使整个处理程序很容易就实施出逼近理论的最佳速度。
请参照图3,其显示了通过杂凑函数记录与存取字串的出现次数。字串冒号后面的数字是字串的出现次数。此作法的第一道步骤是将输入转换成由多个单一字元(即元素)组成的一个条列数据结构。在表示时通常将其元素以逗点分开,并按照顺序列举在圆括弧内。转换时则是依输入顺序转换,且同时通过杂凑函数统计其出现次数,如图3所示。在进入第二道步骤的回圈之前,在此条列数据结构的最后面加了一个分隔符号(separator,在此以x表示),以方便依序从头至尾处理这个串列时,可以自然地处理串列的最后一个元素。
必须注意的是,虽然在本实施例中是以单一字元做为一个元素,但这仅是为了说明方便,并非限定本发明只能以单一字元为元素来进行分析。
在第二道步骤中,本发明依序将相邻的两个元素拿出来处理,根据表现在执行流程中的合并、接受与移除规则,将两元素合并并保留到下次回圈再继续处理、或接受两元素中的第一个元素为最后撷取出的元素、或因合并与接受条件都不符合,而不再保留两相邻元素中的第一个元素。
在此,本发明合并的规则是两相邻元素的出现次数,即Freq(LIST[I])与Freqp(LIST[I+1])都必须大于一个预设的临界值(threshold)。此临界值可由其数据大小与想要撷取的重复片段数目而定,通常只要设为1即可,表示出现次数超过1次的最大重复字串都要撷取出来。
至于合并的动作,在本实施例中,是将相邻的第二个元素的最后一个字元取出,并到第一个元素字串的最后面。当我们产生出一个新的合并字串(即新元素)后,就通过杂凑函数累积此新元素的出现次数,以方便以后的取用。
在这种作法中,除了运用杂凑函数,需要全域性的计算(globalcomputation)外,其他动作都只要局部性的计算(local computation)即可,亦即每次计算都可以做到只需存取邻近的数据即可。步骤1与2的时间复杂度分析如下:步骤1只将输入字串断开成串列,然后累计其出现次数。在运用常数时间的杂凑函数中,这个步骤所需时间平均为O(N),即输入字串的长度。步骤2重复地处理一个串列,其最长的长度为N(只出现在一开始,之后其长度就急剧下降),每次处理串列中的元素时,仅作为杂凑函数与局部性数据的存取,因此,每次处理一次串列,平均需时O(N)。由于重复到第L次可以撷取出长度L的重复字串,假若最长的重复字串为L时,则步骤2的计算复杂度为O(LN)。因此整个步骤1与2的平均计算复杂度为O(LN)。这个结果是在假设杂凑函数的平均存取时间为O(1)的情况下获得的。
然而,正如前述的分析,当字串长度变长时,要实施一个具备理论上最佳的计算时间的杂凑函数将变得相当困难。因此,下面提出本发明的另一种作法来处理此种情形。
请参考图4,其显示本发明中利用位置串列的一个较佳实施例的执行过程。在这个作法中,我们把输入串列,转换成另一个位置串列(position list),亦即此串列中的每个元素为原串列元素的所有出现位置。以输入串列(E,F,G,A,B,C,A,B,C,A,E,F,G)为例,其位置串列为(1 11,2 12,3 13,4 7 10,5 8,6 9,4 7 10,5 8,6 9,1 11,2 12,3 13)。其中E出现在第1及第11的位置,F出现在第2及第12的位置,其余依此类推。若输入串列为图3中做完第二次回圈后的串列状态,即(EFG:2,X,ABC:2,BCA:2,CAB:1,ABC:2,BCA:2,x,EFG:2),则其位置串列为(1 11,x,4 7,5 8,6,4 7,5 8,x,1 11)。
在此,出现次数可从元素包含多少位置看出,若在第一步骤就做好记录附加于元素内,尔后只要做递减的更新与读取的动作即可,不用再耗费资源进行计算。至于合并的动作,在本实施例中,是找出两元素所有相邻的位置,然后记录其开始的位置即可。以图4范例中LIST的“4 7 10”与“5 8”两元素为例,他们原来的元素分别为A与B,分别出现在原来串列中的第4,7,10与5,8的位置。从这两组位置可知,A与B在位置4与5紧邻出现,在位置7与8又一起出现,亦即A与B依照顺序一共一起出现两次,所以我们就将位置“4 7”记录下来,即可完成合并A与B的动作。
当位置串列的某元素被撷取出来后,随即根据目前处理的回圈数,将该元素转换成原字串的片段。由于每做完一次回圈,被合并的字串长度就加1,因此回圈数可以反映出字串的长度。如图4所示,在做完第三次回圈之后,必须将撷取出的“1 11”还原。从其指示的位置可知,此字串出现的开始位置在第1及第11的位置,其出现次数为2,且是在做第三次回圈时撷取出的,所以其长度为三,即“E F G”。
在本实施例中,除了第一道步骤转换串列时,需要全域性的计算外,其他动作都只要局部性的计算即可,亦即每次计算都可以做到只需存取邻近的数据。这种作法的最大好处是,不再用字串本身当键来查询其出现次数,而是根据其记录的位置个数来获得其出现次数。其记录的数据不是字串本身,而是出现的位置,所以字串多长都无所谓。其较差的情况发生在某些串列元素出现在非常多的位置时,这时就会花费较多的存储器空间来记录这些位置。然而当重复字串长度越长时,其可能重复出现的次数就越少,因此要记录的位置就越少。我们实际观察音乐数据显示,几乎所有较长的重复片段仅重复二到三次(如前所述,中文流行音乐的最长关键旋律其平均长度为整首曲子的20%,而西洋古典音乐则为14%。因此,一首中文流行歌曲,只要其最长重复片段重复二次,就占去整首曲子40%的长度)。因此,对于每个还未被撷取出的字串,我们只需记录其二到三个出现位置即可,也就是位置串列记录的位置总数通常为2N到3N,即O(N)。所以每一次的回圈,其处理位置串列的时间复杂度为O(N)。
请参考图5,其显示了根据本发明的一个较佳实施例的虚拟码。在回圈数较低,撷取的是较短的重复字串时,本发明利用杂凑函数来近似理论的最佳计算时间;在回圈数增多,撷取较长的重复字串时,本发明就利用位置串列来逼近理论的最佳计算时间。这使得我们可以用简单的实施方式,将全部的计算时间逼近在O(LN)的最佳状况下。
对文字数据来说,图5中步骤2撷取的关键词可能是有错误而无意义的重复字串。对音乐数据而言,步骤2可能会撷取多余的重复字串。因此步骤3根据应用的情况,过滤不佳的重复字串。过多的重复字串,顶多只是增加后续处理的数据量,较不影响整体的成效,但无意义的关键词,可能会造成信息检索的困扰。
步骤3过滤的方法,是将字串中的开头及结尾的停用字(stop words),如of、on、the等介系词、代名词或其他功能词(functional words),以递回的方式删除,直到该字串的开头与结尾都不含停用字为止。而在中文部分,由于中文不像英文有明显的停用字,每个中文字都可能为词汇或片语中有用的字,因此其停用字要尽可能的少,在此仅有“的”(of)一字。请参考图6A以及图6B,其显示了本发明用在中英文同时存在的环境下,进行关键字词选取的结果(在本实施例中,仅显示英文片语而没有显示英文单字词)。在本实施例中的第六个词:“FGDC的Digital Geospatial Metadata”是一个中英文合用的关键词,显示此方法可运用于多种语言的环境。
在另一个实施例中,使用根据本发明针对中文与英文做关键词撷取的程序。在区分中、英文时,以字串的第一个字节(byte)做判断,若其10进位数字超过127,则此字节与其后面的字节就被一起取出来当作是一个双字节的中文字(2-byte coded Chinese character),反之则视为一个单字节的英文字(1-byte English character)。当一个字被断出来后,再判断其是否为中文或英文的标点符号,若是,则在条列资料结构中加入一个分隔符号,若不是,再往后断出一个完整的英文单字(word),之后才送入关键词撷取的程序。所以这样的程序用来撷取韩文的文件时,会有两点限制:一、韩文的标点符号,可能在中文码里是个合法的字,这时撷取出的“韩文词”,可能带有韩文的标点符号。二、同理,中文的标点符号,可能为韩文的合法字,这时会因为删除此标点符号而撷取出不合法的韩文词汇。但是请参考图7A、7B及7C,其中,图7C的关键词由图7B中的韩文翻译,并根据其韩文长度作重新排序而得。从本发明人所做的实验得知,尽管有这两点限制,本发明虽然没有韩文的语库,也从未对韩文文章进行解析,但是仍然可以把韩文的关键词撷取出来。这点可以说明,本方法具有与语文无关的特性。
本发明难免会断出一些错误的词汇。为了解其正确率,本发明人会分别就大量的中、英文书目记录与中文新闻全文数据进行实验。本发明人从35多万笔中英文书目记录的题名(即书名,title)中,自动撷取出11万多条词,取其中样本8,982条词,经人工判断得出合法词8,123条,不合法词859条,正确率为90.4%。另外从13,035篇新闻全文文件中撷取出66,500条词,同样经人工判断得出合法词57,389条,不合法词9,111条,撷取正确率为86.3%。
如同前述,关键特征自动撷取,可直接运用在信息检索的“相关词提示”与“相关词回馈”当中。请参考图8,在本实施例中,本发明人从1300篇中国大陆、台湾、香港早期剪报资料的OCR文件内,撷取出40709个词汇做成一个关键词库。使用者以“乡村干部”查询此关键词库时,会得到“乡村干部”,“农村干部”,“乡村干都”以及“工业干部”等四个词跟检索词相关,使用者可将其打勾选用后送入系统进行OCR文件的查询。在这四个选用词中,第一个与查询词完全一样。第二个则在字串上与字义上都与查询词相近,而中文常有这种特性。第三个打勾词可以看出其最后一个字是个辨识错误的字,除此之外它与查询词完全一样。虽然在本文中这个辨识词汇只出现两次,但仍然可被我们的方法自动撷取出来,提示使用者选用,从而降低检索时遗漏数据的情况。最后一个选用词在字串上与字义上也与查询词相近,使用者选用后,可以找到较完整的数据。
此外,请参考图9,这也是在OCR文件上使用本发明进行关键字撷取的结果。使用者在不用一一检视个别文件的内容下,就对数据库的内容有大致的了解,此正是“信息视觉化”所要达到的功能之一。
本发明提供的关键词库,除了可提供相关词提示的功能外,也可以提供“动态目录”的功能。请参考图10A及10B,当使用者下达一个很短的查询词如“DVD”时,系统回应DVD大约出现在482篇文件中。这是相当庞大的结果,一一浏览这些文件将耗时费力。根据本发明所建立的关键词库,则能进一步提示使用者可以用更特定的字串,如“DVD Player”等词可以快速的缩小查询范围。
最后,图11显示了音乐内容检索(content-based music retrieval)的例子,其中查询旋律为古典音乐Ave Maria的其中一段:“Do Si Do Mi Ra Do”,以简谱(simplified notation)表示为:“17-1321”。前面提到,音乐内容的重复性很高(流行音乐平均有20%的重复,而古典音乐有14%的重复),如果能撷取其重复片段提供利用,则检索时所需比对的数据量将大幅减少,且不用再浪费资源来比对完全一样的重复数据,因而可用同样的时间进行较复杂的运算来容许查询条件的较大误差。在检视结果时,也因数据量较少,节省音乐数据的传输时间、节省使用者阅听的时间,进而提高整体的效率。前提是,这些重复片段必须是使用者会选用的查询条件。因此,关键特征的自动撷取,对类似的多媒体数据,非常重要。
当然,本发明并不限定仅能应用于这些状况。其他如自动索引,索引典自动建立,自动摘要,自动分类,相关回馈,自动过滤,概念检索,相关词提示,以及相关词回馈等等,也是可以利用根据本发明所做出的关键词库而提供更快速且准确的服务。本发明不仅适用于文字数据,也适用于其他可表达成字串或有序集合的数据,如音乐、语音、音讯、图像序列、时间序列、DNA序列等等。运用时,只要将数据型态数据作适当的量化处理,消除微幅数据的差异,编码成文字符号即可。
综上所述,现将本发明的优点略述如下。本发明提供快速且准确性较习知技术好的数字文件关键特征的自动撷取方法。其可应用在各种领域以及语文上,且不需花费大量人力及时间就可以保证有优良的词库品质。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,本领域任何技术人员,在不脱离本发明的精神和范围的情况下,可以对其作出各种更动与润饰,因此本发明的保护范围应当由后附的权利要求所限定的为准。