CN101499072A - 数据分类系统与其分类树的建构方法 - Google Patents
数据分类系统与其分类树的建构方法 Download PDFInfo
- Publication number
- CN101499072A CN101499072A CNA200810008877XA CN200810008877A CN101499072A CN 101499072 A CN101499072 A CN 101499072A CN A200810008877X A CNA200810008877X A CN A200810008877XA CN 200810008877 A CN200810008877 A CN 200810008877A CN 101499072 A CN101499072 A CN 101499072A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- classification tree
- child node
- coordinate information
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据分类系统,其包括撷取单元、分类树模块与数据存储库。撷取单元用以接收至少一数据,并撷取出上述数据中的数据信息。分类树模块用以依据数据信息,且以树状结构的方式对上述数据进行分类,并建立一分类树。数据存储库用以存储分类树与上述数据。藉此,可提供阶层式结构,以加快数据的搜寻速度。
Description
技术领域
本发明涉及一种数据分类方法,且特别是涉及一种数据分类系统与其分类树的建构方法。
背景技术
随着宽带网络服务与数字相机产品的普及化,使得愈来愈多人乐于将数字相片(数据)上传至因特网保存以及与他人分享,而在网站上分享数字相片的行为与环境也愈来愈成熟。不过,在数字相片数量日渐成长的情况下,如何有效率的管理、浏览与搜寻相片的工作,也变得愈来愈重要。
另外,由于科技的发展,现有数字相片除了可以存储图像信息外,还可以结合全球定位系统(Global Positioning System,GPS),以取得相片拍摄(数据建立时间)时的地理位置信息(坐标信息,例如经度与纬度)。就目前来说,有一些相关的应用网站,如Google Earth与Yahoo map等,则是利用相片的地理位置信息,将相片放置在地图的适当位置上,方便使用者在察看地图时,也可观看特定地点所拍摄出来的相片。因此,如何有效的将相片依其地理位置分类,提高使用相片地理位置信息的相关应用的相片存取效率,是一个相当重要的关键。
为了达到可依地理位置信息浏览相片的目的,在美国专利公告号US7,046,285专利案中,提出了为所有相片建立一个描述表格(table),如图1所示。其中,表格内每一列表示一张相片的相关描述信息,亦即记录了相片的经度、纬度、相片种类以及文件名称。在使用上述表格的状态下,应用程序可将相片显示在地图上适当的位置上。
虽然,使用表格方式存储相片信息相当简单,但是相片的存放与相片之间的距离无关,因此上述方式并无法有效率的取得相邻位置的相片,并且当相片数量成长时,搜寻时间也会跟着成长。
发明内容
本发明提供一种数据分类系统与其分类树的建构方法,藉此可以提供一阶层式结构,以便加快数据搜寻的速度,并且具备数据集成的能力。
本发明提出一种数据分类系统,其包括撷取单元、分类树模块与数据存储库。撷取单元用以接收至少一数据,并撷取出上述数据中的数据信息。分类树模块用以依据数据信息,且以树状结构的方式对上述数据进行分类,并建立一分类树。数据存储库用以存储分类树与上述数据。
本发明提出一种分类树的建构方法,包括下列步骤:取得至少一数据,其中,每一数据对应一坐标信息。将上述每一数据加入一节点。依据上述每一数据对应的坐标信息,计算出节点的一中心位置。计算出每一数据的坐标信息到中心位置的距离,以取得一距离最大值。判断上述距离最大值是否大于一特定值。若判断结果为是,则将节点分为第一子节点与第二子节点,并依照每一数据对应的坐标信息,将数据加入至第一子节点与第二子节点其中之一。
本发明依据数据内所记录的坐标信息,并利用树状结构(二元树)的方式进行分类,以建立一分类树。也就是说,节点内的数据可依数据的坐标信息分成两群,并分别置在两个子节点内。同样的,每个子节点内的数据可依据数据的坐标信息再分成两群,直到每个子节点内只包含一个数据或子节点内的每个数据距节点中心位置的距离小于一特定值。如此一来,在分类树建构完成之后,可以有效地提供阶层式结构,且对于依坐标信息提供数据浏览与搜寻数据的应用,可提供较佳的存取效率,以及加快数据搜寻速度。另外,本发明还可以通过数据的数据信息,提供搜寻特定条件的数据。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1示出了现有技术的描述表格的示意图。
图2示出了本发明一实施例的数据分类系统的示意图。
图3A示出了数据的数据信息内容示意图。
图3B示出了数据的种类内容示意图。
图3C示出了节点内所包括的信息内容示意图。
图4示出了节点与节点内数据配置关系的示意图。
图5示出了本发明一实施例的分类树的建构方法流程图。
图6示出了判断数据中的距离的最大值大于特定值,将节点分为第一子节点与第二子节点的示意图
图7示出了本发明另一实施例的分类树的建构方法流程图。
图8示出了本发明一实施例的分类树的示意图。
图9A-图9C为节点放入工作堆栈的示意图。
图10示出了本发明又一实施例的分类树的建构方法流程图。
图11示出了本发明一实施例的数据加入分类树的示意图。
图12示出了本发明实施例的分类树应用的一实施范例。
图13示出了配合图12实施范例的分类树的示意图。
图14示出了本发明实施例的分类树应用的另一实施范例。
图15示出了配合图14实施范例的分类树的示意图。
图16示出了本发明实施例的分类树应用的又一实施范例。
图17示出了本发明一实施例的节点内所包括的数据数量与种类的示意图。
附图符号说明
200:数据分类系统
210:撷取单元
220:分类树模块
230:数据存储库
401、601:中心位置
d:距离最大值
420、630、640、650、660、D1-D4:数据
S502-S514:本发明实施例的分类树的建构方法各步骤
N1-N3、N5-N30:节点
610:离最大值d所包括的范围
d1:特定值
620:特定值d1的范围
S702-S720:本发明另一实施例的分类树的建构方法各步骤
S1002-S1030:本发明又一实施例的分类树的建构方法各步骤
S1202-S1218:本发明实施例的分类树应用的实施范例各步骤
S1402-S1410:本发明实施例的分类树应用的另一实施范例各步骤
S1602-S1616:本发明实施例的分类树应用的又一实施范例各步骤。
具体实施方式
图2示出了本发明一实施例的数据分类系统的示意图。请参照图2,数据分类系统200包括撷取单元210、分类树模块220与数据存储库230。撷取单元210用以接收至少一数据,并撷取出上述数据中的数据信息。其中,上述数据可以为数字相片,但不限制其范围。分类树模块220用以依据数据信息,且以树状结构的方式(例如为二元树)对上述数据进行分类,并建立一分类树。数据存储库230用以存储分类树与上述数据。
在本实施例中,上述数据除了可以在数据存储库230中取得,还可以经由因特网(Internet)或是部落格(Blog)等方式取得。另外,上述数据信息可以包括数据的坐标信息、数据的建立时间、数据的种类、数据的描述、数据的重要性、数据的存储位置参考信息,如图3A所示。其中,数据的坐标信息可以包括数据的经度与纬度,以便于作为分类树模块220进行相片分类的依据。而上述数据的经、纬度可以通过全球定位系统(Global PositioningSystem,GPS)取得。
另外,数据重要性的项目例如可由管理者输入或由点阅率来决定。并且数据的种类可以分成餐厅、旅游景点、商店、车站、机场、医院、学校、运动场、公园、夜市等等,如图3B所示,但不限制其范围。
在本实施例中,上述所建立的分类树包括多个节点,而每一节点内具有数据距节点中心位置的距离最大值(Distance)、节点的中心位置(Center)、节点内的数据数量(Count)、节点的重要性、节点内的数据清单、节点的描述以及节点的子节点连结(子节点1、子节点2),如图3C所示。
其中,数据距节点中心位置的距离最大值与节点的中心位置,可利用节点内数据的坐标信息求得,如图4所示。由图4中可看出,中心位置401是利用节点中各个数据的坐标信息(亦即经纬度)所计算出的几何中心位置。之后,再利用所求得的中心位置401与各个数据的坐标信息进行计算,以取得数据距中心位置401的距离最大值d(亦即数据420与中心位置401之间的距离)。另外,节点的重要性可由数据群中的数据汇集而得,或者可由管理者来设定。
值得一提的是,节点的重要性可以利用颜色来区别,例如红色表示此节点的重要性为很重要,绿色表示此节点的重要性为中等,而蓝色表示此节点的重要性为较不重要...等,但不限制其范围。另外,节点内的数据数量可以利用节点的大小作为区别,例如节点较大者表示此节点内数据数量为多,而节点较小者表示此节点内数据数量较少。
举例来说,若是此节点所显示为红色且较大者,则表示此节点内的数据较为重要且数量为多;若节点所显示为蓝色且较小者,则表示此节点内的数据较为不重要且数量为少。此外,节点的描述方面,可由管理者来设定,或自动利用分析群组内数据描述的字、词出现次数多的拿来当作为代表词,以便于使用者可以通过节点的描述而快速的找到所需要的数据。
接下来,将进一步说明分类树建构的流程。图5示出了本发明一实施例的分类树的建构方法流程图。请参照图5,首先,在步骤S502中,取得至少一数据,其中每一数据对应坐标信息。其中,坐标信息例如为数据的经度与纬度。步骤S504中,将上述每一数据加入一节点。此节点例如为根节点,但不限制其范围。
在步骤S506中,依据每一数据对应的坐标信息,计算出节点的中心位置。而节点的中心位置,亦即为利用每一数据的坐标信息所计算出的几何中心,且可以如图4中所标示的401所示。
在步骤S508中,计算出每一数据的坐标信息到中心位置的距离,以取得一距离最大值。也就是,计算所有数据到节点中心位置的距离,并从中取得一距离最大值,以便作为此节点中的数据是否需要进行分类的依据。
在步骤S510中,判断上述距离最大值是否大于特定值。举例来说,假设特定值的大小为1公里,而所计算出来的距离最大值只有0.8公里,表示距离最大值并没有大于特定值。反之,若是计算出来的距离最大值为1.3公里,表示距离最大值达到特定值。
若判断结果为是,则如步骤S512所述,将节点分为第一子节点与第二子节点,并依照每一数据对应的坐标信息,将上述节点内的数据加入至第一子节点与第二子节点其中之一。之后,进入步骤S514,也就是输出上述分类结果。承接上述步骤S512,若判断结果为否,则直接进入步骤S514,输出上述分类结果。
为了更清楚地描述如何判断上述距离最大值大于特定值,将节点分为第一子节点与第二子节点的情况,以下举一例来说明。图6示出了判断距离的最大值大于特定值,将节点分为第一子节点与第二子节点的示意图。请参照图6,在节点N1中,假设d为节点N1中,所有数据依据其坐标信息到中心位置601所计算出的距离最大值,且虚线框610为距离最大值d所包括的范围;d1为特定值的大小,且虚线框620为特定值d1的范围。由图6中可看出距离最大值d已大于特定值d1,因此,必须对节点N1内的数据进行分类,也就是依据每一数据的坐标信息(亦即经度与纬度),并将各个数据之间的经纬度进行比对,以取得经度与纬度的最大值。
举例来说,假设以经度相距最远的数据进行计算,也就是对数据630与640进行经度的计算后,得到经度的最大差异值为20度;另一方面,若以纬度相距最远的数据进行计算,也就是对文件630与650进行纬度的计算后,得到纬度的最大差异值为17度。
藉由上述的计算结果可知,在节点N1中,经度的最大差异值(20度)大于纬度最大的差异值(17度)。因此,将节点N1中的所有数据依照数据的经度进行排列,且藉由数据的经度中位数(亦即图6中数据660的经度)为中心,将经度大于等于经度中位数的数据分为一群,经度小于经度中位数的数据分为另一群,而分类后的结果为子节点N2与N3。如此一来,将数据分类至子节点N2与N3中,可以有效地减少数据的距离最大值,以便于建立出明显的阶层结构,进而增加搜寻数据的速度。
而上述经度中位数的选取方式可以如下所述:请继续参照图6,首先,将节点N1中所有数据依照数据经度的大小进行排序后,选取所有数据当中,经度排序为最中间的数据的经度,亦即数据660的经度,作为数据的经度中位数。之后,节点N1中所有数据会以数据660的经度为依据,而分为两群,也就是说,经度大于等于经度中位数(数据660的经度)的数据为一群(例如分类至节点N2),而经度小于经度中位数的数据分为另一群(例如分类至节点N3)。
在另一未示出的实施例中,若是计算出节点中,经度的最大差异值小于纬度最大的差异值时,则将节点中的所有数据依照数据的纬度进行排列,且藉由数据的纬度中位数(亦即将节点中所有数据依照纬度的大小进行排序后,选取所有数据当中,纬度排序为最中间的数据的纬度)为中心,将纬度大于等于纬度中位数的数据分为一群,纬度小于纬度中位数的数据分为另一群。在本实施例中,纬度中位数的选取方式与经度中位数的选取方式相同或相似,故不再赘述。另外,不论是藉由经度或纬度来分类节点中的数据,都可以有效地减少节点中数据的距离最大值,以便于建立出明显的阶层结构,进而增加搜寻数据的速度。
为了更清楚地描述上述分类树的建构方法各步骤,以下再举一实施例来说明本发明的建构方法的详细流程。图7示出了本发明另一实施例的分类树的建构方法流程图。图8示出了本发明一实施例的分类树的示意图。请合并参照图7与图8,首先,取得至少一数据,其中,每一数据对应一坐标信息(步骤S702)。此坐标信息例如为数据的经度与纬度。
接着,将上述每一数据加入节点N5(步骤S704)。此节点N5例如为分类树的根节点。之后,再将上节点N5放入一工作堆栈(步骤S706),如图9A所示,并检查工作堆栈中是否有节点(步骤708)。若检查结果为是,则由工作堆栈中取出节点(步骤S710)。也就是说,将工作堆栈中的节点N5取出,并依据节点N5中每一数据对应的坐标信息,计算出节点N5的中心位置(步骤S712)。
当获得节点N5的中心位置后,再计算出每一数据的坐标信息到中心位置的距离,以取得一距离最大值(步骤S714),例如为500公里。接着,判断上述距离最大值是否大于特定值(步骤S716)。假设特定值的大小为300公里,因此,节点N5中距离最大值大于特定值(就是步骤S716所标示的「是」),则如步骤S718所述,将节点N5分为子节点N6与N7,并依照每一数据对应的坐标信息,将数据加入至节点N6与N7其中之一,而将节点N5分为子节点N6与N7的方法,则可以参照图6的说明,故不再赘述。之后,再回到步骤S706中,将节点放入工作堆栈中,也就是将节点N6与节点N7放入到工作堆栈中,如图9B所示。
由于在步骤S706中,已将节点N6与N7放入工作堆栈中,因此在步骤S708中,会再次检查出工作堆栈中有节点,则继续执行步骤S710,由工作堆栈中取出节点。例如先取出节点N6,并依据节点N6中数据的坐标信息,计算节点N6的中心位置(步骤S712)。接着,计算出节点N6中每一数据的坐标信息到中心位置的距离,以便于取得节点N6中的距离最大值(步骤S714),例如为350公里。之后,判断节点N6中的距离最大值是否大于特定值(步骤S716)。由于特定值为300公里,而节点N6中距离最大值为350公里,因此,需要对节点N6中的数据进行分类,而分类的结果为子节点N8与N9,并且在回到步骤S706中,将节点N8与N9放入工作堆栈中,如图9C所示。
之后,再继续进行步骤S708→S710→S712→S714→S716→S718→S706,以便对节点N7、N8与N9进行分析与判断是否还需要进行分类,直到于步骤S708中,检查出工作堆栈无节点时,执行步骤S720,输出分类结果以停止分类树建构的过程。
承接上述步骤S708,若检查发现工作堆栈中并无节点,则如步骤S720所述,输出分类结果,以停止分类树建构的过程。
请再参照图8,由于节点N7、N8与N9底下没有子节点,因此节点N7、N8与N9可以称为分类树的树叶节点(leaf node)或外部节点(externalnode)。相反地,节点N5与N6底下尚有子节点存在,因此节点N5与N6可以称为分类树的非树叶节点或内部节点(internal node)。
上述已说明分类树的建构过程,而为了让分类树可以持续增加新数据,以下将举另一实施例来说明增加新数据的流程。图10示出了本发明又一实施例的分类树的建构方法流程图。图11示出了本发明一实施例的数据加入分类树的示意图。请合并参照图10与图11,首先,将一新数据加入一节点(步骤S1002)。例如是将数据加入于节点N10中,而此节点N10的中心位置为(经度60,纬度60)。另外,上述新数据的新坐标信息为(经度68,纬度45)。在步骤S1004中,更新节点中的内容,亦即更新节点N10的内容。在步骤S1006中,检查上述节点中是否有子节点。也就是检查节点N10是否有子节点。
若检查结果为是,则进入步骤S1008,寻找与新数据距离最近的子节点。举例来说,根节点N10中尚有节点N11与N12,而节点N11的中心位置为(经度80,纬度20),节点N12的中心位置为(经度45,纬度78)。因此,节点N11与新数据的坐标数据(经度68,纬度45)距离最近。之后,再回到步骤S1004中,更新节点中的内容,亦即更新节点N11的内容。接着,持续进行步骤S1006→步骤S1008→步骤S1004,直到找出节点N16(经度67,纬度47)与新数据距离最近,并且于步骤S1006中,检查出节点N16并无子节点,则执行步骤S1010,将新数据加入节点N16中。
承接上述步骤S1006,若检查结果为否,则如步骤S1010所述,直接将新数据加入节点中。举例来说,当数据由节点N10加入,且进行步骤S1004→步骤S1006后,发现节点N10并无子节点,则直接将新数据加入节点N10。
由于在节点中加入新数据后,无论是加入节点N10或N16中,都会改变原先节点的中心位置,因此在步骤S1012中,会依据每一数据所对应的坐标信息与新数据所对应的新坐标信息,计算出加入新数据的节点的新中心位置。
在取得节点的新中心位置后,计算每一数据的坐标信息与新数据的坐标信息到节点新中心位置的距离,以便于取得新距离最大值(步骤S1014)。
在步骤S1016中,判断上述新距离最大值是否大于特定值。也就是将新距离最大值与特定值进行比对,以便作为节点中的数据是否需要进行分类的依据。
若判断结果为是,则如步骤S1018所述,将节点分为第一子节点与第二子节点,并放入一工作堆栈中。接着,在步骤S1020中,检查工作堆栈中是否有节点。若判断结果为是,则如步骤S1022所述,于工作堆栈中取出节点。之后,在步骤S1024中,依据所取出节点中每一数据所对应的坐标数据,计算出所取出节点的中心位置。
接着,再次计算每一数据的坐标信息到所取出节点中心位置的距离,以取得距离最大值(步骤S1026)。当取得距离最大值后,判断距离最大值是否大于特定值(步骤S1028)。若判断结果为是,则进入步骤S1018中,将所取出节点分为第一子节点与第二子节点。换言之,若判断结果为否,则进入步骤S1020中,继续检查工作堆栈中是否有节点。另外,承接上述步骤S1020,若是检查结果为否,则进入步骤S1030,完成加入新数据的过程。于本实施例中的步骤S1016-S1028,对于节点的分析与判断是否进行分类的结果可以参照前述实施例的说明,故在此不再赘述。
承接上述步骤S1016,若检查结果为否,则进入步骤S1030,也就是完成新数据加入的过程。
而在上述分类树建构完成后,可以提供使用者设定一些限制条件,来搜寻并预览所需的数据。另外,使用者可以依据数据本身所记载的数据信息作为限制条件,例如以节点内的数据数量、节点内的距离最大值与节点的重要性等,但不限制其范围。以下,将举一实施例来说明如何应用所建立好的分类树。
图12示出了本发明实施例的分类树应用的一实施范例。图13示出了配合图12实施范例的分类树的示意图。请合并参照图12与图13,首先,当使用者下达限制条件后,例如列出节点内距离最大值d>2000的节点,数据分类系统200会将节点放入工作队列(Queue)(步骤S1202)。例如将节点N17放入工作队列中,且节点N17内距离最大值为d=10000。
接着,判断工作队列中是否有节点(步骤S1204)。由于在步骤S1202中,已将节点N17放入至工作队列中,因此,于步骤S1204中,会检查出工作队列中有节点N17(亦即检查结果为是),则执行步骤S1206,从工作队列中取出节点,也就是取出节点N17。
接着,检查节点N17是否符合限制条件(步骤S1208)。由于节点N17内距离最大值(d=10000)大于限制条件(d>2000),表示节点N17符合限制条件,因此进入步骤S1210,检查节点是否有子节点。由于节点N17中尚包括节点N18与N19(表示节点中有子节点),则进入步骤S1212,检查子节点是否符合限制条件。也就是检查节点N18与N19是否符合限制条件。由图13中,可以看出节点N18与N19内的距离最大值分别为d=5000与d=6000。因此,节点N18与节点N19符合限制条件,接着,进入步骤S1214中,将节点N18与N19放入工作队列。之后,再进入步骤S1204中,检查工作队列中是否有节点。
由于N18下尚有节点N20与N21,而节点N20与N21内距离最大值分别为d=3000与d=2500,且都符合限制条件。在步骤S1206中,由工作队列取出节点N18节点后,会进行步骤S1208→S1210→S1212→S1214,将节点N20与N21放入至工作队列。
此时,于工作队列中将会有节点N19、N20与N21。由于节点N19下尚有节点N22与N23,而节点N22与N23内距离最大值分别为d=1500与d=2600,节点N22不符合限制条件。因此,于步骤S1206中,由工作队列中取出节点N19后,会进行步骤S1208→S1210→S1212,而执行到步骤S1212时,会检查出节点N22不符合限制条件。因此,进入步骤S1216中,将节点N19加入节点列表中。之后,再回到步骤S1204中,检查工作队列是否还有节点。
此时,工作队列中会有节点N20与N21。由于节点N20下尚有节点N24与N25,而节点N24与N25内距离最大值分别为d=1200与d=1600,且节点N24与N25都不符合限制条件。因此,于步骤S1206中,由工作队列中取出节点N20后,会进行步骤S1208→S1210→S1212,而执行到步骤S1212时,会检查出节点N24与N25不符合限制条件,因此,进入步骤S1216中,将节点N20加入节点列表中。之后,再回到步骤S1204中,检查工作队列中是否有节点。
此时,工作队列中尚有节点N21。由于节点N21并无子节点存在。因此,于步骤S1206中,由工作队列中取出节点N21后,会进行步骤S1208→S1210,而执行到步骤S1210时,会检查出节点N21并无子节点存在,则进入步骤S1216中,将节点N21加入节点列表中。之后,再回到步骤S1204中,检查工作队列中是否有节点。
此时,工作队列中已无节点。因此,在步骤S1204中,会检查出工作队列没有节点(就是步骤S1204所标示的“否”),则执行步骤S1218,输出节点列表中的节点,亦即为节点N19、N20与N21。
承上述步骤S1204,若是检查结果为否,则直接进入步骤S1218,输出节点列表中的节点。
在上述实施例中,是以节点内距离的最大值作为限制条件,但本发明不限于此,可以利用节点内数据数量或节点的重要性等作为限制条件。而在更改限制条件后的搜寻方式亦可参照图12的流程,故不再赘述。
此外,在本实施例中,若是以数据数量作为限制条件时,节点列表只会把数据数量符合限制条件的节点显示出来。而若是以节点内距离最大值作为限制条件时,节点列表只会把节点内数据距节点中心位置的距离最大值符合限制条件的节点显示出来,因此可以达到节点较平均的分布于地图上。然而,若是以节点的重要性作为限制条件时,节点列表可以将点阅率高或管理者认为重要的节点显示出来。
另外,使用者在选定某一个节点内的数据时,通常会希望看到此节点中,M个数据数量最大的子节点,其中M为大于零的正整数。以下,将举一实施例来说明,且为了方便说明,首先假设M=3,但不限制其范围。图14示出了本发明实施例的分类树应用的另一实施范例。图15示出了配合图14实施范例的分类树的示意图。请合并参照图14与图15,当使用者选定某一节点时,并给定需要看到此节点下,数据数量最大的3(M=3)个子节点时,数据分类系统200会将目前节点(亦即使用者所选取的节点)放入工作队列(步骤S1402)。例如将节点N26放入工作队列,接着,再从工作队列中取出节点(步骤S1404)。也就是将节点N26由工作队列中取出。之后,将节点N26下的两个子节点放入工作队列中(步骤S1406),亦即将节点N27与节点N28放入工作队列。
接着,判断此工作队列中的节点是否已达3个(步骤S1408)。由于工作队列中只有2个节点N27与N28,因此在步骤S1408中,会检查出工作队列中的节点未达到3个,而再次回到步骤S1404中,由工作队列中取出节点。此时,则将节点N27由工作队列中取出,并将节点N27下的子节点放入工作队列中(步骤S1406),亦即将节点N29与N30放入工作队列中。此时,工作队列中会有节点N28、N29与N30。因此,在步骤S1408中,会判断出工作队列中已有3个节点,则进入步骤S1410中,将工作队列中的节点加入至节点列表,也就是将节点N28、N29与N30加入节点列表,以让使用者得知节点N28、N29与N30为节点N26下,数据数量最大的3个子节点。
另外,为了更精确的查询数据,使用者常会需要限定数据的种类或建立时间等范围,并且于某一节点中找寻出所需的数据。以下,将举一实施例来说明仅列出符合特定条件的数据的流程。
图16示出了本发明实施例的分类树应用的又一实施范例。请参照图16,首先,数据分类系统200会接收使用者所给定的特定条件(步骤S1602),而特定条件例如数据的种类为A。之后,数据分类系统200会取出目前节点的数据清单(步骤S1604)。在本实施例中,假设数据清单中包括数据的数量以及种类,如图17所示。接着,再把数据清单放入一工作队列(步骤S1606)。也就是将图17中的数据D1-D4放入于工作队列中。之后,在步骤S1608中,判断工作队列中是否有数据。
若判断结果为是(亦即工作队列中有数据存在),则如步骤S1610所述,从工作队列中取出一数据。也就是说由工作队列中取出数据D1,并判断数据D1是否符合特定条件(步骤S1612)。由于数据D1的种类为A,因此符合特定条件,则进入步骤S1614中,将数据D1加入数据列表。之后,回到步骤S1608中,检查工作队列中是否有数据。
此时,工作队列中尚有数据D2、D3与D4,因此,会再次进入步骤S1610,也就是将数据D2取出后,执行步骤S1612。由于数据D2的种类为B,因此会于步骤S1612中检查出数据D2并不符合特定条件,则会回到步骤S1608中,以持续检查工作队列中是否有数据,直到工作队列中并无数据存在时,则进入步骤S1616,表示完成数据列表。
由于数据D3的种类为A,而数据D4的种类为C,因此,在完成数据列表后,于数据列表会将数据D1与D3显示出来,以便让使用者得知数据D1与D3符合所给定的特定条件。
综上所述,本发明依据数据内所记录的坐标信息,并利用树状结构(二元树)的方式进行分类,以建立一分类树。也就是说,节点内的数据可依数据的坐标信息分成两群,并分别置于两个子节点内。同样的,每个子节点可依据数据的坐标信息再分成两群,直到每个子节点内只包含一个数据或子节点内的每个数据距节点中心位置的距离小于一特定值。如此一来,在分类树建构完成之后,可以有效地提供阶层式结构,且对于依坐标信息提供数据浏览与搜寻数据的应用,可提供较佳的存取效率,以及加快数据搜寻速度。另外,本发明还可以通过数据的数据信息,提供搜寻特定条件的数据。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视本发明的申请专利范围所界定者为准。
Claims (23)
1.一种数据分类系统,包括:
一撷取单元,用以接收至少一数据,并撷取出该数据中的数据信息;
一分类树模块,用以依据该数据信息,且以树状结构的方式对该数据进行分类,并建立一分类树;以及
一数据存储库,用以存储该分类树与该数据。
2.如权利要求1所述的数据分类系统,其中,该数据中的数据信息包括该数据的坐标信息、该数据的建立时间、该数据的种类、该数据的描述、该数据的重要性、该数据的存储位置参考信息。
3.如权利要求2所述的数据分类系统,其中,该数据的坐标信息包括一经度与一纬度。
4.如权利要求1所述的数据分类系统,其中,该分类树包括多个节点,且每一该些节点具有该节点的中心位置、该些数据距该节点中心位置的距离最大值、该节点内的数据数量、该节点的重要性、该节点内的数据清单、该节点的描述以及该节点的子节点连结。
5.如权利要求4所述的数据分类系统,其中,该节点内的数据数量是以该节点的大小表示之,而该节点的重要性是以不同的颜色表示之。
6.一种分类树的建构方法,包括下列步骤:
取得至少一数据,其中每一该数据对应一坐标信息;
将每一该数据加入一节点;
依据每一该数据对应的该坐标信息,计算出该节点的一中心位置;
计算出每一该数据的该坐标信息到该中心位置的距离,以获得一距离最大值;
判断该距离最大值是否大于一特定值;以及
若判断结果为是,则将该节点分为一第一子节点与一第二子节点,并依照每一该数据对应的该坐标信息,将每一该数据加入至该第一子节点与该第二子节点其中之一。
7.如权利要求6所述的分类树的建构方法,其中,在判断该距离最大值是否大于该特定值的步骤还包括:
若判断结果为否,则输出该分类结果。
8.如权利要求6所述的分类树的建构方法,其中,该坐标信息包括每一该数据的一经度与一纬度。
9.如权利要求8所述的分类树的建构方法,其中,在将该节点分为该第一子节点与该第二子节点的步骤包括:
依据每一该数据的该经度与该纬度,计算每一该数据之间的该经度与该纬度的最大差异值;
若是计算结果为该些数据的该经度的最大差异值大于该纬度的最大差异值,将每一该数据依照每一该数据的该经度进行排列,且以每一该数据的一经度中位数为中心,将该节点分为该第一子节点与该第二子节点;以及
若是计算结果为每一该数据的该经度的最大差异值小于该纬度的最大差异值,将每一该数据依照每一该数据的该纬度进行排列,且以每一该数据的一纬度中位数为中心,将该节点分为该第一子节点与该第二子节点。
10.如权利要求6所述的分类树的建构方法,还包括:
将该节点放入一工作堆栈;
检查该工作堆栈中是否有节点;以及
若检查结果为是,则由该工作堆栈中取出节点,并进入依据每一该数据对应的该坐标数据,计算出该节点的该中心位置的步骤。
11.如权利要求10所述的分类树的建构方法,其中在将该节点分为该第一子节点与该第二子节点之后,还包括:
将该第一子节点与该第二子节点放入至该工作堆栈中。
12.如权利要求10所述的分类树的建构方法,还包括:
加入一新数据至节点中,其中该新数据对应于一新坐标信息;
更新节点内容;
判断节点是否有子节点;
若检查结果为否,将该新数据加入至节点中;
依据每一该数据所对应的该坐标信息与该新数据所对应的该新坐标信息,计算出加入该新数据的节点的一新中心位置;
计算出每一该数据的该坐标信息与该新数据的该坐标信息到该新中心位置的距离,以获得一新距离最大值;
判断该新距离最大值是否大于一特定值;
若判断结果为是,则将该节点分为该第一子节点与该第二子节点,并放入该工作堆栈中,且依照每一该数据对应的该坐标信息与该新数据对应的该新坐标数据,将每一该数据与该新数据加入至该第一子节点与该第二子节点其中之一;
检查该工作堆栈是否还有节点;以及
若检查结果为否,则完成加入该新数据。
13.如权利要求12所述的分类树的建构方法,其中,在判断节点是否有子节点的步骤还包括:
若检查结果为是,则依据该新坐标信息,寻找与该新数据距离最近的子节点;以及
更新与该新数据距离最近的子节点内容。
14.如权利要求12所述的分类树的建构方法,其中,在检查该新距离是否大于该特定值的步骤还包括:
若检查结果为否,则完成加入该新数据。
15.如权利要求12所述的分类树的建构方法,其中,在检查该工作堆栈是否还有节点的步骤还包括:
若检查结果为是,由该工作堆栈中取出节点;
依据所取出节点中每一该些数据所对应的该坐标信息,计算所取出节点的中心位置;
计算出每一该些数据的该坐标信息到所取出节点中心位置的距离,以取得该距离最大值;
判断该距离最大值是否大于该特定值;
若检查结果为是,则进入将所取出节点分为该第一子节点与该第二子节点,并放入该工作堆栈的步骤;以及
若检查结果为否,则进入检查该工作堆栈中是否有节点的步骤。
16.如权利要求10所述的分类树的建构方法,还包括:
提供一限制条件;
将一节点放入一工作队列;
检查该工作队列内是否有节点;
若检查结果为是,则取出一节点;
检查上述节点是否符合该限制条件;
当检查发现上述节点符合该限制条件时,检查上述节点是否有子节点;
当检查发现上述节点有子节点时,检查子节点是否符合该限制条件;
将上述节点中的子节点放入该工作队列。
17.如权利要求16所述的分类树的建构方法,其中,在检查上述节点是否有子节点的步骤还包括:
若检查结果为否,将上述节点加入一节点列表。
18.如权利要求16所述的分类树的建构方法,其中,在检查子节点是否符合该限制条件的步骤还包括:
若检查结果为否,将上述节点加入一节点列表。
19.如权利要求16所述的分类树的建构方法,其中,在检查该工作队列内是否有节点的步骤还包括:
若检查结果为否,则输出一节点列表中的节点。
20.如权利要求10所述的分类树的建构方法,还包括:
将目前节点放入一工作队列;
从该工作队列中取出一节点;
将该节点的子节点放入该工作队列中;
检查该工作队列内的节点是否已达M个,其中,M是大于零的正整数;
若检查结果为是,则将该工作队列中所有的节点输出至一节点列表;以及
若检查结果为否,则回到从该工作队列中取出一文件数最多的节点的步骤。
21.如权利要求10所述的分类树的建构方法,还包括:
接收一特定条件;
取出目前节点的一数据清单;
将该数据清单放入一工作队列;
检查该工作队列内是否有数据;
若检查结果为是,则从该工作队列中取出数据;
检查上述数据是否符合该特定条件;以及
若检查结果为是,则将该数据加入该数据列表。
22.如权利要求21所述的分类树的建构方法,其中,在检查该工作队列内是否有数据的步骤还包括:
若检查结果为否,则完成一数据列表。
23.如权利要求21所述的分类树的建构方法,其中,在检查上述数据是否符合该特定条件的步骤还包括:
若检查结果为否,则持续检查工作队列中是否还有数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810008877XA CN101499072A (zh) | 2008-01-30 | 2008-01-30 | 数据分类系统与其分类树的建构方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810008877XA CN101499072A (zh) | 2008-01-30 | 2008-01-30 | 数据分类系统与其分类树的建构方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101499072A true CN101499072A (zh) | 2009-08-05 |
Family
ID=40946147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200810008877XA Pending CN101499072A (zh) | 2008-01-30 | 2008-01-30 | 数据分类系统与其分类树的建构方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101499072A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963906A (zh) * | 2010-09-20 | 2011-02-02 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端及其终端功能选项显示方法 |
CN103968825A (zh) * | 2013-02-01 | 2014-08-06 | 泰为信息科技公司 | 具有异常侦测机制的导航系统及其操作方法 |
CN105630797A (zh) * | 2014-10-29 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统 |
WO2020124284A1 (zh) * | 2018-12-16 | 2020-06-25 | 吉安市井冈山开发区金庐陵经济发展有限公司 | 信息存储装置 |
-
2008
- 2008-01-30 CN CNA200810008877XA patent/CN101499072A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101963906A (zh) * | 2010-09-20 | 2011-02-02 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端及其终端功能选项显示方法 |
CN101963906B (zh) * | 2010-09-20 | 2014-08-20 | 宇龙计算机通信科技(深圳)有限公司 | 一种终端及其终端功能选项显示方法 |
CN103968825A (zh) * | 2013-02-01 | 2014-08-06 | 泰为信息科技公司 | 具有异常侦测机制的导航系统及其操作方法 |
CN103968825B (zh) * | 2013-02-01 | 2017-06-30 | 泰为信息科技公司 | 具有异常侦测机制的导航系统及其操作方法 |
CN105630797A (zh) * | 2014-10-29 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统 |
CN105630797B (zh) * | 2014-10-29 | 2019-02-26 | 阿里巴巴集团控股有限公司 | 数据处理方法及系统 |
WO2020124284A1 (zh) * | 2018-12-16 | 2020-06-25 | 吉安市井冈山开发区金庐陵经济发展有限公司 | 信息存储装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI358647B (en) | Data classification system and method for building | |
KR100641791B1 (ko) | 디지털 데이터에 대한 태깅 방법 및 시스템 | |
US8676001B2 (en) | Automatic discovery of popular landmarks | |
US9323855B2 (en) | Processing media items in location-based groups | |
CN101506764B (zh) | 全景环形用户界面 | |
KR101763132B1 (ko) | 콘텐트 처리를 위한 방법들 및 시스템들 | |
US20090293059A1 (en) | Automatically connecting items of workflow in a computer program | |
JP2003298991A (ja) | 画像整理方法および装置並びにプログラム | |
WO2006026567A3 (en) | System and method for storing and accessing images based on position data associated therewith | |
CN110298269A (zh) | 场景图像定位方法、装置、设备及可读存储介质 | |
Smirnov et al. | Smart space-based tourist recommendation system: application for mobile devices | |
KR100788605B1 (ko) | 컨텐츠 서비스 장치 및 방법 | |
CN104520848B (zh) | 按照出席者搜索事件 | |
EP3274871A1 (en) | Area modeling by geographic photo label analysis | |
CN105159976A (zh) | 图像文件的处理方法和系统 | |
CN104331515A (zh) | 一种自动生成旅游日记的方法和系统 | |
CN105630954A (zh) | 一种基于照片合成动态图片的方法和装置 | |
CN102884523A (zh) | 信息提供装置、信息提供方法、信息提供处理程序以及记录了信息提供处理程序的记录介质 | |
CN101499072A (zh) | 数据分类系统与其分类树的建构方法 | |
Pereira et al. | crowdsensing in the web: Analyzing the citizen experience in the urban space | |
KR101479260B1 (ko) | 사진 기반 인물 친밀도 검색 방법 | |
CN106250396B (zh) | 一种图像标签自动生成系统及方法 | |
JP2011507018A (ja) | 地理的位置決定を決定するためのシステム、関連地図、および関連決定サーバ | |
CN101576887A (zh) | 自动产生标签的电子装置、标签产生方法及标签产生系统 | |
CN102404446B (zh) | 用于内容处理的移动通信终端和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20090805 |